diff options
author | Joseph Myers <joseph@codesourcery.com> | 2018-02-15 21:00:02 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2018-02-15 21:00:02 +0000 |
commit | 055ac2a7eeb14755e946440af3d2cdfe95f18f8e (patch) | |
tree | f1ff1cbd4cb3a5d5514b52ed7e0b86132f72c99a | |
parent | e4452a2d19279d4c90bcafe09ec3cbfd3efe9b6a (diff) | |
download | glibc-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-- | ChangeLog | 6 | ||||
-rw-r--r-- | include/argz.h | 2 | ||||
-rw-r--r-- | string/argz-next.c | 2 |
3 files changed, 10 insertions, 0 deletions
@@ -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) |