aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/nios2
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2021-03-12 16:42:39 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2021-03-26 13:36:17 -0300
commit78d1724d53e23fcbbf4df832015aae269b98249c (patch)
tree0afd09f9c7536942ca5ffc23450d9427320914f6 /sysdeps/unix/sysv/linux/nios2
parent4d2e9ef806bd9edc9cf5e133983a4e86ddab381a (diff)
downloadglibc-78d1724d53e23fcbbf4df832015aae269b98249c.tar
glibc-78d1724d53e23fcbbf4df832015aae269b98249c.tar.gz
glibc-78d1724d53e23fcbbf4df832015aae269b98249c.tar.bz2
glibc-78d1724d53e23fcbbf4df832015aae269b98249c.zip
nptl: Remove send from libpthread
The libc version is identical and built with same flags. Both aarch64 and nios2 also requires to export __send and tt was done previously with the HAVE_INTERNAL_SEND_SYMBOL (which forced the symbol creation). All __send callers are internal to libc and the original issue that required the symbol export was due a missing libc_hidden_def. So a compat symbol is added for __send and the libc_hidden_def is defined regardless. Checked on x86_64-linux-gnu and i686-linux-gnu.
Diffstat (limited to 'sysdeps/unix/sysv/linux/nios2')
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libc.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/nios2/send.c9
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sysdep.h4
4 files changed, 10 insertions, 6 deletions
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 17f5609e06..3acb12c22f 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -409,6 +409,7 @@ GLIBC_2.21 __sched_getscheduler F
GLIBC_2.21 __sched_setscheduler F
GLIBC_2.21 __sched_yield F
GLIBC_2.21 __select F
+GLIBC_2.21 __send F
GLIBC_2.21 __setmntent F
GLIBC_2.21 __setpgid F
GLIBC_2.21 __sigaction F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index afdbd3d286..3307186a3b 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -37,7 +37,6 @@ GLIBC_2.21 __pthread_unregister_cancel_restore F
GLIBC_2.21 __pthread_unwind_next F
GLIBC_2.21 __pwrite64 F
GLIBC_2.21 __res_state F
-GLIBC_2.21 __send F
GLIBC_2.21 __sigaction F
GLIBC_2.21 _pthread_cleanup_pop F
GLIBC_2.21 _pthread_cleanup_pop_restore F
@@ -164,7 +163,6 @@ GLIBC_2.21 sem_timedwait F
GLIBC_2.21 sem_trywait F
GLIBC_2.21 sem_unlink F
GLIBC_2.21 sem_wait F
-GLIBC_2.21 send F
GLIBC_2.21 sigaction F
GLIBC_2.21 siglongjmp F
GLIBC_2.28 call_once F
diff --git a/sysdeps/unix/sysv/linux/nios2/send.c b/sysdeps/unix/sysv/linux/nios2/send.c
new file mode 100644
index 0000000000..c1621c8348
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/nios2/send.c
@@ -0,0 +1,9 @@
+#include <shlib-compat.h>
+
+#include <sysdeps/unix/sysv/linux/send.c>
+
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_21, GLIBC_2_34)
+/* libpthread compat symbol: Nios2 used the generic version without the
+ libc_hidden_def which lead in a non existent __send symbol in libc.so. */
+compat_symbol (libc, __libc_send, __send, GLIBC_2_21);
+#endif
diff --git a/sysdeps/unix/sysv/linux/nios2/sysdep.h b/sysdeps/unix/sysv/linux/nios2/sysdep.h
index e37e66fe2e..bd802c40ff 100644
--- a/sysdeps/unix/sysv/linux/nios2/sysdep.h
+++ b/sysdeps/unix/sysv/linux/nios2/sysdep.h
@@ -140,10 +140,6 @@
/* In order to get __set_errno() definition in INLINE_SYSCALL. */
#include <errno.h>
-/* Previously Nios2 used the generic version without the libc_hidden_def
- which lead in a non existent __send symbol in libc.so. */
-# undef HAVE_INTERNAL_SEND_SYMBOL
-
#undef INTERNAL_SYSCALL_RAW
#define INTERNAL_SYSCALL_RAW(name, nr, args...) \
({ unsigned int _sys_result; \