about summary refs log tree commit diff
path: root/include/argz.h
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/argz.h
parent62753d2c09108550650ab83a69e99ca28d8bde3b (diff)
downloadglibc-65a086db91d4e06074b461b8e99efcebe1416a3f.tar.gz
glibc-65a086db91d4e06074b461b8e99efcebe1416a3f.tar.xz
glibc-65a086db91d4e06074b461b8e99efcebe1416a3f.zip
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.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/include/argz.h b/include/argz.h
index 0388c23277..770f02eefb 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)