Head Compilation Linux 64 Debian 9

Hello All,

I have compiled the head many times over the years using *makeall*.

1) Downloaded the latest HEAD (2018-04-19) and Supplementary files
2) Extracted to ~/Desktop/ray
3) Installed csh (apt-get install csh) version 20110502-3
4) installed ed (apt-get install ed) do version.c is generated as code not text lines
5) gcc version 7.3.0 (Debian 7.3.0-16)
6) sudo makeall install (use defaults as seen in the rmake file below)

cat /usr/local/bin/rmake
#!/bin/sh
exec make "SPECIAL=" \
"OPT=-O2" \
"MACH=-Dlinux -D_FILE_OFFSET_BITS=64 -L/usr/X11R6/lib -I/usr/include/X11 -DNOSTEREO" \
ARCH=IBMPC "COMPAT=erf.o" \
INSTDIR=/usr/local/bin \
LIBDIR=/usr/local/lib/ray \
ESUFFIX= \
CC=gcc "$@" -f Rmakefile

Error starting with:

gcc -Dlinux -D_FILE_OFFSET_BITS=64 -L/usr/X11R6/lib -I/usr/include/X11 -DNOSTEREO -O2 -c -o maxheap.o maxheap.c
maxheap.c: In function ‘resize_heap’:
maxheap.c:21:22: error: ‘HUGE’ undeclared (first use in this function); did you mean ‘FHUGE’?
hp->heap[i].key = -HUGE;
^~~~
FHUGE
maxheap.c:21:22: note: each undeclared identifier is reported only once for each function it appears in
maxheap.c: In function ‘mheap_remove_max’:

No libraries made hence issues further later into the makeall.

/*Which standard header is HUGE defined in?*/

/maths.h defines HUGE_VAL but not HUGE/

Tried using *cmake* but encountered packaging errors as to missing packages:

1) cmake --version
cmake version 3.10.2
2) Packages:
2.1) GIT (git version 2.17.0)
2.2) Qt5Widgets - where to download? Have installed libqt5widgets5 which includes:
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.10
/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.10.1
find_package(Qt5Widgets) *fails*
2.3 Numerous non-existent target for Qt5::
CMake Error at src/rt/CMakeLists.txt:151 (get_target_property):
get_target_property() called with non-existent target "Qt5::QGifPlugin".

···

--
Re: Request for a change
Regards
*Terrance McMinn*

Thanks, Terrance.

I guess HUGE was changed to HUGE_VAL in your version of Linux. I changed the code to use FHUGE, which is defined in fvect.h.

I also removed this module from the list of default compiles, as it was added along with a library Jan Wienold uses in evalglare, but this particular set of functions is never called. We probably should not have added it in the first place... (I'm not even 100% sure what it's supposed to do -- heapsort?)

Cheers,
-Greg

···

From: Terrance McMinn <t.mcminn@ocpms.com.au>
Date: April 19, 2018 8:09:53 AM PDT
Hello All,

I have compiled the head many times over the years using makeall.

1) Downloaded the latest HEAD (2018-04-19) and Supplementary files
2) Extracted to ~/Desktop/ray
3) Installed csh (apt-get install csh) version 20110502-3
4) installed ed (apt-get install ed) do version.c is generated as code not text lines
5) gcc version 7.3.0 (Debian 7.3.0-16)
6) sudo makeall install (use defaults as seen in the rmake file below)

cat /usr/local/bin/rmake
#!/bin/sh
exec make "SPECIAL=" \
    "OPT=-O2" \
    "MACH=-Dlinux -D_FILE_OFFSET_BITS=64 -L/usr/X11R6/lib -I/usr/include/X11 -DNOSTEREO" \
    ARCH=IBMPC "COMPAT=erf.o" \
    INSTDIR=/usr/local/bin \
    LIBDIR=/usr/local/lib/ray \
    ESUFFIX= \
    CC=gcc "$@" -f Rmakefile

Error starting with:

gcc -Dlinux -D_FILE_OFFSET_BITS=64 -L/usr/X11R6/lib -I/usr/include/X11 -DNOSTEREO -O2 -c -o maxheap.o maxheap.c
maxheap.c: In function ‘resize_heap’:
maxheap.c:21:22: error: ‘HUGE’ undeclared (first use in this function); did you mean ‘FHUGE’?
   hp->heap[i].key = -HUGE;
                      ^~~~
                      FHUGE
maxheap.c:21:22: note: each undeclared identifier is reported only once for each function it appears in
maxheap.c: In function ‘mheap_remove_max’:

No libraries made hence issues further later into the makeall.

Which standard header is HUGE defined in?

maths.h defines HUGE_VAL but not HUGE
Tried using cmake but encountered packaging errors as to missing packages:

1) cmake --version
cmake version 3.10.2
2) Packages:
2.1) GIT (git version 2.17.0)
2.2) Qt5Widgets - where to download? Have installed libqt5widgets5 which includes:
        /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
        /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.10
        /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.10.1
find_package(Qt5Widgets) fails
2.3 Numerous non-existent target for Qt5::
CMake Error at src/rt/CMakeLists.txt:151 (get_target_property):
  get_target_property() called with non-existent target "Qt5::QGifPlugin".
--
Regards
Terrance McMinn

Also thanks for pointing out the CMake issues. We require Git because we base our package names off the sha of the git commit that was checked out for the package. Qt is a giant PITA of a dependency, but it’s what was used for the Windows verison of rvu. We will either tighten up the dependency handling for Qt, or add an option to skip qtrvu for *nix, or both.

- Rob

···

From: "gregoryjward@gmail.com" <gregoryjward@gmail.com>
Reply-To: code development <radiance-dev@radiance-online.org>
Date: Thursday, April 19, 2018 at 9:35 AM
To: code development <radiance-dev@radiance-online.org>
Subject: Re: [Radiance-dev] Head Compilation Linux 64 Debian 9

Thanks, Terrance.

I guess HUGE was changed to HUGE_VAL in your version of Linux. I changed the code to use FHUGE, which is defined in fvect.h.

I also removed this module from the list of default compiles, as it was added along with a library Jan Wienold uses in evalglare, but this particular set of functions is never called. We probably should not have added it in the first place... (I'm not even 100% sure what it's supposed to do -- heapsort?)

Cheers,
-Greg

From: Terrance McMinn <t.mcminn@ocpms.com.au<mailto:t.mcminn@ocpms.com.au>>

Date: April 19, 2018 8:09:53 AM PDT

Hello All,

I have compiled the head many times over the years using makeall.

1) Downloaded the latest HEAD (2018-04-19) and Supplementary files
2) Extracted to ~/Desktop/ray
3) Installed csh (apt-get install csh) version 20110502-3
4) installed ed (apt-get install ed) do version.c is generated as code not text lines
5) gcc version 7.3.0 (Debian 7.3.0-16)
6) sudo makeall install (use defaults as seen in the rmake file below)

cat /usr/local/bin/rmake
#!/bin/sh
exec make "SPECIAL=" \
    "OPT=-O2" \
    "MACH=-Dlinux -D_FILE_OFFSET_BITS=64 -L/usr/X11R6/lib -I/usr/include/X11 -DNOSTEREO" \
    ARCH=IBMPC "COMPAT=erf.o" \
    INSTDIR=/usr/local/bin \
    LIBDIR=/usr/local/lib/ray \
    ESUFFIX= \
    CC=gcc "$@" -f Rmakefile

Error starting with:

gcc -Dlinux -D_FILE_OFFSET_BITS=64 -L/usr/X11R6/lib -I/usr/include/X11 -DNOSTEREO -O2 -c -o maxheap.o maxheap.c
maxheap.c: In function ‘resize_heap’:
maxheap.c:21:22: error: ‘HUGE’ undeclared (first use in this function); did you mean ‘FHUGE’?
   hp->heap[i].key = -HUGE;
                      ^~~~
                      FHUGE
maxheap.c:21:22: note: each undeclared identifier is reported only once for each function it appears in
maxheap.c: In function ‘mheap_remove_max’:

No libraries made hence issues further later into the makeall.

Which standard header is HUGE defined in?

maths.h defines HUGE_VAL but not HUGE

Tried using cmake but encountered packaging errors as to missing packages:

1) cmake --version
cmake version 3.10.2
2) Packages:
2.1) GIT (git version 2.17.0)
2.2) Qt5Widgets - where to download? Have installed libqt5widgets5 which includes:
        /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
        /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.10
        /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5.10.1
find_package(Qt5Widgets) fails
2.3 Numerous non-existent target for Qt5::
CMake Error at src/rt/CMakeLists.txt:151 (get_target_property):
  get_target_property() called with non-existent target "Qt5::QGifPlugin".
--

Regards
Terrance McMinn

Hello Greg,

/*Thanks for the quick successful overnight fix.*/

I found that I needed to do a sudo *make distclean* in the *libtiff* folder as my compiler was gcc not cc as the default.

/Using sudo to allow installation of files in the system /usr/local/ structure./

Actions:

···

=======
cd src/px/tiff/
sudo make distclean

from the ray folder/directory
sudo ./makeall install

Results:

Warnings:

x11.c: In function �std_comin�:
x11.c:417:6: warning: implicit declaration of function �gets�; did you mean �fgets�? [-Wimplicit-function-declaration]
� if (gets(inp) == NULL) {
����� ^~~~
����� fgets

Inconsequential Warnings:

In file included from tonemap.c:17:0:
tmprivat.h:62:1: warning: variably modified �tmMesofact� at file scope
�extern uby8 tmMesofact[BMESUPPER-BMESLOWER];
�^~~~~~

warning: the use of `mktemp' is dangerous, better use `mkstemp' or `mkdtemp'

tif_dirread.c: In function 'TIFFFetchFloatArray':
tif_dirread.c:1045:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
�� v[0] = *(float*) &dir->tdir_offset;
�� ^

�gcc -DHAVE_CONFIG_H -I. -I. -I. -I. -g -O2 -Wall -MT tif_luv.lo -MD -MP -MF .deps/tif_luv.Tpo -c tif_luv.c -o tif_luv.o
In file included from tif_luv.c:626:0:
uvcode.h:9:20: warning: missing braces around initializer [-Wmissing-braces]
�} uv_row[UV_NVS] = {

tif_unix.c: In function '_tiffSizeProc':
tif_unix.c: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]

CMAKE:

CMakeFile not yet updated - no change from the April 19, 2018 download.

Thanks Greg and Rob for your input.

Re: Request for a change
Regards
*Terrance McMinn*