diff --git a/nptl/Makefile b/nptl/Makefile
index b7f4268143..09fd6cf2f9 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -78,13 +78,7 @@ routines = \
 shared-only-routines = forward
 static-only-routines = pthread_atfork
 
-# We need to provide certain routines for compatibility with existing
-# binaries.
-pthread-compat-wrappers = \
-		      sendmsg
-
 libpthread-routines = \
-  $(pthread-compat-wrappers) \
   cancellation \
   cleanup \
   cleanup_compat \
@@ -281,7 +275,6 @@ CFLAGS-sem_clockwait.c = -fexceptions -fasynchronous-unwind-tables
 CFLAGS-fcntl.c += -fexceptions -fasynchronous-unwind-tables
 CFLAGS-fcntl64.c += -fexceptions -fasynchronous-unwind-tables
 CFLAGS-lockf.c += -fexceptions
-CFLAGS-sendmsg.c += -fexceptions -fasynchronous-unwind-tables
 CFLAGS-fdatasync.c += -fexceptions -fasynchronous-unwind-tables
 
 CFLAGS-pt-system.c += -fexceptions
diff --git a/nptl/Versions b/nptl/Versions
index b744ceb67d..b054be75ca 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -167,7 +167,6 @@ libpthread {
     sem_post;
     sem_trywait;
     sem_wait;
-    sendmsg;
     sigaction;
     siglongjmp;
     system;
diff --git a/socket/Makefile b/socket/Makefile
index 28695d415c..fcb0310636 100644
--- a/socket/Makefile
+++ b/socket/Makefile
@@ -42,3 +42,4 @@ CFLAGS-recvfrom.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/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index e04c1fa7d4..baebbbf19f 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -150,7 +150,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 sendmsg F
 GLIBC_2.17 sigaction F
 GLIBC_2.17 siglongjmp F
 GLIBC_2.17 system F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index 032b1a19e8..c9cf699efe 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -62,7 +62,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 sendmsg F
 GLIBC_2.0 sigaction F
 GLIBC_2.0 siglongjmp F
 GLIBC_2.0 system F
diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
index dc0ef5581d..99fd486c69 100644
--- a/sysdeps/unix/sysv/linux/arc/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libpthread.abilist
@@ -168,7 +168,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 sendmsg F
 GLIBC_2.32 sigaction F
 GLIBC_2.32 thrd_create F
 GLIBC_2.32 thrd_detach F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
index 1026a813b6..88f515ec3f 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libpthread.abilist
@@ -179,7 +179,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 sendmsg F
 GLIBC_2.4 sigaction F
 GLIBC_2.4 siglongjmp F
 GLIBC_2.4 system F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
index 1026a813b6..88f515ec3f 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libpthread.abilist
@@ -179,7 +179,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 sendmsg F
 GLIBC_2.4 sigaction F
 GLIBC_2.4 siglongjmp F
 GLIBC_2.4 system F
diff --git a/sysdeps/unix/sysv/linux/csky/libpthread.abilist b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
index 6bcc29fe5f..b5bf15c7b8 100644
--- a/sysdeps/unix/sysv/linux/csky/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libpthread.abilist
@@ -162,7 +162,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 sendmsg F
 GLIBC_2.29 sigaction F
 GLIBC_2.29 thrd_create F
 GLIBC_2.29 thrd_detach F
diff --git a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
index d065a43e5b..2918ea8b77 100644
--- a/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -130,7 +130,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 sendmsg F
 GLIBC_2.2 sigaction F
 GLIBC_2.2 siglongjmp F
 GLIBC_2.2 system F
diff --git a/sysdeps/unix/sysv/linux/i386/libpthread.abilist b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
index 7a48c068b8..ba84e8cf4e 100644
--- a/sysdeps/unix/sysv/linux/i386/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -62,7 +62,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 sendmsg F
 GLIBC_2.0 sigaction F
 GLIBC_2.0 siglongjmp F
 GLIBC_2.0 system F
diff --git a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
index 0191a3be6e..09dbd6a55e 100644
--- a/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -130,7 +130,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 sendmsg F
 GLIBC_2.2 sigaction F
 GLIBC_2.2 siglongjmp F
 GLIBC_2.2 system F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
index 1026a813b6..88f515ec3f 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -179,7 +179,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 sendmsg F
 GLIBC_2.4 sigaction F
 GLIBC_2.4 siglongjmp F
 GLIBC_2.4 system F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
index 7a48c068b8..ba84e8cf4e 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -62,7 +62,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 sendmsg F
 GLIBC_2.0 sigaction F
 GLIBC_2.0 siglongjmp F
 GLIBC_2.0 system F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
index 3e85c4085d..539af45dec 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist
@@ -152,7 +152,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 sendmsg F
 GLIBC_2.18 sigaction F
 GLIBC_2.18 siglongjmp F
 GLIBC_2.18 system F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
index 3e85c4085d..539af45dec 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist
@@ -152,7 +152,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 sendmsg F
 GLIBC_2.18 sigaction F
 GLIBC_2.18 siglongjmp F
 GLIBC_2.18 system F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
index 3fd0d78409..aa64038191 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -62,7 +62,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 sendmsg F
 GLIBC_2.0 sigaction F
 GLIBC_2.0 siglongjmp F
 GLIBC_2.0 system F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
index 3fd0d78409..aa64038191 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -62,7 +62,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 sendmsg F
 GLIBC_2.0 sigaction F
 GLIBC_2.0 siglongjmp F
 GLIBC_2.0 system F
diff --git a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
index 764dbd7ee5..6a827de537 100644
--- a/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -152,7 +152,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 sendmsg F
 GLIBC_2.21 sigaction F
 GLIBC_2.21 siglongjmp F
 GLIBC_2.21 system F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
index bfeb72986a..f107431df1 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -62,7 +62,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 sendmsg F
 GLIBC_2.0 sigaction F
 GLIBC_2.0 siglongjmp F
 GLIBC_2.0 system F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
index 8acbd886cb..abf347c73d 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
@@ -150,7 +150,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 sendmsg F
 GLIBC_2.3 sigaction F
 GLIBC_2.3 siglongjmp F
 GLIBC_2.3 system F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
index e04c1fa7d4..baebbbf19f 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
@@ -150,7 +150,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 sendmsg F
 GLIBC_2.17 sigaction F
 GLIBC_2.17 siglongjmp F
 GLIBC_2.17 system F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
index a27963e93b..fb3965a32a 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libpthread.abilist
@@ -168,7 +168,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 sendmsg F
 GLIBC_2.33 sigaction F
 GLIBC_2.33 thrd_create F
 GLIBC_2.33 thrd_detach F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
index ce9f1f9b9b..1b0a4b7b35 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
@@ -151,7 +151,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 sendmsg F
 GLIBC_2.27 sigaction F
 GLIBC_2.28 call_once F
 GLIBC_2.28 cnd_broadcast F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
index ed79e51091..cef99bc2e1 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
@@ -62,7 +62,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 sendmsg F
 GLIBC_2.0 sigaction F
 GLIBC_2.0 siglongjmp F
 GLIBC_2.0 system F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
index 5b11678717..c296ae52ea 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -132,7 +132,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 sendmsg F
 GLIBC_2.2 sigaction F
 GLIBC_2.2 siglongjmp F
 GLIBC_2.2 system F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
index d065a43e5b..2918ea8b77 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libpthread.abilist
@@ -130,7 +130,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 sendmsg F
 GLIBC_2.2 sigaction F
 GLIBC_2.2 siglongjmp F
 GLIBC_2.2 system F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
index d065a43e5b..2918ea8b77 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libpthread.abilist
@@ -130,7 +130,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 sendmsg F
 GLIBC_2.2 sigaction F
 GLIBC_2.2 siglongjmp F
 GLIBC_2.2 system F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
index 032b1a19e8..c9cf699efe 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -62,7 +62,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 sendmsg F
 GLIBC_2.0 sigaction F
 GLIBC_2.0 siglongjmp F
 GLIBC_2.0 system F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
index 0191a3be6e..09dbd6a55e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -130,7 +130,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 sendmsg F
 GLIBC_2.2 sigaction F
 GLIBC_2.2 siglongjmp F
 GLIBC_2.2 system F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
index a7e6ccfc02..37f65538e8 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -130,7 +130,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 sendmsg F
 GLIBC_2.2.5 sigaction F
 GLIBC_2.2.5 siglongjmp F
 GLIBC_2.2.5 system F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
index 43f9d0e2a9..8446f1187d 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -150,7 +150,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 sendmsg F
 GLIBC_2.16 sigaction F
 GLIBC_2.16 siglongjmp F
 GLIBC_2.16 system F
