Re: dvd+rw-tools 7.1: Compiling problems on new eisfair2
Andy Polyakov wrote:
while never having problems to compile on the eisfair1-serverproject
I'm unable to compile dvd+rw-tools on the upcoming eisfair2.
eisfair2 # make
make: Entering directory `/usr/src/dvd+rw-tools-7.1'
g++ -O2 -fno-exceptions -D_REENTRANT -c -o growisofs_mmc.o
In file included from growisofs_mmc.cpp:17:
transport.hxx: In member function ‘int
transport.hxx:366: error: ‘INT_MAX’ was not declared in this scope
make: *** [growisofs_mmc.o] Error 1
make: Leaving directory `/usr/src/dvd+rw-tools-7.1'
make: *** [all] Error 2
Eisfair2 depends on Ubuntu 8 having:
g++ (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
gcc (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
GNU Make 3.81
Is there something missing on my new eisfair2?
Note that INT_MAX is not referred in dvd+rw-tools source, CDSL_CURRENT
from linux/cdrom.h is. The latter is the problem. Generally header
files are expected to be self-contained, in other words it should
suffice to include linux/cdrom.h alone to use interfaces described in
it. linux/cdrom.h used to be self-contained and one found in
glibc-kernheaders package still is, it's pristine kernel header that
is not self-contained anymore. It probably should be classified as
kernel header bug (as I have no formal way of knowing that a
documented macro would require any other particular header). But one
way or another, if you ought to compile this very moment, you should
be able to 'make WARN=-DINT_MAX=0x7fffffff'.
Good point, although Linux documentation has many places where it warns not to use kernel headers because they may change between versions. For portability perhaps an ifndef would be the way to call limits.h if there's a reason not to include it unconditionally.