[PATCH] misc: Turn sstk into a compat symbol

Florian Weimer fw@deneb.enyo.de
Tue Apr 28 10:11:55 GMT 2020


* Joseph Myers:

> In general making something (in the user namespace, not necessarily in the 
> case of a symbol starting _) into a compat symbol should get an entry in 
> NEWS under "Deprecated and removed features, and other changes affecting 
> compatibility:".  We've done this even for functions that could not 
> actually work at runtime (e.g. the wrappers for various obsolete Linux 
> kernel syscalls removed from the kernel before the oldest kernel version 
> supported by glibc at the time of making the symbols into compat symbols).

Thanks.  Like this?

8<------------------------------------------------------------------8<
Subject: misc: Remove sstk from the autogenerated system call list

This change should not have an effect because the system call was
never defined.  Also add the misssing attribute_compat_text_section
attribute to the sstk function (a minor optimization).  Also update the
NEWS file to document the change.

Fixes commit 9cc93ba0973ad04ee26c515a1552afb85e73c6ba
("misc: Turn sstk into a compat symbol").

-----
 NEWS                       | 4 ++++
 misc/sstk.c                | 2 +-
 sysdeps/unix/syscalls.list | 1 -
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/NEWS b/NEWS
index 0e627b3405..834de03bda 100644
--- a/NEWS
+++ b/NEWS
@@ -26,6 +26,10 @@ Deprecated and removed features, and other changes affecting compatibility:
   but always fails with ENOSYS.  This reflects the removal of the system
   call from all architectures, starting with Linux 5.5.
 
+* The sstk function is no longer available to newly linked binaries.
+  Its implementation always returned an array, and the function was not
+  declared in any header file.
+
 Changes to build and runtime requirements:
 
   [Add changes to build and runtime requirements here]
diff --git a/misc/sstk.c b/misc/sstk.c
index 0a2a967917..dda6f7b426 100644
--- a/misc/sstk.c
+++ b/misc/sstk.c
@@ -19,7 +19,7 @@
 #include <shlib-compat.h>
 
 #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_32)
-void *
+void * attribute_compat_text_section
 sstk (int increment)
 {
   __set_errno (ENOSYS);
diff --git a/sysdeps/unix/syscalls.list b/sysdeps/unix/syscalls.list
index 01c4a0e6b1..e8f8718b04 100644
--- a/sysdeps/unix/syscalls.list
+++ b/sysdeps/unix/syscalls.list
@@ -78,7 +78,6 @@ sigaction	-	sigaction	i:ipp	__sigaction	sigaction
 sigsuspend	-	sigsuspend	Ci:p	sigsuspend
 socket		-	socket		i:iii	__socket	socket
 socketpair	-	socketpair	i:iiif	socketpair
-sstk		-	sstk		b:i	sstk
 statfs		-	statfs		i:sp	__statfs	statfs
 swapoff		-	swapoff		i:s	swapoff
 swapon		-	swapon		i:s	swapon


More information about the Libc-alpha mailing list