glibc/sysdeps
Adhemerval Zanella f9646d138f arm: Enable USE_ATOMIC_COMPILER_BUILTINS (BZ #24774)
As per other architectures.  I have checked on a armv8 hardware with
the following configurations:

  arm-linux-gnueabihf (gcc built with --with-float=hard --with-cpu=arm926ej-s)
  armv5-linux-gnueabihf (-march=armv5te -mfpu=vfpv3)
  armv7-linux-gnueabihf (-march=armv7-a -mfpu=vfpv3)
  armv7-thumb-linux-gnueabihf (-march=armv7-a -mfpu=vfpv3 -mthumb)
  armv7-neon-linux-gnueabihf (-march=armv7-a -mfpu=neon)
  armv7-neonhard-linux-gnueabihf (-march=armv7-a -mfpu=neon -mfloat-abi=hard)

Without any regression.

I haven't dig into the code, but since Linux atomic-machine.h handle
pre-ARMv6 and ARMv6 I expect the compiler might have some small room
to optimize.

The code size also improves is most of the configurations:

* master

   text    data     bss     dec     hex filename
1727801    9720   37928 1775449  1b1759	 arm-linux-gnueabihf/libc.so
1691729    9720   37928 1739377  1a8a71	 arm-linux-gnueabihf-armv7-disable-multi-arch/libc.so
1725509    9720   37928 1773157  1b0e65	 armv5-linux-gnueabihf/libc.so
1700757    9720   37928 1748405  1aadb5	 armv6-linux-gnueabihf/libc.so
1698973    9720   37928 1746621  1aa6bd	 armv6t2-linux-gnueabihf/libc.so
1695481    9752   37928 1743161  1a9939	 armv7-linux-gnueabihf/libc.so
1692917    9744   37928 1740589  1a8f2d	 armv7-neonhard-linux-gnueabihf/libc.so
1692917    9744   37928 1740589  1a8f2d	 armv7-neon-linux-gnueabihf/libc.so
1225353    9752   37928 1273033  136cc9	 armv7-thumb-linux-gnueabihf/libc.so

* patched

   text    data     bss     dec     hex filename
1726805    9720   37928 1774453  1b1375 arm-linux-gnueabihf/libc.so
1689321    9720   37928 1736969  1a8109	arm-linux-gnueabihf-armv7-disable-multi-arch/libc.so
1724433    9720   37928 1772081  1b0a31 armv5-linux-gnueabihf/libc.so
1698301    9720   37928 1745949  1aa41d armv6-linux-gnueabihf/libc.so
1696525    9720   37928 1744173  1a9d2d armv6t2-linux-gnueabihf/libc.so
1693009    9752   37928 1740689  1a8f91 armv7-linux-gnueabihf/libc.so
1690493    9744   37928 1738165  1a85b5 armv7-neonhard-linux-gnueabihf/libc.so
1690493    9744   37928 1738165  1a85b5 armv7-neon-linux-gnueabihf/libc.so
1223837    9752   37928 1271517  1366dd armv7-thumb-linux-gnueabihf/libc.so

The idea is eventually move all architectures to use compiler builtins.

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Tested-by: Aurelien Jarno <aurelien@aurel32.net>
2022-10-07 16:19:20 -03:00
..
aarch64 Use atomic_exchange_release/acquire 2022-09-26 16:58:08 +01:00
alpha elf: Remove _dl_string_hwcap 2022-10-06 07:59:48 -03:00
arc Use atomic_exchange_release/acquire 2022-09-26 16:58:08 +01:00
arm arm: Enable USE_ATOMIC_COMPILER_BUILTINS (BZ #24774) 2022-10-07 16:19:20 -03:00
csky elf: Remove _dl_string_hwcap 2022-10-06 07:59:48 -03:00
generic elf: Remove _dl_string_hwcap 2022-10-06 07:59:48 -03:00
gnu errlist: add missing entry for EDEADLOCK (bug 29545) 2022-09-08 11:40:24 +02:00
hppa hppa: Fix initialization of dp register [BZ 29635] 2022-10-01 19:49:25 +00:00
htl htl: Make pthread*_cond_timedwait register wref before releasing mutex 2022-08-22 22:27:24 +02:00
hurd hurd: Fix pthread_kill on exiting/ted thread 2022-01-15 15:11:54 +01:00
i386 x86: Remove .tfloat usage 2022-10-03 14:03:21 -03:00
ia64 Update _FloatN header support for C++ in GCC 13 2022-09-28 20:10:08 +00:00
ieee754 Update _FloatN header support for C++ in GCC 13 2022-09-28 20:10:08 +00:00
loongarch LoongArch: Add static PIE support 2022-09-30 11:51:58 +08:00
m68k Use atomic_exchange_release/acquire 2022-09-26 16:58:08 +01:00
mach Regenerate sysdeps/mach/hurd/bits/errno.h 2022-10-05 19:21:25 +00:00
microblaze Use atomic_exchange_release/acquire 2022-09-26 16:58:08 +01:00
mips elf: Remove _dl_string_hwcap 2022-10-06 07:59:48 -03:00
nios2 Use atomic_exchange_release/acquire 2022-09-26 16:58:08 +01:00
nptl Use atomic_exchange_release/acquire 2022-09-26 16:58:08 +01:00
or1k Use atomic_exchange_release/acquire 2022-09-26 16:58:08 +01:00
posix get_nscd_addresses: Fix subscript typos [BZ #29605] 2022-09-28 12:47:10 -04:00
powerpc elf: Remove _dl_string_hwcap 2022-10-06 07:59:48 -03:00
pthread Do not define static_assert or thread_local in headers for C2x 2022-09-07 18:39:28 +00:00
riscv Use atomic_exchange_release/acquire 2022-09-26 16:58:08 +01:00
s390 elf: Remove _dl_string_hwcap 2022-10-06 07:59:48 -03:00
sh Use atomic_exchange_release/acquire 2022-09-26 16:58:08 +01:00
sparc elf: Remove _dl_string_hwcap 2022-10-06 07:59:48 -03:00
unix elf: Remove _dl_string_hwcap 2022-10-06 07:59:48 -03:00
wordsize-32 Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
wordsize-64 Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
x86 elf: Remove _dl_string_hwcap 2022-10-06 07:59:48 -03:00
x86_64 x86_64: Remove platform directory library loading test 2022-10-06 07:59:48 -03:00