diff --git a/nptl/Makefile b/nptl/Makefile
index c8b3e41851..fa71069892 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -81,7 +81,6 @@ static-only-routines = pthread_atfork
 # We need to provide certain routines for compatibility with existing
 # binaries.
 pthread-compat-wrappers = \
-		      send \
 		      sendto fsync lseek lseek64 \
 		      msync open open64 pause \
 		      pread pread64 pwrite pwrite64 \
@@ -298,7 +297,6 @@ CFLAGS-tcdrain.c += -fexceptions -fasynchronous-unwind-tables
 CFLAGS-open.c += -fexceptions -fasynchronous-unwind-tables
 CFLAGS-open64.c += -fexceptions -fasynchronous-unwind-tables
 CFLAGS-pause.c += -fexceptions -fasynchronous-unwind-tables
-CFLAGS-send.c += -fexceptions -fasynchronous-unwind-tables
 CFLAGS-sendto.c += -fexceptions -fasynchronous-unwind-tables
 CFLAGS-recvmsg.c += -fexceptions -fasynchronous-unwind-tables
 CFLAGS-sendmsg.c += -fexceptions -fasynchronous-unwind-tables
diff --git a/nptl/Versions b/nptl/Versions
index bfc553db4b..0c4b681adf 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -121,7 +121,6 @@ libpthread {
     __pthread_mutexattr_settype;
     __pthread_once;
     __pthread_setspecific;
-    __send;
     __sigaction;
     _exit;
     _pthread_cleanup_pop;
@@ -176,7 +175,6 @@ libpthread {
     sem_post;
     sem_trywait;
     sem_wait;
-    send;
     sendmsg;
     sendto;
     sigaction;
diff --git a/socket/Makefile b/socket/Makefile
index 228b141c3b..55c2416887 100644
--- a/socket/Makefile
+++ b/socket/Makefile
@@ -39,3 +39,4 @@ include ../Rules
 
 CFLAGS-recv.c += -fexceptions -fasynchronous-unwind-tables
 CFLAGS-recvfrom.c += -fexceptions -fasynchronous-unwind-tables
+CFLAGS-send.c += -fexceptions -fasynchronous-unwind-tables
diff --git a/sysdeps/unix/sysv/linux/aarch64/Versions b/sysdeps/unix/sysv/linux/aarch64/Versions
index 9bd87fe2d0..92f653aa93 100644
--- a/sysdeps/unix/sysv/linux/aarch64/Versions
+++ b/sysdeps/unix/sysv/linux/aarch64/Versions
@@ -5,6 +5,9 @@ ld {
   }
 }
 libc {
+  GLIBC_2.17 {
+    __send;
+  }
   GLIBC_PRIVATE {
     __vdso_clock_gettime;
     __vdso_clock_getres;
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index bac795262d..29f41b7ed5 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -371,6 +371,7 @@ GLIBC_2.17 __sched_getscheduler F
 GLIBC_2.17 __sched_setscheduler F
 GLIBC_2.17 __sched_yield F
 GLIBC_2.17 __select F
+GLIBC_2.17 __send F
 GLIBC_2.17 __setmntent F
 GLIBC_2.17 __setpgid F
 GLIBC_2.17 __sigaction F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index 2a0129ec9d..f4b6b38115 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -38,7 +38,6 @@ GLIBC_2.17 __pthread_unregister_cancel_restore F
 GLIBC_2.17 __pthread_unwind_next F
 GLIBC_2.17 __pwrite64 F
 GLIBC_2.17 __res_state F
-GLIBC_2.17 __send F
 GLIBC_2.17 __sigaction F
 GLIBC_2.17 _pthread_cleanup_pop F
 GLIBC_2.17 _pthread_cleanup_pop_restore F
@@ -168,7 +167,6 @@ GLIBC_2.17 sem_timedwait F
 GLIBC_2.17 sem_trywait F
 GLIBC_2.17 sem_unlink F
 GLIBC_2.17 sem_wait F
-GLIBC_2.17 send F
 GLIBC_2.17 sendmsg F
 GLIBC_2.17 sendto F
 GLIBC_2.17 sigaction F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index bb22a8fbc5..34b5cf8b04 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -18,7 +18,6 @@ GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __pthread_setspecific F
-GLIBC_2.0 __send F
 GLIBC_2.0 __sigaction F
 GLIBC_2.0 _pthread_cleanup_pop F
 GLIBC_2.0 _pthread_cleanup_pop_restore F
@@ -71,7 +70,6 @@ GLIBC_2.0 sem_init F
 GLIBC_2.0 sem_post F
 GLIBC_2.0 sem_trywait F
 GLIBC_2.0 sem_wait F
-GLIBC_2.0 send F
 GLIBC_2.0 sendmsg F
 GLIBC_2.0 sendto F
 GLIBC_2.0 sigaction F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index 910045e24c..bc372dc086 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -37,7 +37,6 @@ GLIBC_2.32 __pthread_unregister_cancel_restore F
 GLIBC_2.32 __pthread_unwind_next F
 GLIBC_2.32 __pwrite64 F
 GLIBC_2.32 __res_state F
-GLIBC_2.32 __send F
 GLIBC_2.32 __sigaction F
 GLIBC_2.32 _pthread_cleanup_pop F
 GLIBC_2.32 _pthread_cleanup_pop_restore F
@@ -186,7 +185,6 @@ GLIBC_2.32 sem_timedwait F
 GLIBC_2.32 sem_trywait F
 GLIBC_2.32 sem_unlink F
 GLIBC_2.32 sem_wait F
-GLIBC_2.32 send F
 GLIBC_2.32 sendmsg F
 GLIBC_2.32 sendto F
 GLIBC_2.32 sigaction F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index 8d4a3fc062..88d91c8955 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -73,7 +73,6 @@ GLIBC_2.4 __pthread_unregister_cancel_restore F
 GLIBC_2.4 __pthread_unwind_next F
 GLIBC_2.4 __pwrite64 F
 GLIBC_2.4 __res_state F
-GLIBC_2.4 __send F
 GLIBC_2.4 __sigaction F
 GLIBC_2.4 _pthread_cleanup_pop F
 GLIBC_2.4 _pthread_cleanup_pop_restore F
@@ -197,7 +196,6 @@ GLIBC_2.4 sem_timedwait F
 GLIBC_2.4 sem_trywait F
 GLIBC_2.4 sem_unlink F
 GLIBC_2.4 sem_wait F
-GLIBC_2.4 send F
 GLIBC_2.4 sendmsg F
 GLIBC_2.4 sendto F
 GLIBC_2.4 sigaction F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index 8d4a3fc062..88d91c8955 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -73,7 +73,6 @@ GLIBC_2.4 __pthread_unregister_cancel_restore F
 GLIBC_2.4 __pthread_unwind_next F
 GLIBC_2.4 __pwrite64 F
 GLIBC_2.4 __res_state F
-GLIBC_2.4 __send F
 GLIBC_2.4 __sigaction F
 GLIBC_2.4 _pthread_cleanup_pop F
 GLIBC_2.4 _pthread_cleanup_pop_restore F
@@ -197,7 +196,6 @@ GLIBC_2.4 sem_timedwait F
 GLIBC_2.4 sem_trywait F
 GLIBC_2.4 sem_unlink F
 GLIBC_2.4 sem_wait F
-GLIBC_2.4 send F
 GLIBC_2.4 sendmsg F
 GLIBC_2.4 sendto F
 GLIBC_2.4 sigaction F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index 32a5763b89..41a0da03eb 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -37,7 +37,6 @@ GLIBC_2.29 __pthread_unregister_cancel_restore F
 GLIBC_2.29 __pthread_unwind_next F
 GLIBC_2.29 __pwrite64 F
 GLIBC_2.29 __res_state F
-GLIBC_2.29 __send F
 GLIBC_2.29 __sigaction F
 GLIBC_2.29 _pthread_cleanup_pop F
 GLIBC_2.29 _pthread_cleanup_pop_restore F
@@ -180,7 +179,6 @@ GLIBC_2.29 sem_timedwait F
 GLIBC_2.29 sem_trywait F
 GLIBC_2.29 sem_unlink F
 GLIBC_2.29 sem_wait F
-GLIBC_2.29 send F
 GLIBC_2.29 sendmsg F
 GLIBC_2.29 sendto F
 GLIBC_2.29 sigaction F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index f60266d245..8d4a802c03 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -40,7 +40,6 @@ GLIBC_2.2 __pthread_rwlock_wrlock F
 GLIBC_2.2 __pthread_setspecific F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __res_state F
-GLIBC_2.2 __send F
 GLIBC_2.2 __sigaction F
 GLIBC_2.2 _pthread_cleanup_pop F
 GLIBC_2.2 _pthread_cleanup_pop_restore F
@@ -148,7 +147,6 @@ GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
 GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
-GLIBC_2.2 send F
 GLIBC_2.2 sendmsg F
 GLIBC_2.2 sendto F
 GLIBC_2.2 sigaction F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index 103388c4f5..36b8644259 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -18,7 +18,6 @@ GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __pthread_setspecific F
-GLIBC_2.0 __send F
 GLIBC_2.0 __sigaction F
 GLIBC_2.0 _pthread_cleanup_pop F
 GLIBC_2.0 _pthread_cleanup_pop_restore F
@@ -71,7 +70,6 @@ GLIBC_2.0 sem_init F
 GLIBC_2.0 sem_post F
 GLIBC_2.0 sem_trywait F
 GLIBC_2.0 sem_wait F
-GLIBC_2.0 send F
 GLIBC_2.0 sendmsg F
 GLIBC_2.0 sendto F
 GLIBC_2.0 sigaction F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index a7d6b3deea..42585ba3ce 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -40,7 +40,6 @@ GLIBC_2.2 __pthread_rwlock_wrlock F
 GLIBC_2.2 __pthread_setspecific F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __res_state F
-GLIBC_2.2 __send F
 GLIBC_2.2 __sigaction F
 GLIBC_2.2 _pthread_cleanup_pop F
 GLIBC_2.2 _pthread_cleanup_pop_restore F
@@ -148,7 +147,6 @@ GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
 GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
-GLIBC_2.2 send F
 GLIBC_2.2 sendmsg F
 GLIBC_2.2 sendto F
 GLIBC_2.2 sigaction F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index 8d4a3fc062..88d91c8955 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -73,7 +73,6 @@ GLIBC_2.4 __pthread_unregister_cancel_restore F
 GLIBC_2.4 __pthread_unwind_next F
 GLIBC_2.4 __pwrite64 F
 GLIBC_2.4 __res_state F
-GLIBC_2.4 __send F
 GLIBC_2.4 __sigaction F
 GLIBC_2.4 _pthread_cleanup_pop F
 GLIBC_2.4 _pthread_cleanup_pop_restore F
@@ -197,7 +196,6 @@ GLIBC_2.4 sem_timedwait F
 GLIBC_2.4 sem_trywait F
 GLIBC_2.4 sem_unlink F
 GLIBC_2.4 sem_wait F
-GLIBC_2.4 send F
 GLIBC_2.4 sendmsg F
 GLIBC_2.4 sendto F
 GLIBC_2.4 sigaction F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index 103388c4f5..36b8644259 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -18,7 +18,6 @@ GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __pthread_setspecific F
-GLIBC_2.0 __send F
 GLIBC_2.0 __sigaction F
 GLIBC_2.0 _pthread_cleanup_pop F
 GLIBC_2.0 _pthread_cleanup_pop_restore F
@@ -71,7 +70,6 @@ GLIBC_2.0 sem_init F
 GLIBC_2.0 sem_post F
 GLIBC_2.0 sem_trywait F
 GLIBC_2.0 sem_wait F
-GLIBC_2.0 send F
 GLIBC_2.0 sendmsg F
 GLIBC_2.0 sendto F
 GLIBC_2.0 sigaction F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index 4e950d5259..d780989570 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -38,7 +38,6 @@ GLIBC_2.18 __pthread_unregister_cancel_restore F
 GLIBC_2.18 __pthread_unwind_next F
 GLIBC_2.18 __pwrite64 F
 GLIBC_2.18 __res_state F
-GLIBC_2.18 __send F
 GLIBC_2.18 __sigaction F
 GLIBC_2.18 _pthread_cleanup_pop F
 GLIBC_2.18 _pthread_cleanup_pop_restore F
@@ -170,7 +169,6 @@ GLIBC_2.18 sem_timedwait F
 GLIBC_2.18 sem_trywait F
 GLIBC_2.18 sem_unlink F
 GLIBC_2.18 sem_wait F
-GLIBC_2.18 send F
 GLIBC_2.18 sendmsg F
 GLIBC_2.18 sendto F
 GLIBC_2.18 sigaction F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index 4e950d5259..d780989570 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -38,7 +38,6 @@ GLIBC_2.18 __pthread_unregister_cancel_restore F
 GLIBC_2.18 __pthread_unwind_next F
 GLIBC_2.18 __pwrite64 F
 GLIBC_2.18 __res_state F
-GLIBC_2.18 __send F
 GLIBC_2.18 __sigaction F
 GLIBC_2.18 _pthread_cleanup_pop F
 GLIBC_2.18 _pthread_cleanup_pop_restore F
@@ -170,7 +169,6 @@ GLIBC_2.18 sem_timedwait F
 GLIBC_2.18 sem_trywait F
 GLIBC_2.18 sem_unlink F
 GLIBC_2.18 sem_wait F
-GLIBC_2.18 send F
 GLIBC_2.18 sendmsg F
 GLIBC_2.18 sendto F
 GLIBC_2.18 sigaction F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index aaf79e4825..386c89943c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -18,7 +18,6 @@ GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __pthread_setspecific F
-GLIBC_2.0 __send F
 GLIBC_2.0 __sigaction F
 GLIBC_2.0 _pthread_cleanup_pop F
 GLIBC_2.0 _pthread_cleanup_pop_restore F
@@ -71,7 +70,6 @@ GLIBC_2.0 sem_init F
 GLIBC_2.0 sem_post F
 GLIBC_2.0 sem_trywait F
 GLIBC_2.0 sem_wait F
-GLIBC_2.0 send F
 GLIBC_2.0 sendmsg F
 GLIBC_2.0 sendto F
 GLIBC_2.0 sigaction F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index aaf79e4825..386c89943c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -18,7 +18,6 @@ GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __pthread_setspecific F
-GLIBC_2.0 __send F
 GLIBC_2.0 __sigaction F
 GLIBC_2.0 _pthread_cleanup_pop F
 GLIBC_2.0 _pthread_cleanup_pop_restore F
@@ -71,7 +70,6 @@ GLIBC_2.0 sem_init F
 GLIBC_2.0 sem_post F
 GLIBC_2.0 sem_trywait F
 GLIBC_2.0 sem_wait F
-GLIBC_2.0 send F
 GLIBC_2.0 sendmsg F
 GLIBC_2.0 sendto F
 GLIBC_2.0 sigaction F
diff --git a/sysdeps/unix/sysv/linux/nios2/Versions b/sysdeps/unix/sysv/linux/nios2/Versions
index e42c85f575..ea1ec39234 100644
--- a/sysdeps/unix/sysv/linux/nios2/Versions
+++ b/sysdeps/unix/sysv/linux/nios2/Versions
@@ -1,5 +1,6 @@
 libc {
   GLIBC_2.21 {
+    __send;
     _flush_cache;
     cacheflush;
   }
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 f38f6c1250..dd9eca02b9 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -38,7 +38,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
@@ -170,7 +169,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 sendmsg F
 GLIBC_2.21 sendto F
 GLIBC_2.21 sigaction F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index 90ba7f8344..c0d9ac4000 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -18,7 +18,6 @@ GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __pthread_setspecific F
-GLIBC_2.0 __send F
 GLIBC_2.0 __sigaction F
 GLIBC_2.0 _pthread_cleanup_pop F
 GLIBC_2.0 _pthread_cleanup_pop_restore F
@@ -71,7 +70,6 @@ GLIBC_2.0 sem_init F
 GLIBC_2.0 sem_post F
 GLIBC_2.0 sem_trywait F
 GLIBC_2.0 sem_wait F
-GLIBC_2.0 send F
 GLIBC_2.0 sendmsg F
 GLIBC_2.0 sendto F
 GLIBC_2.0 sigaction F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index d1c40ad014..ac031664df 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -61,7 +61,6 @@ GLIBC_2.3 __pthread_rwlock_wrlock F
 GLIBC_2.3 __pthread_setspecific F
 GLIBC_2.3 __pwrite64 F
 GLIBC_2.3 __res_state F
-GLIBC_2.3 __send F
 GLIBC_2.3 __sigaction F
 GLIBC_2.3 _pthread_cleanup_pop F
 GLIBC_2.3 _pthread_cleanup_pop_restore F
@@ -168,7 +167,6 @@ GLIBC_2.3 sem_timedwait F
 GLIBC_2.3 sem_trywait F
 GLIBC_2.3 sem_unlink F
 GLIBC_2.3 sem_wait F
-GLIBC_2.3 send F
 GLIBC_2.3 sendmsg F
 GLIBC_2.3 sendto F
 GLIBC_2.3 sigaction F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index 2a0129ec9d..f4b6b38115 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -38,7 +38,6 @@ GLIBC_2.17 __pthread_unregister_cancel_restore F
 GLIBC_2.17 __pthread_unwind_next F
 GLIBC_2.17 __pwrite64 F
 GLIBC_2.17 __res_state F
-GLIBC_2.17 __send F
 GLIBC_2.17 __sigaction F
 GLIBC_2.17 _pthread_cleanup_pop F
 GLIBC_2.17 _pthread_cleanup_pop_restore F
@@ -168,7 +167,6 @@ GLIBC_2.17 sem_timedwait F
 GLIBC_2.17 sem_trywait F
 GLIBC_2.17 sem_unlink F
 GLIBC_2.17 sem_wait F
-GLIBC_2.17 send F
 GLIBC_2.17 sendmsg F
 GLIBC_2.17 sendto F
 GLIBC_2.17 sigaction F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index faedd4be62..9e502ef6db 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -37,7 +37,6 @@ GLIBC_2.33 __pthread_unregister_cancel_restore F
 GLIBC_2.33 __pthread_unwind_next F
 GLIBC_2.33 __pwrite64 F
 GLIBC_2.33 __res_state F
-GLIBC_2.33 __send F
 GLIBC_2.33 __sigaction F
 GLIBC_2.33 _pthread_cleanup_pop F
 GLIBC_2.33 _pthread_cleanup_pop_restore F
@@ -186,7 +185,6 @@ GLIBC_2.33 sem_timedwait F
 GLIBC_2.33 sem_trywait F
 GLIBC_2.33 sem_unlink F
 GLIBC_2.33 sem_wait F
-GLIBC_2.33 send F
 GLIBC_2.33 sendmsg F
 GLIBC_2.33 sendto F
 GLIBC_2.33 sigaction F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index 6af93a54c7..3e18d1d43c 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -38,7 +38,6 @@ GLIBC_2.27 __pthread_unregister_cancel_restore F
 GLIBC_2.27 __pthread_unwind_next F
 GLIBC_2.27 __pwrite64 F
 GLIBC_2.27 __res_state F
-GLIBC_2.27 __send F
 GLIBC_2.27 __sigaction F
 GLIBC_2.27 _pthread_cleanup_pop F
 GLIBC_2.27 _pthread_cleanup_pop_restore F
@@ -169,7 +168,6 @@ GLIBC_2.27 sem_timedwait F
 GLIBC_2.27 sem_trywait F
 GLIBC_2.27 sem_unlink F
 GLIBC_2.27 sem_wait F
-GLIBC_2.27 send F
 GLIBC_2.27 sendmsg F
 GLIBC_2.27 sendto F
 GLIBC_2.27 sigaction F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index f7372e26d7..a0b09b0bf3 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -18,7 +18,6 @@ GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __pthread_setspecific F
-GLIBC_2.0 __send F
 GLIBC_2.0 __sigaction F
 GLIBC_2.0 _pthread_cleanup_pop F
 GLIBC_2.0 _pthread_cleanup_pop_restore F
@@ -71,7 +70,6 @@ GLIBC_2.0 sem_init F
 GLIBC_2.0 sem_post F
 GLIBC_2.0 sem_trywait F
 GLIBC_2.0 sem_wait F
-GLIBC_2.0 send F
 GLIBC_2.0 sendmsg F
 GLIBC_2.0 sendto F
 GLIBC_2.0 sigaction F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index 2a06f25614..1469f714dd 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -42,7 +42,6 @@ GLIBC_2.2 __pthread_rwlock_wrlock F
 GLIBC_2.2 __pthread_setspecific F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __res_state F
-GLIBC_2.2 __send F
 GLIBC_2.2 __sigaction F
 GLIBC_2.2 _pthread_cleanup_pop F
 GLIBC_2.2 _pthread_cleanup_pop_restore F
@@ -150,7 +149,6 @@ GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
 GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
-GLIBC_2.2 send F
 GLIBC_2.2 sendmsg F
 GLIBC_2.2 sendto F
 GLIBC_2.2 sigaction F
diff --git a/sysdeps/unix/sysv/linux/send.c b/sysdeps/unix/sysv/linux/send.c
index 283e09e2f3..f29a7de349 100644
--- a/sysdeps/unix/sysv/linux/send.c
+++ b/sysdeps/unix/sysv/linux/send.c
@@ -32,6 +32,4 @@ __libc_send (int fd, const void *buf, size_t len, int flags)
 }
 weak_alias (__libc_send, send)
 weak_alias (__libc_send, __send)
-#ifdef HAVE_INTERNAL_SEND_SYMBOL
 libc_hidden_def (__send)
-#endif
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index f60266d245..8d4a802c03 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -40,7 +40,6 @@ GLIBC_2.2 __pthread_rwlock_wrlock F
 GLIBC_2.2 __pthread_setspecific F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __res_state F
-GLIBC_2.2 __send F
 GLIBC_2.2 __sigaction F
 GLIBC_2.2 _pthread_cleanup_pop F
 GLIBC_2.2 _pthread_cleanup_pop_restore F
@@ -148,7 +147,6 @@ GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
 GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
-GLIBC_2.2 send F
 GLIBC_2.2 sendmsg F
 GLIBC_2.2 sendto F
 GLIBC_2.2 sigaction F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index f60266d245..8d4a802c03 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -40,7 +40,6 @@ GLIBC_2.2 __pthread_rwlock_wrlock F
 GLIBC_2.2 __pthread_setspecific F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __res_state F
-GLIBC_2.2 __send F
 GLIBC_2.2 __sigaction F
 GLIBC_2.2 _pthread_cleanup_pop F
 GLIBC_2.2 _pthread_cleanup_pop_restore F
@@ -148,7 +147,6 @@ GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
 GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
-GLIBC_2.2 send F
 GLIBC_2.2 sendmsg F
 GLIBC_2.2 sendto F
 GLIBC_2.2 sigaction F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index bb22a8fbc5..34b5cf8b04 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -18,7 +18,6 @@ GLIBC_2.0 __pthread_mutexattr_init F
 GLIBC_2.0 __pthread_mutexattr_settype F
 GLIBC_2.0 __pthread_once F
 GLIBC_2.0 __pthread_setspecific F
-GLIBC_2.0 __send F
 GLIBC_2.0 __sigaction F
 GLIBC_2.0 _pthread_cleanup_pop F
 GLIBC_2.0 _pthread_cleanup_pop_restore F
@@ -71,7 +70,6 @@ GLIBC_2.0 sem_init F
 GLIBC_2.0 sem_post F
 GLIBC_2.0 sem_trywait F
 GLIBC_2.0 sem_wait F
-GLIBC_2.0 send F
 GLIBC_2.0 sendmsg F
 GLIBC_2.0 sendto F
 GLIBC_2.0 sigaction F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index a7d6b3deea..42585ba3ce 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -40,7 +40,6 @@ GLIBC_2.2 __pthread_rwlock_wrlock F
 GLIBC_2.2 __pthread_setspecific F
 GLIBC_2.2 __pwrite64 F
 GLIBC_2.2 __res_state F
-GLIBC_2.2 __send F
 GLIBC_2.2 __sigaction F
 GLIBC_2.2 _pthread_cleanup_pop F
 GLIBC_2.2 _pthread_cleanup_pop_restore F
@@ -148,7 +147,6 @@ GLIBC_2.2 sem_timedwait F
 GLIBC_2.2 sem_trywait F
 GLIBC_2.2 sem_unlink F
 GLIBC_2.2 sem_wait F
-GLIBC_2.2 send F
 GLIBC_2.2 sendmsg F
 GLIBC_2.2 sendto F
 GLIBC_2.2 sigaction F
diff --git a/sysdeps/unix/sysv/linux/sysdep.h b/sysdeps/unix/sysv/linux/sysdep.h
index bff83e5bcd..3ef72dc805 100644
--- a/sysdeps/unix/sysv/linux/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sysdep.h
@@ -95,10 +95,6 @@
  (long) (val), \
  (long) (((uint64_t) (val)) >> 32)
 
-/* Exports the __send symbol on send.c linux implementation (some ABI have
-   it missing due the usage of a old generic version without it).  */
-#define HAVE_INTERNAL_SEND_SYMBOL	1
-
 /* Export the ___brk_addr symbol on brk.c implementation (some ABIs export
    it due and old crtstuff.c code).  */
 #define HAVE_INTERNAL_BRK_ADDR_SYMBOL   0
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index eb769489f6..0065e7843d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -40,7 +40,6 @@ GLIBC_2.2.5 __pthread_rwlock_wrlock F
 GLIBC_2.2.5 __pthread_setspecific F
 GLIBC_2.2.5 __pwrite64 F
 GLIBC_2.2.5 __res_state F
-GLIBC_2.2.5 __send F
 GLIBC_2.2.5 __sigaction F
 GLIBC_2.2.5 _pthread_cleanup_pop F
 GLIBC_2.2.5 _pthread_cleanup_pop_restore F
@@ -148,7 +147,6 @@ GLIBC_2.2.5 sem_timedwait F
 GLIBC_2.2.5 sem_trywait F
 GLIBC_2.2.5 sem_unlink F
 GLIBC_2.2.5 sem_wait F
-GLIBC_2.2.5 send F
 GLIBC_2.2.5 sendmsg F
 GLIBC_2.2.5 sendto F
 GLIBC_2.2.5 sigaction F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index 2d669e82d9..13ac2abbb3 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -38,7 +38,6 @@ GLIBC_2.16 __pthread_unregister_cancel_restore F
 GLIBC_2.16 __pthread_unwind_next F
 GLIBC_2.16 __pwrite64 F
 GLIBC_2.16 __res_state F
-GLIBC_2.16 __send F
 GLIBC_2.16 __sigaction F
 GLIBC_2.16 _pthread_cleanup_pop F
 GLIBC_2.16 _pthread_cleanup_pop_restore F
@@ -168,7 +167,6 @@ GLIBC_2.16 sem_timedwait F
 GLIBC_2.16 sem_trywait F
 GLIBC_2.16 sem_unlink F
 GLIBC_2.16 sem_wait F
-GLIBC_2.16 send F
 GLIBC_2.16 sendmsg F
 GLIBC_2.16 sendto F
 GLIBC_2.16 sigaction F
