about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-03-13 02:17:12 +0000
committerUlrich Drepper <drepper@redhat.com>2002-03-13 02:17:12 +0000
commit100351c3e1a858d32177f004e39a91d9d9a004ef (patch)
tree8766e6e71a3e8e70a282d2e71e2b2aee183faedd
parentaa32f79837bb38f8cea9daa26fd5eb6091861442 (diff)
downloadglibc-100351c3e1a858d32177f004e39a91d9d9a004ef.tar.gz
glibc-100351c3e1a858d32177f004e39a91d9d9a004ef.tar.xz
glibc-100351c3e1a858d32177f004e39a91d9d9a004ef.zip
Update.
	* stdio-common/itowa-digits.c (_itowa_lower_digits): Define as hidden.
	(_itowa_upper_digits): Likewise.

	* libio/stdio.c (_IO_stdin, _IO_stdout, _IO_stderr): Define as hidden.
	* libio/libio.h [_LIBC] (_IO_stdin, _IO_stdout, _IO_stderr): Declare
	as hidden.

	* libio/libioP.h: Declare _IO_file_jumps_mmap, _IO_wfile_jumps,
	_IO_wfile_jumps_mmap, _IO_proc_jumps, _IO_old_proc_jumps,
	_IO_str_jumps, _IO_wstr_jumps, _IO_file_jumps_internal,
	_IO_wfile_jumps_internal, and _IO_list_all_internal as hidden.

	* gmon/gmon.c (__bb_head): Define as hidden.
	* gmon/bb_exit_func.c (__bb_head): Declare as hidden.

	* argp/argp-parse.c (_argp_hang): Define as static.

	* include/libc-symbols.h (_INTVARDEF): Adjust for visibility
	handling in latest compilers.

	* inet/in6_addr.c (in6addr_any): Use INTVARDEF not INTDEF to
	define alias.
	* libio/fileops.c (_IO_file_jumps): Likewise.
	* libio/stdfiles.c (_IO_list_all): Likewise.
	* libio/wfileops.c (_IO_wfile_jumps): Likewise.

	* malloc/malloc.h: Move __libc_malloc_initialized declaration to
	include/malloc.h.
	* include/malloc.h: Add __libc_malloc_initialized declaration
	here.  Mark variable hidden.
	* malloc/malloc.c: Include <malloc.h> not "malloc.h".

	* elf/dl-open.c (__libc_argc): Declare as hidden.
	(__libc_argv): Likewise.
	* sysdeps/generic/wordexp.c (__libc_argc): Declare as hidden.
	(__libc_argv): Likewise.
	* sysdeps/mach/hurd/i386/init-first.c: Define __libc_argc and
	__libc_argv as hidden.
	* sysdeps/mach/hurd/mips/init-first.c: Likewise.
	* sysdeps/mach/hurd/powerpc/init-first.c: Likewise.
	* sysdeps/unix/sysv/aix/init-first.c: Likewise.
	* sysdeps/unix/sysv/linux/init-first.c: Likewise.
-rw-r--r--ChangeLog43
-rw-r--r--argp/argp-parse.c10
-rw-r--r--elf/dl-open.c4
-rw-r--r--gmon/bb_exit_func.c5
-rw-r--r--gmon/gmon.c3
-rw-r--r--include/libc-symbols.h4
-rw-r--r--include/malloc.h10
-rw-r--r--inet/in6_addr.c2
-rw-r--r--libio/fileops.c2
-rw-r--r--libio/libio.h8
-rw-r--r--libio/libioP.h22
-rw-r--r--libio/stdfiles.c2
-rw-r--r--libio/stdio.c10
-rw-r--r--libio/wfileops.c2
-rw-r--r--malloc/malloc.c2
-rw-r--r--malloc/malloc.h10
-rw-r--r--stdio-common/itowa-digits.c6
-rw-r--r--sysdeps/generic/wordexp.c6
-rw-r--r--sysdeps/mach/hurd/i386/init-first.c4
-rw-r--r--sysdeps/mach/hurd/mips/init-first.c6
-rw-r--r--sysdeps/mach/hurd/powerpc/init-first.c6
-rw-r--r--sysdeps/unix/sysv/aix/init-first.c4
-rw-r--r--sysdeps/unix/sysv/linux/init-first.c4
23 files changed, 117 insertions, 58 deletions
diff --git a/ChangeLog b/ChangeLog
index 4893a8d65f..356138259b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,48 @@
 2002-03-12  Ulrich Drepper  <drepper@redhat.com>
 
+	* stdio-common/itowa-digits.c (_itowa_lower_digits): Define as hidden.
+	(_itowa_upper_digits): Likewise.
+
+	* libio/stdio.c (_IO_stdin, _IO_stdout, _IO_stderr): Define as hidden.
+	* libio/libio.h [_LIBC] (_IO_stdin, _IO_stdout, _IO_stderr): Declare
+	as hidden.
+
+	* libio/libioP.h: Declare _IO_file_jumps_mmap, _IO_wfile_jumps,
+	_IO_wfile_jumps_mmap, _IO_proc_jumps, _IO_old_proc_jumps,
+	_IO_str_jumps, _IO_wstr_jumps, _IO_file_jumps_internal,
+	_IO_wfile_jumps_internal, and _IO_list_all_internal as hidden.
+
+	* gmon/gmon.c (__bb_head): Define as hidden.
+	* gmon/bb_exit_func.c (__bb_head): Declare as hidden.
+
+	* argp/argp-parse.c (_argp_hang): Define as static.
+
+	* include/libc-symbols.h (_INTVARDEF): Adjust for visibility
+	handling in latest compilers.
+
+	* inet/in6_addr.c (in6addr_any): Use INTVARDEF not INTDEF to
+	define alias.
+	* libio/fileops.c (_IO_file_jumps): Likewise.
+	* libio/stdfiles.c (_IO_list_all): Likewise.
+	* libio/wfileops.c (_IO_wfile_jumps): Likewise.
+
+	* malloc/malloc.h: Move __libc_malloc_initialized declaration to
+	include/malloc.h.
+	* include/malloc.h: Add __libc_malloc_initialized declaration
+	here.  Mark variable hidden.
+	* malloc/malloc.c: Include <malloc.h> not "malloc.h".
+
+	* elf/dl-open.c (__libc_argc): Declare as hidden.
+	(__libc_argv): Likewise.
+	* sysdeps/generic/wordexp.c (__libc_argc): Declare as hidden.
+	(__libc_argv): Likewise.
+	* sysdeps/mach/hurd/i386/init-first.c: Define __libc_argc and
+	__libc_argv as hidden.
+	* sysdeps/mach/hurd/mips/init-first.c: Likewise.
+	* sysdeps/mach/hurd/powerpc/init-first.c: Likewise.
+	* sysdeps/unix/sysv/aix/init-first.c: Likewise.
+	* sysdeps/unix/sysv/linux/init-first.c: Likewise.
+
 	* include/stdlib.h (__libc_drand48_data): Declare as hidden.
 	* stdlib/drand48.c: Remove declaration of __libc_drand48_data here.
 	* stdlib/erand48.c: Likewise.
diff --git a/argp/argp-parse.c b/argp/argp-parse.c
index 02dbfac75d..5a5146fba3 100644
--- a/argp/argp-parse.c
+++ b/argp/argp-parse.c
@@ -1,5 +1,5 @@
 /* Hierarchial argument parsing, layered over getopt
-   Copyright (C) 1995, 96, 97, 98, 99, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1995-2000, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Miles Bader <miles@gnu.ai.mit.edu>.
 
@@ -81,7 +81,13 @@
 /* When argp is given the --HANG switch, _ARGP_HANG is set and argp will sleep
    for one second intervals, decrementing _ARGP_HANG until it's zero.  Thus
    you can force the program to continue by attaching a debugger and setting
-   it to 0 yourself.  */
+   it to 0 yourself.
+
+   XXX This variable used to be exported.  But there seems to be no
+   need, at least not inside libc.  */
+#ifdef _LIBC
+static
+#endif
 volatile int _argp_hang;
 
 #define OPT_PROGNAME	-2
diff --git a/elf/dl-open.c b/elf/dl-open.c
index 5710ffb40f..5a7198ff92 100644
--- a/elf/dl-open.c
+++ b/elf/dl-open.c
@@ -42,8 +42,8 @@ weak_extern (BP_SYM (_dl_sysdep_start))
 
 extern int __libc_multiple_libcs;	/* Defined in init-first.c.  */
 
-extern int __libc_argc;
-extern char **__libc_argv;
+extern int __libc_argc attribute_hidden;
+extern char **__libc_argv attribute_hidden;
 
 extern char **__environ;
 
diff --git a/gmon/bb_exit_func.c b/gmon/bb_exit_func.c
index ce61c75d6e..f0d1d8576c 100644
--- a/gmon/bb_exit_func.c
+++ b/gmon/bb_exit_func.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1997,1998,2000,2001,2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by David Mosberger (davidm@cs.arizona.edu).
 
@@ -31,6 +31,9 @@
 #define OUT_NAME	"gmon.out"
 
 
+extern struct __bb *__bb_head attribute_hidden;
+
+
 void
 __bb_exit_func (void)
 {
diff --git a/gmon/gmon.c b/gmon/gmon.c
index 3380932e7c..f0188a9d30 100644
--- a/gmon/gmon.c
+++ b/gmon/gmon.c
@@ -47,7 +47,8 @@
 # include <wchar.h>
 #endif
 
-struct __bb *__bb_head;	/*  Head of basic-block list or NULL. */
+/*  Head of basic-block list or NULL. */
+struct __bb *__bb_head attribute_hidden;
 
 struct gmonparam _gmonparam attribute_hidden = { GMON_PROF_OFF };
 
diff --git a/include/libc-symbols.h b/include/libc-symbols.h
index bc1c24033f..07badec802 100644
--- a/include/libc-symbols.h
+++ b/include/libc-symbols.h
@@ -363,8 +363,8 @@
 # define INTVARDEF(name) \
   _INTVARDEF(name, name##_internal)
 # define _INTVARDEF(name, aliasname) \
-  extern __typeof (name) aliasname __attribute__ ((visibility ("hidden"))); \
-  strong_alias (name, name##_internal)
+  extern __typeof (name) aliasname __attribute__ ((alias (#name), \
+						   visibility ("hidden")));
 # define INTDEF2(name, newname) strong_alias (name, newname##_internal)
 #else
 # define INTUSE(name) name
diff --git a/include/malloc.h b/include/malloc.h
index 448e0a8c6b..eb2afb9330 100644
--- a/include/malloc.h
+++ b/include/malloc.h
@@ -1 +1,11 @@
+#ifndef _MALLOC_H
 #include <malloc/malloc.h>
+
+
+/* In the GNU libc we rename the global variable
+   `__malloc_initialized' to `__libc_malloc_initialized'.  */
+#define __malloc_initialized __libc_malloc_initialized
+/* Nonzero if the malloc is already initialized.  */
+extern int __malloc_initialized attribute_hidden;
+
+#endif
diff --git a/inet/in6_addr.c b/inet/in6_addr.c
index 5f004fbf97..0035509f98 100644
--- a/inet/in6_addr.c
+++ b/inet/in6_addr.c
@@ -21,6 +21,6 @@
 
 const struct in6_addr in6addr_any =
 { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } };
-INTDEF(in6addr_any)
+INTVARDEF(in6addr_any)
 const struct in6_addr in6addr_loopback =
 { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } };
diff --git a/libio/fileops.c b/libio/fileops.c
index dd8960ef03..eaf590908a 100644
--- a/libio/fileops.c
+++ b/libio/fileops.c
@@ -1270,7 +1270,7 @@ struct _IO_jump_t _IO_file_jumps =
   JUMP_INIT(showmanyc, _IO_default_showmanyc),
   JUMP_INIT(imbue, _IO_default_imbue)
 };
-INTDEF(_IO_file_jumps)
+INTVARDEF(_IO_file_jumps)
 
 struct _IO_jump_t _IO_file_jumps_mmap =
 {
diff --git a/libio/libio.h b/libio/libio.h
index 1bd31894e8..c8231df3ab 100644
--- a/libio/libio.h
+++ b/libio/libio.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-1995, 1997-2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1991-1995, 1997-2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Per Bothner <bothner@cygnus.com>.
 
@@ -331,9 +331,9 @@ extern struct _IO_FILE_plus _IO_2_1_stderr_;
 #define _IO_stdout ((_IO_FILE*)(&_IO_2_1_stdout_))
 #define _IO_stderr ((_IO_FILE*)(&_IO_2_1_stderr_))
 #else
-extern _IO_FILE *_IO_stdin;
-extern _IO_FILE *_IO_stdout;
-extern _IO_FILE *_IO_stderr;
+extern _IO_FILE *_IO_stdin attribute_hidden;
+extern _IO_FILE *_IO_stdout attribute_hidden;
+extern _IO_FILE *_IO_stderr attribute_hidden;
 #endif
 
 
diff --git a/libio/libioP.h b/libio/libioP.h
index b40e9e69eb..f3a2d97e2a 100644
--- a/libio/libioP.h
+++ b/libio/libioP.h
@@ -426,15 +426,15 @@ extern int _IO_default_showmanyc __P ((_IO_FILE *));
 extern void _IO_default_imbue __P ((_IO_FILE *, void *));
 
 extern struct _IO_jump_t _IO_file_jumps;
-extern struct _IO_jump_t _IO_file_jumps_mmap;
-extern struct _IO_jump_t _IO_wfile_jumps;
-extern struct _IO_jump_t _IO_wfile_jumps_mmap;
-extern struct _IO_jump_t _IO_old_file_jumps;
+extern struct _IO_jump_t _IO_file_jumps_mmap attribute_hidden;
+extern struct _IO_jump_t _IO_wfile_jumps attribute_hidden;
+extern struct _IO_jump_t _IO_wfile_jumps_mmap attribute_hidden;
+extern struct _IO_jump_t _IO_old_file_jumps attribute_hidden;
 extern struct _IO_jump_t _IO_streambuf_jumps;
-extern struct _IO_jump_t _IO_proc_jumps;
-extern struct _IO_jump_t _IO_old_proc_jumps;
-extern struct _IO_jump_t _IO_str_jumps;
-extern struct _IO_jump_t _IO_wstr_jumps;
+extern struct _IO_jump_t _IO_proc_jumps attribute_hidden;
+extern struct _IO_jump_t _IO_old_proc_jumps attribute_hidden;
+extern struct _IO_jump_t _IO_str_jumps attribute_hidden;
+extern struct _IO_jump_t _IO_wstr_jumps attribute_hidden;
 extern struct _IO_codecvt __libio_codecvt;
 extern int _IO_do_write __P ((_IO_FILE *, const char *, _IO_size_t));
 extern int _IO_new_do_write __P ((_IO_FILE *, const char *, _IO_size_t));
@@ -683,10 +683,10 @@ extern _IO_off64_t _IO_str_seekoff_internal __P ((_IO_FILE *, _IO_off64_t,
 extern void _IO_str_init_static_internal __P ((struct _IO_strfile_ *, char *,
 					       int, char *));
 
-extern struct _IO_jump_t _IO_file_jumps_internal;
-extern struct _IO_jump_t _IO_wfile_jumps_internal;
+extern struct _IO_jump_t _IO_file_jumps_internal attribute_hidden;
+extern struct _IO_jump_t _IO_wfile_jumps_internal attribute_hidden;
 
-extern struct _IO_FILE_plus *_IO_list_all_internal;
+extern struct _IO_FILE_plus *_IO_list_all_internal attribute_hidden;
 
 extern void _IO_link_in_internal __P ((struct _IO_FILE_plus *));
 extern int _IO_sputbackc_internal __P ((_IO_FILE *, int));
diff --git a/libio/stdfiles.c b/libio/stdfiles.c
index dd4be04207..cbc1407900 100644
--- a/libio/stdfiles.c
+++ b/libio/stdfiles.c
@@ -71,4 +71,4 @@ DEF_STDFILE(_IO_2_1_stdout_, 1, &_IO_2_1_stdin_, _IO_NO_READS);
 DEF_STDFILE(_IO_2_1_stderr_, 2, &_IO_2_1_stdout_, _IO_NO_READS+_IO_UNBUFFERED);
 
 struct _IO_FILE_plus *_IO_list_all = &_IO_2_1_stderr_;
-INTDEF(_IO_list_all)
+INTVARDEF(_IO_list_all)
diff --git a/libio/stdio.c b/libio/stdio.c
index 9a594963e5..64a8ab2d57 100644
--- a/libio/stdio.c
+++ b/libio/stdio.c
@@ -39,7 +39,11 @@ _IO_FILE *stderr = (FILE *) &_IO_2_1_stderr_;
 #undef _IO_stdout
 #undef _IO_stderr
 #ifdef _LIBC
-strong_alias (stdin, _IO_stdin);
-strong_alias (stdout, _IO_stdout);
-strong_alias (stderr, _IO_stderr);
+# define AL(name) AL2 (name, _IO_##name)
+# define AL2(name, al) \
+  extern __typeof (name) al __attribute__ ((alias (#name),		      \
+					    visibility ("hidden")))
+AL(stdin);
+AL(stdout);
+AL(stderr);
 #endif
diff --git a/libio/wfileops.c b/libio/wfileops.c
index d0259b097e..504c799010 100644
--- a/libio/wfileops.c
+++ b/libio/wfileops.c
@@ -862,7 +862,7 @@ struct _IO_jump_t _IO_wfile_jumps =
   JUMP_INIT(showmanyc, _IO_default_showmanyc),
   JUMP_INIT(imbue, _IO_default_imbue)
 };
-INTDEF(_IO_wfile_jumps)
+INTVARDEF(_IO_wfile_jumps)
 
 
 struct _IO_jump_t _IO_wfile_jumps_mmap =
diff --git a/malloc/malloc.c b/malloc/malloc.c
index b1ab6e9f7e..7414c705a9 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -1401,7 +1401,7 @@ void     public_mSTATs();
 };  /* end of extern "C" */
 #endif
 
-#include "malloc.h"
+#include <malloc.h>
 #include "thread-m.h"
 
 #ifndef BOUNDED_N
diff --git a/malloc/malloc.h b/malloc/malloc.h
index aaa95b3a2c..5ddd780958 100644
--- a/malloc/malloc.h
+++ b/malloc/malloc.h
@@ -1,5 +1,5 @@
 /* Prototypes and definition for malloc implementation.
-   Copyright (C) 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -106,14 +106,6 @@
 extern "C" {
 #endif
 
-/* Nonzero if the malloc is already initialized.  */
-#ifdef _LIBC
-/* In the GNU libc we rename the global variable
-   `__malloc_initialized' to `__libc_malloc_initialized'.  */
-# define __malloc_initialized __libc_malloc_initialized
-#endif
-extern int __malloc_initialized;
-
 /* Allocate SIZE bytes of memory.  */
 extern __malloc_ptr_t malloc __MALLOC_P ((size_t __size)) __attribute_malloc__;
 
diff --git a/stdio-common/itowa-digits.c b/stdio-common/itowa-digits.c
index c6c88e0e97..ce5b9c3b92 100644
--- a/stdio-common/itowa-digits.c
+++ b/stdio-common/itowa-digits.c
@@ -1,5 +1,5 @@
 /* Digits.
-   Copyright (C) 1994, 1995, 1996, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1994, 1995, 1996, 1999, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -20,8 +20,8 @@
 #include <wchar.h>
 
 /* Lower-case digits.  */
-const wchar_t _itowa_lower_digits[36]
+const wchar_t _itowa_lower_digits[36] attribute_hidden
 	= L"0123456789abcdefghijklmnopqrstuvwxyz";
 /* Upper-case digits.  */
-const wchar_t _itowa_upper_digits[36]
+const wchar_t _itowa_upper_digits[36] attribute_hidden
 	= L"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
diff --git a/sysdeps/generic/wordexp.c b/sysdeps/generic/wordexp.c
index 75a1d26c91..e3e31451c1 100644
--- a/sysdeps/generic/wordexp.c
+++ b/sysdeps/generic/wordexp.c
@@ -1,5 +1,5 @@
 /* POSIX.2 wordexp implementation.
-   Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1997,1998,1999,2000,2001,2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Tim Waugh <tim@cyberelk.demon.co.uk>.
 
@@ -56,8 +56,8 @@
  */
 
 /* These variables are defined and initialized in the startup code.  */
-extern int __libc_argc;
-extern char **__libc_argv;
+extern int __libc_argc attribute_hidden;
+extern char **__libc_argv attribute_hidden;
 
 /* Some forward declarations */
 static int parse_dollars (char **word, size_t *word_length, size_t *max_length,
diff --git a/sysdeps/mach/hurd/i386/init-first.c b/sysdeps/mach/hurd/i386/init-first.c
index ad32b30af0..56db837842 100644
--- a/sysdeps/mach/hurd/i386/init-first.c
+++ b/sysdeps/mach/hurd/i386/init-first.c
@@ -47,8 +47,8 @@ int __libc_enable_secure;
 #endif
 int __libc_multiple_libcs = 1;
 
-extern int __libc_argc;
-extern char **__libc_argv;
+extern int __libc_argc attribute_hidden;
+extern char **__libc_argv attribute_hidden;
 extern char **_dl_argv;
 
 void *(*_cthread_init_routine) (void); /* Returns new SP to use.  */
diff --git a/sysdeps/mach/hurd/mips/init-first.c b/sysdeps/mach/hurd/mips/init-first.c
index 07b8e9e38c..dbcad4b481 100644
--- a/sysdeps/mach/hurd/mips/init-first.c
+++ b/sysdeps/mach/hurd/mips/init-first.c
@@ -31,7 +31,7 @@ extern void __init_misc (int, char **, char **);
 #ifdef USE_NONOPTION_FLAGS
 extern void __getopt_clean_environment (char **);
 #endif
-#ifndef SHARED 
+#ifndef SHARED
 extern void _dl_non_dynamic_init (void) internal_function;
 #endif
 extern void __libc_global_ctors (void);
@@ -42,8 +42,8 @@ unsigned long int __hurd_threadvar_stack_mask;
 
 int __libc_multiple_libcs = 1;
 
-int __libc_argc;
-char **__libc_argv;
+int __libc_argc attribute_hidden;
+char **__libc_argv attribute_hidden;
 
 void *(*_cthread_init_routine) (void); /* Returns new SP to use.  */
 void (*_cthread_exit_routine) (int status) __attribute__ ((__noreturn__));
diff --git a/sysdeps/mach/hurd/powerpc/init-first.c b/sysdeps/mach/hurd/powerpc/init-first.c
index 18e824a487..80aa61524e 100644
--- a/sysdeps/mach/hurd/powerpc/init-first.c
+++ b/sysdeps/mach/hurd/powerpc/init-first.c
@@ -33,7 +33,7 @@ extern void __init_misc (int, char **, char **);
 #ifdef USE_NONOPTION_FLAGS
 extern void __getopt_clean_environment (char **);
 #endif
-#ifndef SHARED 
+#ifndef SHARED
 extern void _dl_non_dynamic_init (void) internal_function;
 #endif
 extern void __libc_global_ctors (void);
@@ -47,8 +47,8 @@ int __libc_enable_secure;
 #endif
 int __libc_multiple_libcs = 1;
 
-extern int __libc_argc;
-extern char **__libc_argv;
+extern int __libc_argc attribute_hidden;
+extern char **__libc_argv attribute_hidden;
 extern char **_dl_argv;
 
 void *(*_cthread_init_routine) (void); /* Returns new SP to use.  */
diff --git a/sysdeps/unix/sysv/aix/init-first.c b/sysdeps/unix/sysv/aix/init-first.c
index 2a60a927fc..7b4773b633 100644
--- a/sysdeps/unix/sysv/aix/init-first.c
+++ b/sysdeps/unix/sysv/aix/init-first.c
@@ -46,8 +46,8 @@ int __libc_multiple_libcs = 1;
 
 /* Remember the command line argument and enviroment contents for
    later calls of initializers for dynamic libraries.  */
-int __libc_argc;
-char **__libc_argv;
+int __libc_argc attribute_hidden;
+char **__libc_argv attribute_hidden;
 
 
 static void
diff --git a/sysdeps/unix/sysv/linux/init-first.c b/sysdeps/unix/sysv/linux/init-first.c
index 3a7f4ffba7..9dbf2062ab 100644
--- a/sysdeps/unix/sysv/linux/init-first.c
+++ b/sysdeps/unix/sysv/linux/init-first.c
@@ -45,8 +45,8 @@ int __libc_multiple_libcs = 1;
 
 /* Remember the command line argument and enviroment contents for
    later calls of initializers for dynamic libraries.  */
-int __libc_argc;
-char **__libc_argv;
+int __libc_argc attribute_hidden;
+char **__libc_argv attribute_hidden;
 
 
 static void