glibc/sysdeps
Florian Weimer 508ee037a3 nptl: Use out-of-line wake function in __libc_lock_unlock slow path
This slightly reduces code size, as can be seen below.
__libc_lock_unlock is usually used along with __libc_lock_lock in
the same function.  __libc_lock_lock already has an out-of-line
slow path, so this change should not introduce many additional
non-leaf functions.

This change also fixes a link failure in 32-bit Arm thumb mode
because commit 1f9c804fbd
("nptl: Use internal low-level lock type for !IS_IN (libc)")
introduced __libc_do_syscall calls outside of libc.

Before x86-64:

   text	   data	    bss	    dec	    hex	filename
1937748	  20456	  54896	2013100	 1eb7ac	libc.so.6
  25601	    856	  12768	  39225	   9939	nss/libnss_db.so.2
  40310	    952	  25144	  66406	  10366	nss/libnss_files.so.2

After x86-64:
   text	   data	    bss	    dec	    hex	filename
1935312	  20456	  54896	2010664	 1eae28	libc.so.6
  25559	    864	  12768	  39191	   9917	nss/libnss_db.so.2
  39764	    960	  25144	  65868	  1014c	nss/libnss_files.so.2

Before i686:

2110961	  11272	  39144	2161377	 20fae1	libc.so.6
  27243	    428	  12652	  40323	   9d83	nss/libnss_db.so.2
  43062	    476	  25028	  68566	  10bd6	nss/libnss_files.so.2

After i686:

2107347	  11272	  39144	2157763	 20ecc3	libc.so.6
  26929	    432	  12652	  40013	   9c4d	nss/libnss_db.so.2
  43132	    480	  25028	  68640	  10c20	nss/libnss_files.so.2

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
2021-07-09 10:59:22 +02:00
..
aarch64 AArch64: Add hp-timing.h 2021-07-01 15:42:05 +01:00
alpha nptl: Move pthread_spin_trylock into libc 2021-04-23 17:06:48 +02:00
arc ARC: Update ulps 2021-04-14 09:24:45 -07:00
arm nptl: Remove remaining code from libpthread 2021-05-21 22:35:01 +02:00
csky Reduce the statically linked startup code [BZ #23323] 2021-02-25 12:13:02 +01:00
generic posix: Add posix_spawn_file_actions_addclosefrom_np 2021-07-08 14:08:15 -03:00
gnu Add RFC 8335 Definitions from Linux 5.13 2021-06-29 15:38:27 -03:00
hppa nptl: Move pthread_spin_init, Move pthread_spin_unlock into libc 2021-04-23 17:06:44 +02:00
htl Linux: Cleanups after librt move 2021-06-28 09:51:01 +02:00
hurd Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
i386 Properly check stack alignment [BZ #27901] 2021-05-24 07:42:12 -07:00
ia64 nptl: Remove remaining code from libpthread 2021-05-21 22:35:01 +02:00
ieee754 Update math: redirect roundeven function 2021-06-27 07:56:57 -07:00
m68k m68: Fix build after 9acda61d94 2021-04-06 15:10:31 -03:00
mach posix: Add posix_spawn_file_actions_addclosefrom_np 2021-07-08 14:08:15 -03:00
microblaze Reduce the statically linked startup code [BZ #23323] 2021-02-25 12:13:02 +01:00
mips Update MIPS libm-test-ulps 2021-07-07 15:50:18 +00:00
nios2 Update Nios II libm-test-ulps. 2021-04-01 19:41:40 +00:00
nptl nptl: Use out-of-line wake function in __libc_lock_unlock slow path 2021-07-09 10:59:22 +02:00
posix posix: Add posix_spawn_file_actions_addclosefrom_np 2021-07-08 14:08:15 -03:00
powerpc powerpc64le: Fix typo in configure 2021-07-08 21:59:28 -03:00
pthread Linux: Cleanups after librt move 2021-06-28 09:51:01 +02:00
riscv Update math: redirect roundeven function 2021-06-27 07:56:57 -07:00
s390 s390: Fix MEMCHR_Z900_G5 ifunc-variant if n>=0x80000000 [BZ #28024] 2021-07-01 16:46:59 +02:00
sh nptl: Move pthread_spin_trylock into libc 2021-04-23 17:06:48 +02:00
sparc nptl: Remove remaining code from libpthread 2021-05-21 22:35:01 +02:00
unix posix: Add posix_spawn_file_actions_addclosefrom_np 2021-07-08 14:08:15 -03:00
wordsize-32 Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
wordsize-64 Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
x86 x86: Check RTM_ALWAYS_ABORT for RTM [BZ #28033] 2021-07-01 10:47:35 -07:00
x86_64 x86: Remove wcsnlen-sse4_1 from wcslen ifunc-impl-list [BZ #28064] 2021-07-08 18:55:43 -04:00