aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2018-02-15 21:00:02 +0000
committerJoseph Myers <joseph@codesourcery.com>2018-02-15 21:00:02 +0000
commit055ac2a7eeb14755e946440af3d2cdfe95f18f8e (patch)
treef1ff1cbd4cb3a5d5514b52ed7e0b86132f72c99a
parente4452a2d19279d4c90bcafe09ec3cbfd3efe9b6a (diff)
downloadglibc-055ac2a7eeb14755e946440af3d2cdfe95f18f8e.zip
glibc-055ac2a7eeb14755e946440af3d2cdfe95f18f8e.tar.gz
glibc-055ac2a7eeb14755e946440af3d2cdfe95f18f8e.tar.bz2
Use libc_hidden_* for argz_next, __argz_next (bug 15105).
Among other localplt test failures when building with -Os, there are libc.so PLT references for argz_next and __argz_next. This is a simple case of functions that are inlined for -O2 but not for -Os; this patch adds libc_hidden_proto / libc_hidden_def for them to avoid localplt failures even when not inlined. Tested for x86_64 (both that it removes these particular localplt failures 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/argz.h (argz_next): Use libc_hidden_proto. (__argz_next): Likewise. * string-argz-next.c (__argz_next): Use libc_hidden_def. (argz_next): Use libc_hidden_weak.
-rw-r--r--ChangeLog6
-rw-r--r--include/argz.h2
-rw-r--r--string/argz-next.c2
3 files changed, 10 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 1d9e54b..9007cea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,12 @@
2018-02-15 Joseph Myers <joseph@codesourcery.com>
[BZ #15105]
+ * include/argz.h (argz_next): Use libc_hidden_proto.
+ (__argz_next): Likewise.
+ * string-argz-next.c (__argz_next): Use libc_hidden_def.
+ (argz_next): Use libc_hidden_weak.
+
+ [BZ #15105]
* include/sys/socket.h [!_ISOMAC] (__cmsg_nxthdr): Use
libc_hidden_proto.
* sysdeps/unix/sysv/linux/cmsg_nxthdr.c (__cmsg_nxthdr): Use
diff --git a/include/argz.h b/include/argz.h
index 770f02e..e081b2a 100644
--- a/include/argz.h
+++ b/include/argz.h
@@ -39,6 +39,8 @@ extern error_t __argz_replace (char **__restrict __argz,
libc_hidden_proto (argz_delete)
libc_hidden_proto (__argz_count)
libc_hidden_proto (__argz_stringify)
+libc_hidden_proto (argz_next)
+libc_hidden_proto (__argz_next)
# endif /* !_ISOMAC */
#endif
diff --git a/string/argz-next.c b/string/argz-next.c
index abce451..9200eda 100644
--- a/string/argz-next.c
+++ b/string/argz-next.c
@@ -36,4 +36,6 @@ __argz_next (const char *argz, size_t argz_len, const char *entry)
else
return NULL;
}
+libc_hidden_def (__argz_next)
weak_alias (__argz_next, argz_next)
+libc_hidden_weak (argz_next)