glibc/include/argz.h
Joseph Myers 055ac2a7ee 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.
2018-02-15 21:00:02 +00:00

47 lines
1.5 KiB
C

#ifndef _ARGZ_H
#include <string/argz.h>
# 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)
libc_hidden_proto (argz_next)
libc_hidden_proto (__argz_next)
# endif /* !_ISOMAC */
#endif