diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2017-08-18 09:31:19 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2017-08-18 09:31:33 -0700 |
commit | 65a086db91d4e06074b461b8e99efcebe1416a3f (patch) | |
tree | 544ee0b4202889deeb1825b5bb862d0082ca4b3e /include/argz.h | |
parent | 62753d2c09108550650ab83a69e99ca28d8bde3b (diff) | |
download | glibc-65a086db91d4e06074b461b8e99efcebe1416a3f.zip glibc-65a086db91d4e06074b461b8e99efcebe1416a3f.tar.gz glibc-65a086db91d4e06074b461b8e99efcebe1416a3f.tar.bz2 |
Mark internal argz functions with attribute_hidden [BZ #18822]
Move internal argz function prototypes to include/argz.h and mark them
with attribute_hidden to allow direct access within libc.so and libc.a
without using GOT nor PLT. This also brings string/argz.h closer to the
gnulib version.
[BZ #18822]
* include/argz.h (__argz_create_sep): New function prototype.
(__argz_append): Likewise.
(__argz_add): Likewise.
(__argz_add_sep): Likewise.
(__argz_delete): Likewise.
(__argz_insert): Likewise.
(__argz_replace): Likewise.
* string/argz.h (__argz_create_sep): Removed.
(__argz_append): Likewise.
(__argz_add): Likewise.
(__argz_add_sep): Likewise.
(__argz_delete): Likewise.
(__argz_insert): Likewise.
(__argz_replace): Likewise.
Diffstat (limited to 'include/argz.h')
-rw-r--r-- | include/argz.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/include/argz.h b/include/argz.h index 0388c23..770f02e 100644 --- a/include/argz.h +++ b/include/argz.h @@ -4,6 +4,38 @@ # ifndef _ISOMAC +extern error_t __argz_create_sep (const char *__restrict __string, + int __sep, char **__restrict __argz, + size_t *__restrict __len) + __THROW attribute_hidden; +extern error_t __argz_append (char **__restrict __argz, + size_t *__restrict __argz_len, + const char *__restrict __buf, size_t __buf_len) + __THROW attribute_hidden; +extern error_t __argz_add (char **__restrict __argz, + size_t *__restrict __argz_len, + const char *__restrict __str) + __THROW attribute_hidden; +extern error_t __argz_add_sep (char **__restrict __argz, + size_t *__restrict __argz_len, + const char *__restrict __string, int __delim) + __THROW attribute_hidden; +extern void __argz_delete (char **__restrict __argz, + size_t *__restrict __argz_len, + char *__restrict __entry) + __THROW attribute_hidden; +extern error_t __argz_insert (char **__restrict __argz, + size_t *__restrict __argz_len, + char *__restrict __before, + const char *__restrict __entry) + __THROW attribute_hidden; +extern error_t __argz_replace (char **__restrict __argz, + size_t *__restrict __argz_len, + const char *__restrict __str, + const char *__restrict __with, + unsigned int *__restrict __replace_count) + attribute_hidden; + libc_hidden_proto (argz_delete) libc_hidden_proto (__argz_count) libc_hidden_proto (__argz_stringify) |