about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2018-02-15 20:59:12 +0000
committerJoseph Myers <joseph@codesourcery.com>2018-02-15 20:59:12 +0000
commite4452a2d19279d4c90bcafe09ec3cbfd3efe9b6a (patch)
treed63b0749bb43c54953a0c9b228ad33a74cd3b5a3
parent499b315324519f8deb5b42a143a76319934a3ab0 (diff)
downloadglibc-e4452a2d19279d4c90bcafe09ec3cbfd3efe9b6a.tar.gz
glibc-e4452a2d19279d4c90bcafe09ec3cbfd3efe9b6a.tar.xz
glibc-e4452a2d19279d4c90bcafe09ec3cbfd3efe9b6a.zip
Use libc_hidden_* for __cmsg_nxthdr (bug 15105).
Among other localplt test failures when building with -Os, there are
libc.so PLT references for __cmsg_nxthdr.  This is a simple case of a
function that is inlined for -O2 but not for -Os; this patch adds
libc_hidden_proto / libc_hidden_def for it to avoid a localplt failure
even when it is not inlined.

Tested for x86_64 (both that it removes this particular localplt
failure for -Os - but other such failures remain so the bug can't yet
be closed - and that the testsuite continues to pass without -Os).

	[BZ #15105]
	* include/sys/socket.h [!_ISOMAC] (__cmsg_nxthdr): Use
	libc_hidden_proto.
	* sysdeps/unix/sysv/linux/cmsg_nxthdr.c (__cmsg_nxthdr): Use
	libc_hidden_def.
-rw-r--r--ChangeLog6
-rw-r--r--include/sys/socket.h2
-rw-r--r--sysdeps/unix/sysv/linux/cmsg_nxthdr.c1
3 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 36ee49336a..1d9e54b250 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,12 @@
 2018-02-15  Joseph Myers  <joseph@codesourcery.com>
 
 	[BZ #15105]
+	* include/sys/socket.h [!_ISOMAC] (__cmsg_nxthdr): Use
+	libc_hidden_proto.
+	* sysdeps/unix/sysv/linux/cmsg_nxthdr.c (__cmsg_nxthdr): Use
+	libc_hidden_def.
+
+	[BZ #15105]
 	* include/stdio.h [!_ISOMAC && IS_IN (libc)] (fputs): Use
 	libc_hidden_proto.
 	* libio/iofputs.c (fputs): Use libc_hidden_weak.
diff --git a/include/sys/socket.h b/include/sys/socket.h
index baec6e6439..26db0e0d77 100644
--- a/include/sys/socket.h
+++ b/include/sys/socket.h
@@ -154,5 +154,7 @@ libc_hidden_proto (__libc_sa_len)
 # define SA_LEN(_x)      __libc_sa_len((_x)->sa_family)
 #endif
 
+libc_hidden_proto (__cmsg_nxthdr)
+
 #endif
 #endif
diff --git a/sysdeps/unix/sysv/linux/cmsg_nxthdr.c b/sysdeps/unix/sysv/linux/cmsg_nxthdr.c
index fa0468efda..bab0be6884 100644
--- a/sysdeps/unix/sysv/linux/cmsg_nxthdr.c
+++ b/sysdeps/unix/sysv/linux/cmsg_nxthdr.c
@@ -37,3 +37,4 @@ __cmsg_nxthdr (struct msghdr *mhdr, struct cmsghdr *cmsg)
     return NULL;
   return cmsg;
 }
+libc_hidden_def (__cmsg_nxthdr)