summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2018-02-15 20:59:12 +0000
committerFangrui Song <maskray@google.com>2021-11-19 13:20:26 -0800
commit633d14073f5d2f257e12ceffcdcd2ada51483af5 (patch)
tree555104fb58fba5fef24e1ae6a768d6fcbc095e96
parentd7c1214f4d417119c4cca5c36c2adfc4d83be8fc (diff)
downloadglibc-633d14073f5d2f257e12ceffcdcd2ada51483af5.tar.gz
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. (cherry picked from commit e4452a2d19279d4c90bcafe09ec3cbfd3efe9b6a)
-rw-r--r--include/sys/socket.h2
-rw-r--r--sysdeps/unix/sysv/linux/cmsg_nxthdr.c1
2 files changed, 3 insertions, 0 deletions
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)