aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-08-18 09:31:19 -0700
committerH.J. Lu <hjl.tools@gmail.com>2017-08-18 09:31:33 -0700
commit65a086db91d4e06074b461b8e99efcebe1416a3f (patch)
tree544ee0b4202889deeb1825b5bb862d0082ca4b3e /include
parent62753d2c09108550650ab83a69e99ca28d8bde3b (diff)
downloadglibc-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')
-rw-r--r--include/argz.h32
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)