From: Linus Torvalds <torvalds@linux-foundation.org>
To: Joakim Tjernlund <joakim.tjernlund@transmode.se>
Cc: Andrew Morton <akpm@linux-foundation.org>,
linux-kernel@vger.kernel.org, linux-next@vger.kernel.org,
Stephen Rothwell <sfr@canb.auug.org.au>
Subject: Re: linux-next: build warning in Linus'tree
Date: Wed, 26 May 2010 09:46:11 -0700 (PDT) [thread overview]
Message-ID: <alpine.LFD.2.00.1005260939030.3689@i5.linux-foundation.org> (raw)
In-Reply-To: <OF6B2D521C.109F3133-ONC125772F.00576DF0-C125772F.005B18F3@transmode.se>
On Wed, 26 May 2010, Joakim Tjernlund wrote:
>
> 1) It silently breaks when neither of {__LITTLE_,__BIG}_ENDIAN (or both)are
> defined depending on the endianess of the target CPU.
> The glibc model generates a compile error if you forget to include __BYTE_ORDER.
Umm. Except when it doesn't (yes, Linux has the "Wundefined" thing, and
has had for a long time). I've seen the glibc model do the wrong thing
exactly because traditional C semantics is "undefined symbol is 0 in
evaluations"
Try compiling this
#include <stdio.h>
#if NOT_HERE == NOT_THERE
int main()
{
printf("Hello world!\n");
}
#endif
and even with -Wall it compiles perfectly happily.
So no. The glibc model is _not_ any better in practice.
> 2) It clashes with user space so one cannot use it in exported header files.
Which is annoying, I agree. But you shouldn't generally use kernel headers
for user space anyway, much less export anything that is byteorder-
specific. So anybody who has this problem is likely doing something iffy
to begin with.
Besides, you can solve it cleanly by simply avoiding the crazy glibc
semantics entirely. IOW, the CONFIG_BIG_ENDIAN option I suggested (and
again, you should damn well not export things that depend on it to user
space - there are architectures where user-space might be switchable)
Linus
next prev parent reply other threads:[~2010-05-26 16:49 UTC|newest]
Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-26 1:05 linux-next: build warning in Linus'tree Stephen Rothwell
2010-05-26 1:20 ` Andrew Morton
2010-05-26 4:09 ` Stephen Rothwell
2010-05-26 6:29 ` Joakim Tjernlund
2010-05-26 6:41 ` Andrew Morton
2010-05-26 7:14 ` Stephen Rothwell
2010-05-26 10:21 ` Joakim Tjernlund
2010-05-26 15:29 ` Linus Torvalds
2010-05-26 16:35 ` Joakim Tjernlund
2010-05-26 16:46 ` Linus Torvalds [this message]
2010-05-26 17:31 ` Joakim Tjernlund
2010-05-26 17:45 ` Linus Torvalds
2010-05-26 15:33 ` Linus Torvalds
2010-05-26 15:26 ` Linus Torvalds
-- strict thread matches above, loose matches on Subject: below --
2023-05-30 5:26 linux-next: build warning in Linus' tree Stephen Rothwell
2023-02-15 3:41 Stephen Rothwell
2023-02-15 11:33 ` Paolo Bonzini
2021-10-05 9:42 Stephen Rothwell
2021-10-05 9:29 Stephen Rothwell
2021-10-21 1:28 ` Stephen Rothwell
[not found] ` <ANQAFAC9EhHeWK1g5-2FP4ol.9.1634779695838.Hmail.changfengnan@vivo.com>
2021-10-21 1:32 ` 常凤楠
2021-08-30 8:33 Stephen Rothwell
2021-03-23 5:51 Stephen Rothwell
2021-03-23 8:49 ` Peter Zijlstra
2021-02-18 20:58 Stephen Rothwell
2021-02-18 22:47 ` Ernst, Justin
2021-02-23 21:50 ` Stephen Rothwell
2021-02-23 22:01 ` Ernst, Justin
2021-01-03 22:07 Stephen Rothwell
2020-10-28 3:28 Stephen Rothwell
2020-10-28 15:56 ` Micah Morton
2020-10-28 21:07 ` Stephen Rothwell
2020-02-21 3:39 Stephen Rothwell
2020-02-21 6:51 ` Gustavo A. R. Silva
2017-11-02 20:29 Stephen Rothwell
2017-11-02 21:08 ` Ingo Molnar
2017-11-02 21:21 ` Stephen Rothwell
2016-11-13 22:25 Stephen Rothwell
2016-10-27 22:29 Stephen Rothwell
2016-10-27 22:48 ` Linus Torvalds
2016-10-27 23:01 ` Linus Torvalds
2016-10-27 23:05 ` Alexander Potapenko
2016-10-27 23:25 ` Linus Torvalds
2016-10-27 23:40 ` Stephen Rothwell
2016-10-29 21:29 ` Geert Uytterhoeven
2016-10-30 19:05 ` Andrey Ryabinin
2016-04-12 23:59 Stephen Rothwell
2014-11-11 7:11 Stephen Rothwell
2013-12-17 22:52 Stephen Rothwell
2013-12-18 2:54 ` Skidmore, Donald C
2012-10-24 2:43 Stephen Rothwell
2012-10-28 19:44 ` Mauro Carvalho Chehab
2012-11-05 22:36 ` Antti Palosaari
2012-04-24 1:20 Stephen Rothwell
2012-04-24 17:09 ` Ted Ts'o
2012-04-17 0:44 Stephen Rothwell
2012-04-17 1:45 ` Konrad Rzeszutek Wilk
2012-01-18 23:36 Stephen Rothwell
2012-01-18 23:47 ` Linus Torvalds
2012-01-18 23:09 Stephen Rothwell
2011-05-30 1:43 Stephen Rothwell
2011-05-30 2:01 ` Eric Dumazet
2011-05-26 1:00 Stephen Rothwell
2011-05-25 0:37 Stephen Rothwell
2011-05-26 7:15 ` Greg KH
2011-03-17 23:04 Stephen Rothwell
2011-03-18 1:13 ` David Miller
2011-01-13 23:51 Stephen Rothwell
2011-01-14 8:45 ` Lennert Buytenhek
2010-10-25 2:52 Stephen Rothwell
2010-10-25 0:57 Stephen Rothwell
2010-10-25 6:36 ` Ingo Molnar
2010-10-25 0:38 Stephen Rothwell
2010-10-25 0:45 ` Stephen Rothwell
2010-10-25 2:39 ` Stephen Rothwell
2010-08-16 4:00 Stephen Rothwell
2010-05-28 0:56 Stephen Rothwell
2010-05-26 1:43 Stephen Rothwell
2010-05-26 1:51 ` Herbert Xu
2010-05-26 1:54 ` David Miller
2010-05-25 1:46 Stephen Rothwell
2010-05-25 4:58 ` David Miller
2010-05-25 23:19 ` David Miller
2010-05-25 23:24 ` David Miller
2010-05-26 2:04 ` Stephen Rothwell
2010-04-26 23:30 Stephen Rothwell
2010-04-26 23:42 ` Greg KH
2010-04-27 3:09 ` Stephen Rothwell
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=alpine.LFD.2.00.1005260939030.3689@i5.linux-foundation.org \
--to=torvalds@linux-foundation.org \
--cc=akpm@linux-foundation.org \
--cc=joakim.tjernlund@transmode.se \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-next@vger.kernel.org \
--cc=sfr@canb.auug.org.au \
/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;
as well as URLs for NNTP newsgroup(s).