Summary: | kdemultimedia build error with kernel 2.5.47 | ||
---|---|---|---|
Product: | [Unmaintained] kscd | Reporter: | Laurence Withers <lwithers> |
Component: | general | Assignee: | Aaron J. Seigo <aseigo> |
Status: | RESOLVED NOT A BUG | ||
Severity: | normal | CC: | ismail, l, zaz |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Laurence Withers
2002-12-08 20:11:27 UTC
I have like 3-4 patches for KdeMultimedia which fixes 2.5 kernel issues . I will upload them when I can get home. Actually the problem you mentioned can be resolved by adding typedef unsigned long long __u64; ANSI doesnt support long long thats why it fails :) a matter of passing the correct flags to the compiler ... look forward to the 2.5 patches (perhaps when 2.5 is nearing completion so as not to make unecessary changes?) Errr 2.5 kernel is not broken. You better open the bug again . Because kernel wont define a long long variable unless you cut off -ansi or explicitly define it. since it is a matter of passing the right compiler flags and happens with a devel kernel, i don't consider this a kscd bug. ergo its closed. i've mailed core-devel re: -ansi and the 2.5 kernel. btw, i never said 2.5 was broken. i was referring to the 2.5 patches you have and noting that it may not be the wisest move to put patches in CVS HEAD for a kernel that has only recently moved into feature freeze. Please note that this same error occurs with GCC 3.3 and kernel 2.4.21. The -ansi switch causes the preprocessor symbol __STRICT_ANSI__ to be defined, which in turn causes the section #if defined(__GNUC__) && !defined(__STRICT_ANSI__) typedef unsigned long long __u64 #endif from /usr/include/asm/types.h (a Linux kernel header) to not be compiled. It occurs in the subdirectories `kscd/libwm' and `mpeglib/lib/input', and can be solved by editing the Makefiles in said directories to remove all occurrences of the `-ansi' flag. *** Bug 61892 has been marked as a duplicate of this bug. *** It's not good idea to remove -ansi flags from the Makefile-s. Somebody put them for some purposes. The correct solution is to apply the patch suggested by Niki Guldbrand <niki@lunar-linux.org> to the kernel. After that everything works fine. =========================================================================== --- old/include/asm-i386/byteorder.h 2003-06-13 16:51:38.000000000 +0200 +++ new/include/asm-i386/byteorder.h 2003-09-08 20:59:43.000000000 +0200 @@ -34,7 +34,7 @@ return x; } - +#if defined(__GNUC__) && !defined(__STRICT_ANSI__) static inline __u64 ___arch__swab64(__u64 val) { union { @@ -55,10 +55,11 @@ } #define __arch__swab64(x) ___arch__swab64(x) +#define __BYTEORDER_HAS_U64__ +#endif #define __arch__swab32(x) ___arch__swab32(x) #define __arch__swab16(x) ___arch__swab16(x) -#define __BYTEORDER_HAS_U64__ #endif /* __GNUC__ */ ================================================== This is already fixed. I tried to compile kdemultimedia 3.3.1, it fails without the kernel patch (I'm using kernel headers 2.4.27) |