Messages in this thread | ![/](/images/icornerl.gif) | | From | Rick Warner <> | Subject | 2.4.21 byteorder.h problem with__u64 | Date | Tue, 24 Jun 2003 19:48:33 -0400 |
| |
Hello all, I am in the process of building a LFS system using gcc 3.2.3, glibc 2.3.2, and linux 2.4.21. I have the full system built short of kde. In building the kdemultimedia package from kde-3.1.2, I get errors regarding __u64 being undefined in byteorder.h on the swab64 function. This function is dependent on _GNU_ being defined, while the __u64 type is only defined when _GNU_ is defined and _STRICT_ANSI_ is not.
I found some references to this from 5/6/03 timeframe for 2.4.21-rc1 with a patch included, but this patch was not included into 2.4.21! The error is still there! The messages in the thread were just arguments about userland progs including kernel headers.... if userland isn't supposed to use kernel headers.. why are they copied into /usr/include !? It is perfectly normal for a userland app to include cdrom.h.. which in turn includes the problematic file......
I have used the patch which removes the swab64 function when _STRICT_ANSI_ is defined on my byteorder.h... this has resolved my problem....
My real question is why this hasn't been included in the 2.4.21 release. Having a type be used with _STRICT_ANSI_ defined when the type isn't defined when _STRICT_ANSI_ is defined is definately wrong. It can't stay the way it is. If people want to argue about the "correct" solution (either defining __u64 regardless of _STRICT_ANSI_ or not defining the swab64 function if _STRICT_ANSI_ is defined), that's fine... as long as SOME solution is put in place. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| ![\](/images/icornerr.gif) |