This is the mail archive of the mailing list for the glibc project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: Add bits/byteswap-16.h and use GCC builtin 32/64-bit bswap

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<>

	* 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.

Looking at some comments on glibc-ports, I've reconsidered my comment and think your patch below is the right way to go forward. <endian.h> should be useable from assembler files - like it was in the past.

What do others think? Any objections to add this?



2012-04-24 Chung-Lin Tang<>

	* string/endian.h: Add !__ASSEMBLER__ condition for including
	conversion interfaces.

 Andreas Jaeger aj@{,} 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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]