Mark internal argp functions with attribute_hidden [BZ #18822]

Mark internal argp functions with attribute_hidden to allow direct
access to them within libc.so and libc.a without using GOT nor PLT.

	[BZ #18822]
	* argp/argp-fmtstream.c: Include <argp-fmtstream.h>.
	* argp/argp-fs-xinl.c: Likewise.
	* argp/argp-help.c: Include <argp.h> and <argp-fmtstream.h>.
	* argp/argp-parse.c: Include <argp.h>.
	* argp/argp-xinl.c: Likewise.
	* include/argp-fmtstream.h: New file.
	* include/argp.h (__argp_error): Add attribute_hidden.
	(__argp_failure): Likewise.
	(__argp_input): Likewise.
	(__argp_state_help): Likewise.
This commit is contained in:
H.J. Lu 2017-10-01 15:10:12 -07:00
parent c26dd7c600
commit 8345a76018
8 changed files with 49 additions and 6 deletions

View File

@ -1,3 +1,17 @@
2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
[BZ #18822]
* argp/argp-fmtstream.c: Include <argp-fmtstream.h>.
* argp/argp-fs-xinl.c: Likewise.
* argp/argp-help.c: Include <argp.h> and <argp-fmtstream.h>.
* argp/argp-parse.c: Include <argp.h>.
* argp/argp-xinl.c: Likewise.
* include/argp-fmtstream.h: New file.
* include/argp.h (__argp_error): Add attribute_hidden.
(__argp_failure): Likewise.
(__argp_input): Likewise.
(__argp_state_help): Likewise.
2017-10-01 H.J. Lu <hongjiu.lu@intel.com> 2017-10-01 H.J. Lu <hongjiu.lu@intel.com>
[BZ #18822] [BZ #18822]

View File

@ -30,7 +30,7 @@
#include <stdarg.h> #include <stdarg.h>
#include <ctype.h> #include <ctype.h>
#include "argp-fmtstream.h" #include <argp-fmtstream.h>
#include "argp-namefrob.h" #include "argp-namefrob.h"
#ifndef ARGP_FMTSTREAM_USE_LINEWRAP #ifndef ARGP_FMTSTREAM_USE_LINEWRAP

View File

@ -24,7 +24,7 @@
#define ARGP_FS_EI #define ARGP_FS_EI
#undef __OPTIMIZE__ #undef __OPTIMIZE__
#define __OPTIMIZE__ 1 #define __OPTIMIZE__ 1
#include "argp-fmtstream.h" #include <argp-fmtstream.h>
#if 0 #if 0
/* Not exported. */ /* Not exported. */

View File

@ -79,8 +79,8 @@ char *strerror (int errnum);
# endif # endif
#endif #endif
#include "argp.h" #include <argp.h>
#include "argp-fmtstream.h" #include <argp-fmtstream.h>
#include "argp-namefrob.h" #include "argp-namefrob.h"
#ifndef SIZE_MAX #ifndef SIZE_MAX

View File

@ -62,7 +62,7 @@ char *alloca ();
# define N_(msgid) (msgid) # define N_(msgid) (msgid)
#endif #endif
#include "argp.h" #include <argp.h>
#include "argp-namefrob.h" #include "argp-namefrob.h"
/* Getopt return values. */ /* Getopt return values. */

View File

@ -31,7 +31,7 @@
#define ARGP_EI #define ARGP_EI
#undef __OPTIMIZE__ #undef __OPTIMIZE__
#define __OPTIMIZE__ 1 #define __OPTIMIZE__ 1
#include "argp.h" #include <argp.h>
/* Add weak aliases. */ /* Add weak aliases. */
#if _LIBC - 0 && defined (weak_alias) #if _LIBC - 0 && defined (weak_alias)

19
include/argp-fmtstream.h Normal file
View File

@ -0,0 +1,19 @@
#ifndef _ARGP_FMTSTREAM_H
#include <argp/argp-fmtstream.h>
#ifndef _ISOMAC
extern __typeof (__argp_fmtstream_ensure) __argp_fmtstream_ensure
attribute_hidden;
extern __typeof (__argp_fmtstream_free) __argp_fmtstream_free
attribute_hidden;
extern __typeof (__argp_fmtstream_printf) __argp_fmtstream_printf
attribute_hidden;
extern __typeof (__argp_fmtstream_update) __argp_fmtstream_update
attribute_hidden;
extern __typeof (__argp_fmtstream_write) __argp_fmtstream_write
attribute_hidden;
extern __typeof (__argp_make_fmtstream) __argp_make_fmtstream
attribute_hidden;
#endif
#endif

View File

@ -1 +1,11 @@
#ifndef _ARGP_H
#include <argp/argp.h> #include <argp/argp.h>
#ifndef _ISOMAC
extern __typeof (__argp_error) __argp_error attribute_hidden;
extern __typeof (__argp_failure) __argp_failure attribute_hidden;
extern __typeof (__argp_input) __argp_input attribute_hidden;
extern __typeof (__argp_state_help) __argp_state_help attribute_hidden;
#endif
#endif