]> sourceware.org Git - glibc.git/commitdiff
Mark internal argp functions with attribute_hidden [BZ #18822]
authorH.J. Lu <hjl.tools@gmail.com>
Sun, 1 Oct 2017 22:10:12 +0000 (15:10 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 1 Oct 2017 22:10:27 +0000 (15:10 -0700)
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.

ChangeLog
argp/argp-fmtstream.c
argp/argp-fs-xinl.c
argp/argp-help.c
argp/argp-parse.c
argp/argp-xinl.c
include/argp-fmtstream.h [new file with mode: 0644]
include/argp.h

index 15c90bcf8ddb9b2b62d0b4239dc5e2fee8ae6ef3..a877d9c9977894ac9247e105fe170083f0a397db 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>
 
        [BZ #18822]
index 9e41708cbd6defd5455793556633f740f1af1b0e..f12c2651967f500f1874e96e17df00731fa88ebd 100644 (file)
@@ -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
index f0ce5090404637c48c38573f88b904d4d5843bfa..8ebbb8eb1f227374c3bf407d64a181e9a52744de 100644 (file)
@@ -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.  */
index e704c5a3aac2d5c3d9304ae231de4bb2999a0f5b..821d98c3d6bc8bfe259fd1217f00b534a8366358 100644 (file)
@@ -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
index 662eed32ad5c37168505044976317b60eeab1263..691c4623acee273a7e9e9ec94794c0c71520697b 100644 (file)
@@ -62,7 +62,7 @@ char *alloca ();
 # define N_(msgid) (msgid)
 #endif
 
-#include "argp.h"
+#include <argp.h>
 #include "argp-namefrob.h"
 
 /* Getopt return values.  */
index 0b45bdc86b7e678a2af3f0564c4b3b1f192969d8..206d0e46c7d1c8c44d1b155a42c30db4689ceefa 100644 (file)
@@ -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 (file)
index 0000000..45c65ce
--- /dev/null
@@ -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
index 92be5f90f1ca2cec560f55a079120ef3cf475e99..6cf8782060fd5fe6e19d5d5c9ad7e53df272c9c6 100644 (file)
@@ -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
This page took 0.084467 seconds and 5 git commands to generate.