When compiling kdemultimedia 3.1.3 the compile always fails with the following no matter what compiler flags are in make.conf Reproducible: Always Steps to Reproduce: 1.emerge kdemultimedia with ~X86 Actual Results: make[4]: Entering directory `/var/tmp/portage/kdemultimedia- 3.1.3/work/kdemultimedia-3.1.3/kioslave/audiocd' /bin/sh ../../libtool --silent --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H - I. -I. -I../.. -I/usr/kde/3.1/include -I/usr/qt/3/include - I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor - Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith -Wwrite-strings -ansi - D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -DNDEBUG -DNO_DEBUG - O2 -mcpu=athlon -O2 -pipe -march=athlon -fno-exceptions -fno-check-new - DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -c -o cddb.lo `test -f 'cddb.cpp' || echo './'`cddb.cpp /bin/sh ../../libtool --silent --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H - I. -I. -I../.. -I/usr/kde/3.1/include -I/usr/qt/3/include - I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor - Wno-long-long -Wundef -Wall -pedantic -W -Wpointer-arith -Wwrite-strings -ansi - D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -DNDEBUG -DNO_DEBUG - O2 -mcpu=athlon -O2 -pipe -march=athlon -fno-exceptions -fno-check-new - DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -c -o audiocd.lo `test -f 'audiocd.cpp' || echo './'`audiocd.cpp In file included from /usr/include/linux/cdrom.h:14, from audiocd.cpp:57: /usr/include/asm/byteorder.h:38: syntax error before `(' token /usr/include/asm/byteorder.h:42: '__u64' is used as a type, but is not defined as a type. /usr/include/asm/byteorder.h:43: syntax error before `}' token /usr/include/asm/byteorder.h:44: syntax error before `.' token /usr/include/asm/byteorder.h:50: syntax error before `.' token /usr/include/asm/byteorder.h:51: syntax error before `.' token /usr/include/asm/byteorder.h:52: syntax error before `:' token In file included from /usr/include/linux/byteorder/little_endian.h:11, from /usr/include/asm/byteorder.h:65, from /usr/include/linux/cdrom.h:14, from audiocd.cpp:57: /usr/include/linux/byteorder/swab.h:199: syntax error before `(' token /usr/include/linux/byteorder/swab.h:209: syntax error before `(' token /usr/include/linux/byteorder/swab.h:213: `__u64' was not declared in this scope /usr/include/linux/byteorder/swab.h:213: `addr' was not declared in this scope /usr/include/linux/byteorder/swab.h:214: variable or field `__swab64s' declared void /usr/include/linux/byteorder/swab.h:214: `__swab64s' declared as an `inline' variable /usr/include/linux/byteorder/swab.h:214: syntax error before `{' token audiocd.cpp:74: syntax error before `}' token audiocd.cpp: In member function `cdrom_drive* AudioCD::AudioCDProtocol::initRequest(const KURL&)': audiocd.cpp:629: warning: deprecated conversion from string constant to `char*' make[4]: *** [audiocd.lo] Error 1 make[4]: Leaving directory `/var/tmp/portage/kdemultimedia- 3.1.3/work/kdemultimedia-3.1.3/kioslave/audiocd' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/var/tmp/portage/kdemultimedia- 3.1.3/work/kdemultimedia-3.1.3/kioslave/audiocd' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/kdemultimedia- 3.1.3/work/kdemultimedia-3.1.3/kioslave' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/kdemultimedia- 3.1.3/work/kdemultimedia-3.1.3' make: *** [all] Error 2 !!! ERROR: kde-base/kdemultimedia-3.1.3 failed. !!! Function kde_src_compile, Line 137, Exitcode 2 !!! died running emake, kde_src_compile:make
What kernel are you using. Maybe you could install a standard kernel. Also make sure that it is configured, and make /usr/src/linux point to that kernel
Tried with both linux-3.4.20-gaming-3 and r5
This does look like an issue with the kernel headers...going to reassign to the kernel folks.
This is indeed a [non-gentoo] kernel bug... As per http://216.239.37.104/search?q=cache:v7cVoxawaYAJ:www.uwsg.iu.edu/hypermail/linux/kernel/0305.0/1096.html+In+file+included+from+/usr/include/linux/cdrom.h:14,%0D%0A+++++++++++++++++from+audiocd.cpp:57:&hl=en&ie=UTF-8 the following patch should fix this problem:- ===== --- linux-2.4.21-rc1-orig/include/asm-i386/byteorder.h 2003-05-06 09:52:33.000000000 +0100 +++ linux-2.4.21-rc1-ac4-th/include/asm-i386/byteorder.h 2003-05-06 09:51:13.000000000 +0100 @@ -34,7 +34,7 @@ return x; } - +#ifndef __STRICT_ANSI__ static inline __u64 ___arch__swab64(__u64 val) { union { @@ -53,12 +53,17 @@ #endif return v.u; } +#endif /* !__STRICT_ANSI__ */ +#ifndef __STRICT_ANSI__ #define __arch__swab64(x) ___arch__swab64(x) +#endif #define __arch__swab32(x) ___arch__swab32(x) #define __arch__swab16(x) ___arch__swab16(x) +#ifndef __STRICT_ANSI__ #define __BYTEORDER_HAS_U64__ +#endif #endif /* __GNUC__ */ --- linux-2.4.21-rc1-orig/include/asm-i386/byteorder.h 2003-05-06 09:52:33.000000000 +0100 +++ linux-2.4.21-rc1-ac4-th/include/asm-i386/byteorder.h 2003-05-06 09:51:13.000000000 +0100 @@ -34,7 +34,7 @@ return x; } - +#ifndef __STRICT_ANSI__ static inline __u64 ___arch__swab64(__u64 val) { union { @@ -53,12 +53,17 @@ #endif return v.u; } +#endif /* !__STRICT_ANSI__ */ +#ifndef __STRICT_ANSI__ #define __arch__swab64(x) ___arch__swab64(x) +#endif #define __arch__swab32(x) ___arch__swab32(x) #define __arch__swab16(x) ___arch__swab16(x) +#ifndef __STRICT_ANSI__ #define __BYTEORDER_HAS_U64__ +#endif #endif /* __GNUC__ */ ===== Patch that against the kernel, and then copy over the byteorder.h file to /usr/include/asm
Compile worked after upgrading to linux-headers to 2.4.19-1
fyi, patch works for latest 2.6.x sources