From: "H. Peter Anvin" <hpa@zytor.com>
To: David Miller <davem@davemloft.net>
Cc: jaswinder@kernel.org, mingo@elte.hu, x86@kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: Confusion in usr/include/asm-generic/fcntl.h
Date: Tue, 20 Jan 2009 16:48:06 -0800 [thread overview]
Message-ID: <497670C6.7010304@zytor.com> (raw)
In-Reply-To: <20090120.161626.93641145.davem@davemloft.net>
David Miller wrote:
> From: Jaswinder Singh Rajput <jaswinder@kernel.org>
> Date: Wed, 21 Jan 2009 05:34:17 +0530
>
>> usr/include/asm-generic/fcntl.h is giving 2 'make headers_check' warnings:
>> usr/include/asm-generic/fcntl.h:127: leaks CONFIG_64BIT to userspace where it is not valid
>> usr/include/asm-generic/fcntl.h:149: leaks CONFIG_64BIT to userspace where it is not valid
>>
>> usr/include/asm-generic/fcntl.h:
> ...
>> #ifndef CONFIG_64BIT will always be true for userspace. So what is the use of #ifndef CONFIG_64BIT ?
>
> Good catch.
>
> This file needs to test for 64-bit'ness using some non-CONFIG_*
> test. And the standard built-in CPP macros which can be used
> to check for that are different on every platform.
>
There are a few ways to check for 64-bitness that are
platform-independent, unfortunately each of them have drawbacks.
a) the gcc-specific way:
#if __SIZEOF_POINTER__ == 8
or
#ifdef __LP64__
or any other number of variants.
It has the obvious disadvantage of being gcc-specific, although
it seems rather likely that other Linux-supporting compilers might
also define these macros.
b) the standard C way:
#include <limits.h>
#if LONG_MAX > 2147483647L
it has the obvious disadvantage of needing to include <limits.h>...
We can, of course, also do our own thing as DaveM suggested; this is
probably the best option. FWIW, glibc has _WORDSIZE which is equivalent
to what we call BITS_PER_LONG. We might as well export it under that
name (presumably under #ifndef).
-hpa
next prev parent reply other threads:[~2009-01-21 0:48 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-21 0:04 Confusion in usr/include/asm-generic/fcntl.h Jaswinder Singh Rajput
2009-01-21 0:16 ` David Miller
2009-01-21 0:24 ` Arnd Bergmann
2009-01-21 0:32 ` David Miller
2009-01-21 8:13 ` Helge Deller
2009-01-21 8:24 ` Arnd Bergmann
2009-01-21 11:38 ` Sam Ravnborg
2009-01-21 12:13 ` Arnd Bergmann
2009-01-21 14:29 ` Kyle McMartin
2009-01-21 16:44 ` H. Peter Anvin
2009-01-21 17:28 ` Sam Ravnborg
2009-01-21 17:57 ` H. Peter Anvin
2009-01-27 22:35 ` Helge Deller
2009-01-21 22:25 ` Grant Grundler
2009-01-21 22:43 ` John David Anglin
2009-01-22 0:46 ` H. Peter Anvin
2009-01-22 2:52 ` John David Anglin
2009-01-22 2:56 ` H. Peter Anvin
2009-01-21 0:48 ` H. Peter Anvin [this message]
2009-01-21 1:47 ` H. Peter Anvin
2009-01-23 15:18 ` Jaswinder Singh Rajput
2009-01-26 15:53 ` Arnd Bergmann
2009-01-26 16:24 ` Jaswinder Singh Rajput
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=497670C6.7010304@zytor.com \
--to=hpa@zytor.com \
--cc=davem@davemloft.net \
--cc=jaswinder@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox