[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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.

I got:

eisfair2 # make
make[1]: Entering directory `/usr/src/dvd+rw-tools-7.1'
g++ -O2 -fno-exceptions -D_REENTRANT -c -o growisofs_mmc.o growisofs_mmc.cpp
In file included from growisofs_mmc.cpp:17:
transport.hxx: In member function ‘int Scsi_Command::is_reload_needed(int)’:
transport.hxx:366: error: ‘INT_MAX’ was not declared in this scope
make[1]: *** [growisofs_mmc.o] Error 1
make[1]: 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

glibc 2.7

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.




Reply to: