This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: PATCH: Add bits/byteswap-16.h and use GCC builtin 32/64-bit bswap
- From: Andreas Jaeger <aj at suse dot com>
- To: Chung-Lin Tang <cltang at codesourcery dot com>
- Cc: "H.J. Lu" <hjl dot tools at gmail dot com>,"H.J. Lu" <hongjiu dot lu at intel dot com>,GNU C Library <libc-alpha at sourceware dot org>
- Date: Fri, 15 Jun 2012 09:42:00 +0200
- Subject: Re: PATCH: Add bits/byteswap-16.h and use GCC builtin 32/64-bit bswap
- References: <20120406194013.GA4689@intel.com> <4F96730D.3080505@codesourcery.com>
On 04/24/2012 11:31 AM, Chung-Lin Tang wrote:
On 2012/4/7 03:40 AM, H.J. Lu wrote:
2012-04-06 H.J. Lu <hongjiu.lu@intel.com>
* bits/byteswap.h (__bswap_16): Removed.
Include <bits/byteswap-16.h> to get __bswap_16.
(__bswap_32): Use __builtin_bswap32 for GCC >= 4.2.
(__bswap_64): Use __builtin_bswap64 for GCC >= 4.2.
* bits/byteswap-16.h: New file.
For SH, this triggered a build fail, due to those inline C functions
being added to a assembly file (the SH strlen.S use of endian.h) after a
complex include sequence.
Of course, there's nothing wrong with those __bswap* functions. It seems
that string/endian.h includes a bunch of stuff not usable anyways for
assembler, so here's trivial patch to correct this.
Thanks,
Chung-Lin
2012-04-24 Chung-Lin Tang <cltang@codesourcery.com>
* string/endian.h: Add !__ASSEMBLER__ condition for including
conversion interfaces.
coming back to an old email and reversing my opinion...
Having seen this also mentioned on libc-ports, I think we should add the
assembler protection as Chung-Lin proposes in his patch. I'd like
somebody else to comment on this as well...
References:
http://sourceware.org/ml/libc-ports/2012-05/msg00016.html
http://sourceware.org/ml/libc-alpha/2012-04/msg01141.html
Andreas
diff --git a/string/endian.h b/string/endian.h
index 0c293f6..51084f1 100644
--- a/string/endian.h
+++ b/string/endian.h
@@ -55,7 +55,7 @@
#endif
-#ifdef __USE_BSD
+#if defined __USE_BSD && !defined __ASSEMBLER__
/* Conversion interfaces. */
# include <bits/byteswap.h>
--
Andreas Jaeger aj@{suse.com,opensuse.org} Twitter/Identica: jaegerandi
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 NÃrnberg, Germany
GF: Jeff Hawn,Jennifer Guild,Felix ImendÃrffer,HRB16746 (AG NÃrnberg)
GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126