glibc/sysdeps/arm
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
..
armv6 Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
armv6t2 Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
armv7 Add bounds check to __libc_ifunc_impl_list 2022-06-10 17:13:29 +01:00
be arm: Fix softp-fp Implies (BZ #25635) 2020-03-06 09:53:24 -03:00
bits Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
include/bits Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
le arm: Fix softp-fp Implies (BZ #25635) 2020-03-06 09:53:24 -03:00
nofpu Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
nptl Use atomic_exchange_release/acquire 2022-09-26 16:58:08 +01:00
sys Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
__longjmp.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
add_n.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
addmul_1.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
aeabi_assert.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
aeabi_atexit.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
aeabi_errno_addr.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
aeabi_lcsts.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
aeabi_localeconv.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
aeabi_math.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
aeabi_mb_cur_max.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
aeabi_memclr.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
aeabi_memcpy.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
aeabi_memmove.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
aeabi_memset.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
aeabi_sighandlers.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
aeabi_unwind_cpp_pr1.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
arm-features.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
arm-ifunc.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
arm-mcount.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
arm-unwind-resume.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
atomic-machine.h arm: Enable USE_ATOMIC_COMPILER_BUILTINS (BZ #24774) 2022-10-07 16:19:20 -03:00
backtrace.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
bsd-_setjmp.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
bsd-setjmp.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
configure grep: egrep -> grep -E, fgrep -> grep -F 2022-06-05 12:09:02 -07:00
configure.ac grep: egrep -> grep -E, fgrep -> grep -F 2022-06-05 12:09:02 -07:00
crti.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
crtn.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-irel.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-lookupcfg.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-machine-rel.h arm: Remove RELA support 2022-08-04 10:03:46 -03:00
dl-machine.h arm: Remove nested functionf rom relocate_pc24 2022-08-12 09:46:22 -03:00
dl-tls.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-tlsdesc.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-tlsdesc.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
dl-trampoline.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
elf-initfini.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fclrexcpt.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fedisblxcpt.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
feenablxcpt.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fegetenv.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fegetexcept.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fegetmode.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fegetround.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
feholdexcpt.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fenv_private.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fesetenv.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fesetexcept.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fesetmode.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fesetround.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
feupdateenv.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fgetexcptflg.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
find_exidx.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fix-fp-int-convert-overflow.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fpu_control.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
fraiseexcpt.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
framestate.c Move arm from ports to libc. 2014-02-08 01:49:39 +00:00
fsetexcptflg.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
ftestexcept.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
gcc-compat.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
gccframe.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
get-rounding-mode.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
Implies Remove sysdeps/arm/soft-fp directory. 2014-10-16 09:54:45 -07:00
jmpbuf-unwind.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
ldbl-classify-compat.h Move LDBL_CLASSIFY_COMPAT to its own header. 2018-02-01 21:01:00 +00:00
ldsodefs.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
libc-aeabi_read_tp.S ARM: Move more aeabi routine magic out of Linux-specific directories 2014-06-26 15:08:29 -07:00
libc-tls.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
libm-test-ulps arm: update libm test ulps 2021-04-08 09:55:33 +01:00
libm-test-ulps-name Do not hardcode platform names in manual/libm-err-tab.pl (bug 14139). 2016-11-04 16:49:06 +00:00
linkmap.h Rename bits/linkmap.h to linkmap.h (bug 14912). 2015-09-04 19:44:27 +00:00
machine-gmon.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
Makefile arm: Use have-mtls-dialect-gnu2 to check for ARM TLS descriptors support 2021-11-01 16:23:15 -03:00
math-tests-trap.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
math-use-builtins-sqrt.h arm: Use sqrt{f} builtin 2020-06-22 11:09:50 -03:00
memcpy.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
memmove.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
memset.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
preconfigure arm: Split BE/LE abilist 2019-08-29 09:58:21 -03:00
preconfigure.ac arm: Split BE/LE abilist 2019-08-29 09:58:21 -03:00
rt-aeabi_unwind_cpp_pr1.c ARM: Move more aeabi routine magic out of Linux-specific directories 2014-06-26 15:08:29 -07:00
rt-arm-unwind-resume.S ARM: Consolidate with generic unwinder wrapper code 2015-01-05 15:42:16 -08:00
rtld-global-offsets.sym Move arm from ports to libc. 2014-02-08 01:49:39 +00:00
setfpucw.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
setjmp.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
sfp-machine.h Remove sysdeps/arm/soft-fp directory. 2014-10-16 09:54:45 -07:00
sotruss-lib.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
stackinfo.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
stap-probe-machine.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
start.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
static-stubs.c Move arm from ports to libc. 2014-02-08 01:49:39 +00:00
strlen.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
sub_n.S Move arm from ports to libc. 2014-02-08 01:49:39 +00:00
submul_1.S Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
sysdep.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
test-fpucw.c Move arm from ports to libc. 2014-02-08 01:49:39 +00:00
tlsdesc.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tlsdesc.sym Move arm from ports to libc. 2014-02-08 01:49:39 +00:00
tst-armtlsdescextlazy.c [BZ #17075] ARM: Fix immediate calculation of R_ARM_TLS_DESC 2014-06-20 20:22:42 +01:00
tst-armtlsdescextlazymod.c [BZ #17075] ARM: Fix immediate calculation of R_ARM_TLS_DESC 2014-06-20 20:22:42 +01:00
tst-armtlsdescextnow.c [BZ #17075] ARM: Fix immediate calculation of R_ARM_TLS_DESC 2014-06-20 20:22:42 +01:00
tst-armtlsdescextnowmod.c [BZ #17075] ARM: Fix immediate calculation of R_ARM_TLS_DESC 2014-06-20 20:22:42 +01:00
tst-armtlsdescloc.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-armtlsdesclocmod.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
tst-audit.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
unwind-arch.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
unwind-dw2-fde-glibc.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
unwind-pe.c Move arm from ports to libc. 2014-02-08 01:49:39 +00:00
unwind-resume.c Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
unwind-resume.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
unwind.h Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
Versions Use -Werror=undef for assembly code. 2015-02-12 13:57:32 -08:00