kdebase vs. linux headers

Ken Moffat ken at linuxfromscratch.org
Thu Oct 5 11:23:07 PDT 2006


On Thu, Oct 05, 2006 at 05:49:49PM +0100, Matthew Burgess wrote:
> Hi folks,
> 
> I'm trying to compile kdebase-3.5.4 against the headers installed via 
> 'make headers_install' from linux-2.6.18.  Unfortunately, I get this error:
> 
> error: '__s64' does not name a type
> /usr/include/linux/joystick.h:132: error: '__s64' does not name a type
> 
> Now, obviously that's not good, but I don't think it's kdebase's fault 
> (linux/joystick.h is installed afterall, so they're using a permitted API).
> 
> The problem seems to be that linux/joystick.h is #including asm/types.h 
> which only typedefs __s64 if __GNUC__ is defined and __STRICT_ANSI__ 
> isn't defined:
> 
> #if defined(__GNUC__) && !defined(__STRICT_ANSI__)
> typedef __signed__ long long __s64;
> typedef unsigned long long __u64;
> #endif
> 
> I can only presume, because of the error above, that those conditions 
> aren't being met, but a cursory glance of the logfile doesn't appear to 
> help me ascertain which one of them is triggering the problem above.
> 
> Any ideas, folks?
> 
> Matt.
> 
Matt,

 as a starter, something crude like this for a separate program,
e.g. types.c.

#include <stdlib.h>
#include <stdio.h>
#include <linux/joystick.h>

main() {
#if defined(__GNUC__)
        printf("__GNUC__ is defined\n");
#else
        printf("__GNUC__ is NOT defined\n");
#endif

#if defined(__STRICT_ANSI__)
        printf("__STRICT_ANSI__ is defined\n");
#else
        printf("__STRICT_ANSI__ is NOT defined\n");
#endif
}

If I compile and run this on pure64 using the CLFS headers, I get

ken at bluesbreaker ~ $./types
__GNUC__ is defined
__STRICT_ANSI__ is NOT defined

Ken
-- 
das eine Mal als Tragödie, das andere Mal als Farce



More information about the lfs-dev mailing list