diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2017-10-01 15:10:12 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2017-10-01 15:10:27 -0700 |
commit | 8345a76018851ba52e05216e3d7c772e24d5da44 (patch) | |
tree | 721429a6743345f134c49961c3a0459560d16e08 | |
parent | c26dd7c600a2192d031efa2a0fb28b1ded85bf1d (diff) | |
download | glibc-8345a76018851ba52e05216e3d7c772e24d5da44.tar.gz glibc-8345a76018851ba52e05216e3d7c772e24d5da44.tar.xz glibc-8345a76018851ba52e05216e3d7c772e24d5da44.zip |
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.
-rw-r--r-- | ChangeLog | 14 | ||||
-rw-r--r-- | argp/argp-fmtstream.c | 2 | ||||
-rw-r--r-- | argp/argp-fs-xinl.c | 2 | ||||
-rw-r--r-- | argp/argp-help.c | 4 | ||||
-rw-r--r-- | argp/argp-parse.c | 2 | ||||
-rw-r--r-- | argp/argp-xinl.c | 2 | ||||
-rw-r--r-- | include/argp-fmtstream.h | 19 | ||||
-rw-r--r-- | include/argp.h | 10 |
8 files changed, 49 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog index 15c90bcf8d..a877d9c997 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,20 @@ 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> + + [BZ #18822] * include/wchar.h (____wcstof_l_internal): New prototype. (____wcstod_l_internal): Likewise. (____wcstold_l_internal): Likewise. diff --git a/argp/argp-fmtstream.c b/argp/argp-fmtstream.c index 9e41708cbd..f12c265196 100644 --- a/argp/argp-fmtstream.c +++ b/argp/argp-fmtstream.c @@ -30,7 +30,7 @@ #include <stdarg.h> #include <ctype.h> -#include "argp-fmtstream.h" +#include <argp-fmtstream.h> #include "argp-namefrob.h" #ifndef ARGP_FMTSTREAM_USE_LINEWRAP diff --git a/argp/argp-fs-xinl.c b/argp/argp-fs-xinl.c index f0ce509040..8ebbb8eb1f 100644 --- a/argp/argp-fs-xinl.c +++ b/argp/argp-fs-xinl.c @@ -24,7 +24,7 @@ #define ARGP_FS_EI #undef __OPTIMIZE__ #define __OPTIMIZE__ 1 -#include "argp-fmtstream.h" +#include <argp-fmtstream.h> #if 0 /* Not exported. */ diff --git a/argp/argp-help.c b/argp/argp-help.c index e704c5a3aa..821d98c3d6 100644 --- a/argp/argp-help.c +++ b/argp/argp-help.c @@ -79,8 +79,8 @@ char *strerror (int errnum); # endif #endif -#include "argp.h" -#include "argp-fmtstream.h" +#include <argp.h> +#include <argp-fmtstream.h> #include "argp-namefrob.h" #ifndef SIZE_MAX diff --git a/argp/argp-parse.c b/argp/argp-parse.c index 662eed32ad..691c4623ac 100644 --- a/argp/argp-parse.c +++ b/argp/argp-parse.c @@ -62,7 +62,7 @@ char *alloca (); # define N_(msgid) (msgid) #endif -#include "argp.h" +#include <argp.h> #include "argp-namefrob.h" /* Getopt return values. */ diff --git a/argp/argp-xinl.c b/argp/argp-xinl.c index 0b45bdc86b..206d0e46c7 100644 --- a/argp/argp-xinl.c +++ b/argp/argp-xinl.c @@ -31,7 +31,7 @@ #define ARGP_EI #undef __OPTIMIZE__ #define __OPTIMIZE__ 1 -#include "argp.h" +#include <argp.h> /* Add weak aliases. */ #if _LIBC - 0 && defined (weak_alias) diff --git a/include/argp-fmtstream.h b/include/argp-fmtstream.h new file mode 100644 index 0000000000..45c65ce834 --- /dev/null +++ b/include/argp-fmtstream.h @@ -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 diff --git a/include/argp.h b/include/argp.h index 92be5f90f1..6cf8782060 100644 --- a/include/argp.h +++ b/include/argp.h @@ -1 +1,11 @@ +#ifndef _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 |