summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog81
-rw-r--r--ctype/ctype-info.c38
-rw-r--r--include/locale.h2
-rw-r--r--include/time.h2
-rw-r--r--libio/fileops.c2
-rw-r--r--libio/iofwide.c4
-rw-r--r--libio/libioP.h2
-rw-r--r--locale/C-address.c4
-rw-r--r--locale/C-collate.c4
-rw-r--r--locale/C-ctype.c42
-rw-r--r--locale/C-identification.c4
-rw-r--r--locale/C-measurement.c4
-rw-r--r--locale/C-messages.c4
-rw-r--r--locale/C-monetary.c4
-rw-r--r--locale/C-name.c4
-rw-r--r--locale/C-numeric.c4
-rw-r--r--locale/C-paper.c4
-rw-r--r--locale/C-telephone.c4
-rw-r--r--locale/C-time.c4
-rw-r--r--locale/duplocale.c4
-rw-r--r--locale/findlocale.c4
-rw-r--r--locale/freelocale.c4
-rw-r--r--locale/lc-time.c4
-rw-r--r--locale/newlocale.c4
-rw-r--r--locale/setlocale.c8
-rw-r--r--locale/xlocale.c10
-rw-r--r--login/getutent_r.c4
-rw-r--r--login/getutid_r.c4
-rw-r--r--login/getutline_r.c4
-rw-r--r--login/utmp-private.h10
-rw-r--r--login/utmpname.c4
-rw-r--r--malloc/mtrace.c8
-rw-r--r--sysdeps/arm/init-first.c4
-rw-r--r--sysdeps/generic/init-first.c4
-rw-r--r--sysdeps/generic/sbrk.c5
-rw-r--r--sysdeps/i386/init-first.c4
-rw-r--r--sysdeps/mach/hurd/i386/init-first.c2
-rw-r--r--sysdeps/mach/hurd/mips/init-first.c2
-rw-r--r--sysdeps/mach/hurd/powerpc/init-first.c2
-rw-r--r--sysdeps/sh/init-first.c4
-rw-r--r--sysdeps/unix/bsd/getpt.c6
-rw-r--r--sysdeps/unix/sysv/aix/init-first.c2
-rw-r--r--sysdeps/unix/sysv/linux/init-first.c2
-rw-r--r--sysdeps/unix/sysv/linux/ptsname.c6
-rw-r--r--time/strptime.c3
45 files changed, 210 insertions, 125 deletions
diff --git a/ChangeLog b/ChangeLog
index 356138259b..b1596784ee 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,86 @@
 2002-03-12  Ulrich Drepper  <drepper@redhat.com>
 
+	* ctype/ctype-info.c: Declare _nl_C_LC_CTYPE_class,
+	_nl_C_LC_CTYPE_class32, _nl_C_LC_CTYPE_toupper, _nl_C_LC_CTYPE_tolower,
+	_nl_C_LC_CTYPE_class_upper, _nl_C_LC_CTYPE_class_lower,
+	_nl_C_LC_CTYPE_class_alpha, _nl_C_LC_CTYPE_class_digit,
+	_nl_C_LC_CTYPE_class_xdigit, _nl_C_LC_CTYPE_class_space,
+	_nl_C_LC_CTYPE_class_print, _nl_C_LC_CTYPE_class_graph,
+	_nl_C_LC_CTYPE_class_blank, _nl_C_LC_CTYPE_class_cntrl,
+	_nl_C_LC_CTYPE_class_punct, _nl_C_LC_CTYPE_class_alnum,
+	_nl_C_LC_CTYPE_map_toupper, _nl_C_LC_CTYPE_map_tolower, and
+	_nl_C_LC_CTYPE_width: Declare as hidden.
+	* include/locale.h: Declare _nl_locale_file_list.
+	* locale/C-address.c: Define _nl_C_LC_ADDRESS as hidden.
+	* locale/C-collate.c: Define _nl_C_LC_COLLATE as hidden.
+	* locale/C-identification.c: Define _nl_C_LC_IDENTIFICATION as hidden.
+	* locale/C-measurement.c: Define _nl_C_LC_MEASUREMENT as hidden.
+	* locale/C-messages.c: Define _nl_C_LC_MESSAGES as hidden.
+	* locale/C-monetary.c: Define _nl_C_LC_MONETARY as hidden.
+	* locale/C-name.c: Define _nl_C_LC_NAME as hidden.
+	* locale/C-numeric.c: Define _nl_C_LC_NUMERIC as hidden.
+	* locale/C-paper.c: Define _nl_C_LC_PAPER as hidden.
+	* locale/C-telephone.c: Define _nl_C_LC_TELEPHONE as hidden.
+	* locale/C-time.c: Define _nl_C_LC_TIME as hidden.
+	* locale/C-ctype.c: Define _nl_C_LC_CTYPE_class,
+	_nl_C_LC_CTYPE_class32, _nl_C_LC_CTYPE_toupper, _nl_C_LC_CTYPE_tolower,
+	_nl_C_LC_CTYPE_class_upper, _nl_C_LC_CTYPE_class_lower,
+	_nl_C_LC_CTYPE_class_alpha, _nl_C_LC_CTYPE_class_digit,
+	_nl_C_LC_CTYPE_class_xdigit, _nl_C_LC_CTYPE_class_space,
+	_nl_C_LC_CTYPE_class_print, _nl_C_LC_CTYPE_class_graph,
+	_nl_C_LC_CTYPE_class_blank, _nl_C_LC_CTYPE_class_cntrl,
+	_nl_C_LC_CTYPE_class_punct, _nl_C_LC_CTYPE_class_alnum,
+	_nl_C_LC_CTYPE_map_toupper, _nl_C_LC_CTYPE_map_tolower,
+	_nl_C_LC_CTYPE_width, and as hidden.
+	* locale/findlocale.c: Declare _nl_C as hidden.
+	* locale/newlocale.c: Likewise.
+	* locale/setlocale.c: Define _nl_C as hidden.  Remove declaration of
+	_nl_locale_file_list.
+	* locale/xlocale.c: Declare _nl_C_LC_CTYPE_class,
+	_nl_C_LC_CTYPE_toupper, and _nl_C_LC_CTYPE_tolower as hidden.
+	Define _nl_C_locobj as hidden.
+
+	* malloc/mtrace.c (_mtrace_file): Define as hidden.
+	(_mtrace_line): Likewise.
+
+	* include/time.h: Declare __mon_yday as hidden.
+	* time/strptime.c [_LIBC] (__mon_yday): Remove declaration.
+
+	* libio/libioP.h: Declare __libio_codecvt as hidden.
+	* libio/fileops.c: Declare __libio_translit as hidden.
+	* libio/iofwide.c: Define __libio_translit as hidden.
+
+	* login/getutent_r.c: Define __libc_utmp_lock as hidden.
+	* login/getutid_r.c: Declare __libc_utmp_lock as hidden.
+	* login/getutline_r.c: Likewise.
+	* login/utmpname.c: Likewise.
+
+	* login/utmp-private.h: Declare __libc_utmp_file_functions,
+	__libc_utmp_unknown_functions, __libc_utmp_jump_table, and
+	__libc_utmp_file_name as hidden.
+
+	* locale/setlocale.c (__libc_setlocale_lock): Define as hidden.
+	* locale/duplocale.c (__libc_setlocale_lock): Declare as hidden.
+	* locale/freelocale.c: Likewise.
+	* locale/lc-time.c: Likewise.
+
+	* sysdeps/unix/bsd/getpt.c (__libc_ptyname1): Define as hidden.
+	(__libc_ptyname2): Likewise.
+	* sysdeps/unix/sysv/linux/ptsname.c (__libc_ptyname1): Declare as
+	hidden.
+	(__libc_ptyname2): Likewise.
+
+	* sysdeps/generic/sbrk.c: Declare __libc_multiple_libcs as hidden.
+	* sysdeps/arm/init-first.c (__libc_multiple_libcs): Define as hidden.
+	* sysdeps/generic/init-first.c: Likewise.
+	* sysdeps/i386/init-first.c: Likewise.
+	* sysdeps/mach/hurd/i386/init-first.c: Likewise.
+	* sysdeps/mach/hurd/mips/init-first.c: Likewise.
+	* sysdeps/mach/hurd/powerpc/init-first.c: Likewise.
+	* sysdeps/sh/init-first.c: Likewise.
+	* sysdeps/unix/sysv/aix/init-first.c: Likewise.
+	* sysdeps/unix/sysv/linux/init-first.c: Likewise.
+
 	* stdio-common/itowa-digits.c (_itowa_lower_digits): Define as hidden.
 	(_itowa_upper_digits): Likewise.
 
diff --git a/ctype/ctype-info.c b/ctype/ctype-info.c
index 4ccded38ed..d29edb7171 100644
--- a/ctype/ctype-info.c
+++ b/ctype/ctype-info.c
@@ -20,25 +20,25 @@
 #include <locale/localeinfo.h>
 
 /* Defined in locale/C-ctype.c.  */
-extern const char _nl_C_LC_CTYPE_class[];
-extern const char _nl_C_LC_CTYPE_class32[];
-extern const char _nl_C_LC_CTYPE_toupper[];
-extern const char _nl_C_LC_CTYPE_tolower[];
-extern const char _nl_C_LC_CTYPE_class_upper[];
-extern const char _nl_C_LC_CTYPE_class_lower[];
-extern const char _nl_C_LC_CTYPE_class_alpha[];
-extern const char _nl_C_LC_CTYPE_class_digit[];
-extern const char _nl_C_LC_CTYPE_class_xdigit[];
-extern const char _nl_C_LC_CTYPE_class_space[];
-extern const char _nl_C_LC_CTYPE_class_print[];
-extern const char _nl_C_LC_CTYPE_class_graph[];
-extern const char _nl_C_LC_CTYPE_class_blank[];
-extern const char _nl_C_LC_CTYPE_class_cntrl[];
-extern const char _nl_C_LC_CTYPE_class_punct[];
-extern const char _nl_C_LC_CTYPE_class_alnum[];
-extern const char _nl_C_LC_CTYPE_map_toupper[];
-extern const char _nl_C_LC_CTYPE_map_tolower[];
-extern const char _nl_C_LC_CTYPE_width[];
+extern const char _nl_C_LC_CTYPE_class[] attribute_hidden;
+extern const char _nl_C_LC_CTYPE_class32[] attribute_hidden;
+extern const char _nl_C_LC_CTYPE_toupper[] attribute_hidden;
+extern const char _nl_C_LC_CTYPE_tolower[] attribute_hidden;
+extern const char _nl_C_LC_CTYPE_class_upper[] attribute_hidden;
+extern const char _nl_C_LC_CTYPE_class_lower[] attribute_hidden;
+extern const char _nl_C_LC_CTYPE_class_alpha[] attribute_hidden;
+extern const char _nl_C_LC_CTYPE_class_digit[] attribute_hidden;
+extern const char _nl_C_LC_CTYPE_class_xdigit[] attribute_hidden;
+extern const char _nl_C_LC_CTYPE_class_space[] attribute_hidden;
+extern const char _nl_C_LC_CTYPE_class_print[] attribute_hidden;
+extern const char _nl_C_LC_CTYPE_class_graph[] attribute_hidden;
+extern const char _nl_C_LC_CTYPE_class_blank[] attribute_hidden;
+extern const char _nl_C_LC_CTYPE_class_cntrl[] attribute_hidden;
+extern const char _nl_C_LC_CTYPE_class_punct[] attribute_hidden;
+extern const char _nl_C_LC_CTYPE_class_alnum[] attribute_hidden;
+extern const char _nl_C_LC_CTYPE_map_toupper[] attribute_hidden;
+extern const char _nl_C_LC_CTYPE_map_tolower[] attribute_hidden;
+extern const char _nl_C_LC_CTYPE_width[] attribute_hidden;
 
 #define b(t,x,o) (((const t *) _nl_C_LC_CTYPE_##x) + o)
 
diff --git a/include/locale.h b/include/locale.h
index 0877a48775..c821768754 100644
--- a/include/locale.h
+++ b/include/locale.h
@@ -4,6 +4,8 @@
 /* This has to be changed whenever a new locale is defined.  */
 #define __LC_LAST	13
 
+extern struct loaded_l10nfile *_nl_locale_file_list[] attribute_hidden;
+
 /* Locale object for C locale.  */
 extern struct __locale_struct _nl_C_locobj;
 
diff --git a/include/time.h b/include/time.h
index 48017c1c4e..0806e10a3a 100644
--- a/include/time.h
+++ b/include/time.h
@@ -8,7 +8,7 @@
 struct tm;
 
 /* Defined in mktime.c.  */
-extern const unsigned short int __mon_yday[2][13];
+extern const unsigned short int __mon_yday[2][13] attribute_hidden;
 
 /* Defined in localtime.c.  */
 extern struct tm _tmbuf attribute_hidden;
diff --git a/libio/fileops.c b/libio/fileops.c
index eaf590908a..a53f89fd75 100644
--- a/libio/fileops.c
+++ b/libio/fileops.c
@@ -80,7 +80,7 @@ extern int errno;
 
 
 #ifdef _LIBC
-extern struct __gconv_trans_data __libio_translit;
+extern struct __gconv_trans_data __libio_translit attribute_hidden;
 #endif
 
 
diff --git a/libio/iofwide.c b/libio/iofwide.c
index dba55f59da..225237ef66 100644
--- a/libio/iofwide.c
+++ b/libio/iofwide.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2001, 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
@@ -82,7 +82,7 @@ struct _IO_codecvt __libio_codecvt =
 
 
 #ifdef _LIBC
-struct __gconv_trans_data __libio_translit =
+struct __gconv_trans_data __libio_translit attribute_hidden =
 {
   .__trans_fct = __gconv_transliterate
 };
diff --git a/libio/libioP.h b/libio/libioP.h
index f3a2d97e2a..1679e1fffa 100644
--- a/libio/libioP.h
+++ b/libio/libioP.h
@@ -435,7 +435,7 @@ 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 struct _IO_codecvt __libio_codecvt attribute_hidden;
 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));
 extern int _IO_old_do_write __P ((_IO_FILE *, const char *, _IO_size_t));
diff --git a/locale/C-address.c b/locale/C-address.c
index eabb6fd4a4..12c9dde8d7 100644
--- a/locale/C-address.c
+++ b/locale/C-address.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
@@ -24,7 +24,7 @@
 /* This table's entries are taken from ISO 14652, the table in section
    4.10 "LC_ADDRESS".  */
 
-const struct locale_data _nl_C_LC_ADDRESS =
+const struct locale_data _nl_C_LC_ADDRESS attribute_hidden =
 {
   _nl_C_name,
   NULL, 0, 0, /* no file mapped */
diff --git a/locale/C-collate.c b/locale/C-collate.c
index ce2ea1a541..0f31b08d10 100644
--- a/locale/C-collate.c
+++ b/locale/C-collate.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995,1996,1997,1999,2000,2001 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1997,1999,2000,2001,2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1995.
 
@@ -98,7 +98,7 @@ static const uint32_t collseqwc[] =
   L'\xf8', L'\xf9', L'\xfa', L'\xfb', L'\xfc', L'\xfd', L'\xfe', L'\xff'
 };
 
-const struct locale_data _nl_C_LC_COLLATE =
+const struct locale_data _nl_C_LC_COLLATE attribute_hidden =
 {
   _nl_C_name,
   NULL, 0, 0, /* no file mapped */
diff --git a/locale/C-ctype.c b/locale/C-ctype.c
index 35479baf29..3dcd5fe121 100644
--- a/locale/C-ctype.c
+++ b/locale/C-ctype.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1995.
 
@@ -30,7 +30,7 @@
    In the `_nl_C_LC_CTYPE_class' array the value for EOF (== -1)
    is set to always return 0 and the conversion arrays return EOF.  */
 
-const char _nl_C_LC_CTYPE_class[768] =
+const char _nl_C_LC_CTYPE_class[768] attribute_hidden =
   /* 0x80 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   /* 0x86 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   /* 0x8c */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
@@ -96,7 +96,7 @@ const char _nl_C_LC_CTYPE_class[768] =
   /* 0xf4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
   /* 0xfa */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000"
 ;
-const char _nl_C_LC_CTYPE_class32[1024] =
+const char _nl_C_LC_CTYPE_class32[1024] attribute_hidden =
   /* 0x00 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
   /* 0x03 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
   /* 0x06 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000"
@@ -184,7 +184,7 @@ const char _nl_C_LC_CTYPE_class32[1024] =
   /* 0xfc */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000"
   /* 0xff */ "\000\000\000\000"
 ;
-const uint32_t _nl_C_LC_CTYPE_toupper[384] =
+const uint32_t _nl_C_LC_CTYPE_toupper[384] attribute_hidden =
 {
   /* 0x80 */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
   /* 0x88 */ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
@@ -235,7 +235,7 @@ const uint32_t _nl_C_LC_CTYPE_toupper[384] =
   /* 0xf0 */ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
   /* 0xf8 */ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff
 };
-const uint32_t _nl_C_LC_CTYPE_tolower[384] =
+const uint32_t _nl_C_LC_CTYPE_tolower[384] attribute_hidden =
 {
   /* 0x80 */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
   /* 0x88 */ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
@@ -297,7 +297,7 @@ const uint32_t _nl_C_LC_CTYPE_tolower[384] =
       uint32_t level3[1 << p];                                                \
     }
 
-const STRUCT_CTYPE_CLASS(1, 1) _nl_C_LC_CTYPE_class_upper =
+const STRUCT_CTYPE_CLASS(1, 1) _nl_C_LC_CTYPE_class_upper attribute_hidden =
 {
   { 0x00000000, 0x00000000, 0x07fffffe, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
@@ -310,7 +310,7 @@ const STRUCT_CTYPE_CLASS(1, 1) _nl_C_LC_CTYPE_class_upper =
   /* 3rd-level table */
   { 0x07fffffe, 0x00000000 }
 };
-const STRUCT_CTYPE_CLASS(1, 1) _nl_C_LC_CTYPE_class_lower =
+const STRUCT_CTYPE_CLASS(1, 1) _nl_C_LC_CTYPE_class_lower attribute_hidden =
 {
   { 0x00000000, 0x00000000, 0x00000000, 0x07fffffe,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
@@ -323,7 +323,7 @@ const STRUCT_CTYPE_CLASS(1, 1) _nl_C_LC_CTYPE_class_lower =
   /* 3rd-level table */
   { 0x00000000, 0x07fffffe }
 };
-const STRUCT_CTYPE_CLASS(1, 1) _nl_C_LC_CTYPE_class_alpha =
+const STRUCT_CTYPE_CLASS(1, 1) _nl_C_LC_CTYPE_class_alpha attribute_hidden =
 {
   { 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
@@ -336,7 +336,7 @@ const STRUCT_CTYPE_CLASS(1, 1) _nl_C_LC_CTYPE_class_alpha =
   /* 3rd-level table */
   { 0x07fffffe, 0x07fffffe }
 };
-const STRUCT_CTYPE_CLASS(1, 0) _nl_C_LC_CTYPE_class_digit =
+const STRUCT_CTYPE_CLASS(1, 0) _nl_C_LC_CTYPE_class_digit attribute_hidden =
 {
   { 0x00000000, 0x03ff0000, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
@@ -349,7 +349,7 @@ const STRUCT_CTYPE_CLASS(1, 0) _nl_C_LC_CTYPE_class_digit =
   /* 3rd-level table */
   { 0x00000000, 0x03ff0000 }
 };
-const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_xdigit =
+const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_xdigit attribute_hidden =
 {
   { 0x00000000, 0x03ff0000, 0x0000007e, 0x0000007e,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
@@ -362,7 +362,7 @@ const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_xdigit =
   /* 3rd-level table */
   { 0x00000000, 0x03ff0000, 0x0000007e, 0x0000007e }
 };
-const STRUCT_CTYPE_CLASS(1, 0) _nl_C_LC_CTYPE_class_space =
+const STRUCT_CTYPE_CLASS(1, 0) _nl_C_LC_CTYPE_class_space attribute_hidden =
 {
   { 0x00003e00, 0x00000001, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
@@ -375,7 +375,7 @@ const STRUCT_CTYPE_CLASS(1, 0) _nl_C_LC_CTYPE_class_space =
   /* 3rd-level table */
   { 0x00003e00, 0x00000001 }
 };
-const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_print =
+const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_print attribute_hidden =
 {
   { 0x00000000, 0xffffffff, 0xffffffff, 0x7fffffff,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
@@ -388,7 +388,7 @@ const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_print =
   /* 3rd-level table */
   { 0x00000000, 0xffffffff, 0xffffffff, 0x7fffffff }
 };
-const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_graph =
+const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_graph attribute_hidden =
 {
   { 0x00000000, 0xfffffffe, 0xffffffff, 0x7fffffff,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
@@ -401,7 +401,7 @@ const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_graph =
   /* 3rd-level table */
   { 0x00000000, 0xfffffffe, 0xffffffff, 0x7fffffff }
 };
-const STRUCT_CTYPE_CLASS(1, 0) _nl_C_LC_CTYPE_class_blank =
+const STRUCT_CTYPE_CLASS(1, 0) _nl_C_LC_CTYPE_class_blank attribute_hidden =
 {
   { 0x00000200, 0x00000001, 0x00000000, 0x00000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
@@ -414,7 +414,7 @@ const STRUCT_CTYPE_CLASS(1, 0) _nl_C_LC_CTYPE_class_blank =
   /* 3rd-level table */
   { 0x00000200, 0x00000001 }
 };
-const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_cntrl =
+const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_cntrl attribute_hidden =
 {
   { 0xffffffff, 0x00000000, 0x00000000, 0x80000000,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
@@ -427,7 +427,7 @@ const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_cntrl =
   /* 3rd-level table */
   { 0xffffffff, 0x00000000, 0x00000000, 0x80000000 }
 };
-const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_punct =
+const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_punct attribute_hidden =
 {
   { 0x00000000, 0xfc00fffe, 0xf8000001, 0x78000001,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
@@ -440,7 +440,7 @@ const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_punct =
   /* 3rd-level table */
   { 0x00000000, 0xfc00fffe, 0xf8000001, 0x78000001 }
 };
-const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_alnum =
+const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_alnum attribute_hidden =
 {
   { 0x00000000, 0x03ff0000, 0x07fffffe, 0x07fffffe,
     0x00000000, 0x00000000, 0x00000000, 0x00000000
@@ -461,7 +461,7 @@ const struct
   uint32_t level2[4];
   int32_t level3[32];
 }
-_nl_C_LC_CTYPE_map_toupper =
+_nl_C_LC_CTYPE_map_toupper attribute_hidden =
 {
   { 7, 1, 5, 3, 31 },
   /* 1st-level table */
@@ -480,7 +480,7 @@ _nl_C_LC_CTYPE_map_toupper =
     0x00000000, 0x00000000, 0x00000000, 0x00000000
   }
 },
-_nl_C_LC_CTYPE_map_tolower =
+_nl_C_LC_CTYPE_map_tolower attribute_hidden =
 {
   { 7, 1, 5, 3, 31 },
   /* 1st-level table */
@@ -507,7 +507,7 @@ const struct
   uint32_t level2[8];
   int8_t level3[33];
 }
-_nl_C_LC_CTYPE_width =
+_nl_C_LC_CTYPE_width attribute_hidden =
 {
   { 7, 1, 4, 7, 15 },
   /* 1st-level table */
@@ -538,7 +538,7 @@ _nl_C_LC_CTYPE_width =
    NR_FIXED == _NL_ITEM_INDEX (_NL_CTYPE_EXTRA_MAP_1). */
 typedef int assertion1[1 - 2 * (NR_FIXED != _NL_ITEM_INDEX (_NL_CTYPE_EXTRA_MAP_1))];
 
-const struct locale_data _nl_C_LC_CTYPE =
+const struct locale_data _nl_C_LC_CTYPE attribute_hidden =
 {
   _nl_C_name,
   NULL, 0, 0,	/* no file mapped */
diff --git a/locale/C-identification.c b/locale/C-identification.c
index 8af6858309..c2fd478289 100644
--- a/locale/C-identification.c
+++ b/locale/C-identification.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
@@ -24,7 +24,7 @@
 /* This table's entries are taken from ISO 14652, the table in section
    4.12 "LC_IDENTIFICATION".  */
 
-const struct locale_data _nl_C_LC_IDENTIFICATION =
+const struct locale_data _nl_C_LC_IDENTIFICATION attribute_hidden =
 {
   _nl_C_name,
   NULL, 0, 0, /* no file mapped */
diff --git a/locale/C-measurement.c b/locale/C-measurement.c
index e6473672c1..590432146f 100644
--- a/locale/C-measurement.c
+++ b/locale/C-measurement.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
@@ -24,7 +24,7 @@
 /* This table's entries are taken from ISO 14652, the table in section
    4.12 "LC_MEASUREMENT".  */
 
-const struct locale_data _nl_C_LC_MEASUREMENT =
+const struct locale_data _nl_C_LC_MEASUREMENT attribute_hidden =
 {
   _nl_C_name,
   NULL, 0, 0, /* no file mapped */
diff --git a/locale/C-messages.c b/locale/C-messages.c
index bcb5ae3763..a118398394 100644
--- a/locale/C-messages.c
+++ b/locale/C-messages.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995, 1996, 1997, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1997,2000,2001,2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
 
@@ -24,7 +24,7 @@
 
    The last two fields are a GNU extension.  */
 
-const struct locale_data _nl_C_LC_MESSAGES =
+const struct locale_data _nl_C_LC_MESSAGES attribute_hidden =
 {
   _nl_C_name,
   NULL, 0, 0, /* no file mapped */
diff --git a/locale/C-monetary.c b/locale/C-monetary.c
index ca5e13bdec..0c91145f5c 100644
--- a/locale/C-monetary.c
+++ b/locale/C-monetary.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1995.
 
@@ -28,7 +28,7 @@ static const char not_available[] = "\377";
 static const char not_available[] = "\177";
 #endif
 
-const struct locale_data _nl_C_LC_MONETARY =
+const struct locale_data _nl_C_LC_MONETARY attribute_hidden =
 {
   _nl_C_name,
   NULL, 0, 0, /* no file mapped */
diff --git a/locale/C-name.c b/locale/C-name.c
index 4286b82443..8526ec076f 100644
--- a/locale/C-name.c
+++ b/locale/C-name.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
@@ -24,7 +24,7 @@
 /* This table's entries are taken from ISO 14652, the table in section
    4.9 "LC_NAME".  */
 
-const struct locale_data _nl_C_LC_NAME =
+const struct locale_data _nl_C_LC_NAME attribute_hidden =
 {
   _nl_C_name,
   NULL, 0, 0, /* no file mapped */
diff --git a/locale/C-numeric.c b/locale/C-numeric.c
index d1c599b774..3c096c6479 100644
--- a/locale/C-numeric.c
+++ b/locale/C-numeric.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995, 1996, 1997, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1997,2000,2001,2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1995.
 
@@ -21,7 +21,7 @@
 
 /* This table's entries are taken from POSIX.2 Table 2-10
    ``LC_NUMERIC Category Definition in the POSIX Locale''.  */
-const struct locale_data _nl_C_LC_NUMERIC =
+const struct locale_data _nl_C_LC_NUMERIC attribute_hidden =
 {
   _nl_C_name,
   NULL, 0, 0, /* no file mapped */
diff --git a/locale/C-paper.c b/locale/C-paper.c
index a168084c26..fb3e619ad3 100644
--- a/locale/C-paper.c
+++ b/locale/C-paper.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
@@ -24,7 +24,7 @@
 /* This table's entries are taken from ISO 14652, the table in section
    4.8 "LC_PAPER".  */
 
-const struct locale_data _nl_C_LC_PAPER =
+const struct locale_data _nl_C_LC_PAPER attribute_hidden =
 {
   _nl_C_name,
   NULL, 0, 0, /* no file mapped */
diff --git a/locale/C-telephone.c b/locale/C-telephone.c
index d7c830ce13..795de3c1f3 100644
--- a/locale/C-telephone.c
+++ b/locale/C-telephone.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
@@ -24,7 +24,7 @@
 /* This table's entries are taken from ISO 14652, the table in section
    4.11 "LC_TELEPHONE".  */
 
-const struct locale_data _nl_C_LC_TELEPHONE =
+const struct locale_data _nl_C_LC_TELEPHONE attribute_hidden =
 {
   _nl_C_name,
   NULL, 0, 0, /* no file mapped */
diff --git a/locale/C-time.c b/locale/C-time.c
index f230da839b..9ce133a6ce 100644
--- a/locale/C-time.c
+++ b/locale/C-time.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>, 1995.
 
@@ -23,7 +23,7 @@
    ``LC_TIME Category Definition in the POSIX Locale'',
    with additions from ISO 14652, section 4.6.  */
 
-const struct locale_data _nl_C_LC_TIME =
+const struct locale_data _nl_C_LC_TIME attribute_hidden =
 {
   _nl_C_name,
   NULL, 0, 0, /* no file mapped */
diff --git a/locale/duplocale.c b/locale/duplocale.c
index 2fe23fc6ad..3fc46ba738 100644
--- a/locale/duplocale.c
+++ b/locale/duplocale.c
@@ -1,5 +1,5 @@
 /* Duplicate handle for selection of locales.
-   Copyright (C) 1997, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1997, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -26,7 +26,7 @@
 
 
 /* Lock for protecting global data.  */
-__libc_lock_define (extern , __libc_setlocale_lock)
+__libc_lock_define (extern , __libc_setlocale_lock attribute_hidden)
 
 
 __locale_t
diff --git a/locale/findlocale.c b/locale/findlocale.c
index 59b99925bf..976d7c06a3 100644
--- a/locale/findlocale.c
+++ b/locale/findlocale.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -31,7 +31,7 @@
 
 
 /* Constant data defined in setlocale.c.  */
-extern struct locale_data *const _nl_C[];
+extern struct locale_data *const _nl_C[] attribute_hidden;
 
 
 /* For each category we keep a list of records for the locale files
diff --git a/locale/freelocale.c b/locale/freelocale.c
index 83d07b962c..282d83853a 100644
--- a/locale/freelocale.c
+++ b/locale/freelocale.c
@@ -1,5 +1,5 @@
 /* Free data allocated by a call to setlocale_r
-   Copyright (C) 1996, 1997, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 2000, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -26,7 +26,7 @@
 
 
 /* Lock for protecting global data.  */
-__libc_lock_define (extern , __libc_setlocale_lock)
+__libc_lock_define (extern , __libc_setlocale_lock attribute_hidden)
 
 
 void
diff --git a/locale/lc-time.c b/locale/lc-time.c
index 203a49be1f..161a6a565d 100644
--- a/locale/lc-time.c
+++ b/locale/lc-time.c
@@ -1,5 +1,5 @@
 /* Define current locale data for LC_TIME category.
-   Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1995-2001, 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
@@ -28,7 +28,7 @@
 _NL_CURRENT_DEFINE (LC_TIME);
 
 /* Some of the functions here must not be used while setlocale is called.  */
-__libc_lock_define (extern, __libc_setlocale_lock)
+__libc_lock_define (extern, __libc_setlocale_lock attribute_hidden)
 
 
 static int era_initialized;
diff --git a/locale/newlocale.c b/locale/newlocale.c
index 4a785d0c0f..6306ba2a8a 100644
--- a/locale/newlocale.c
+++ b/locale/newlocale.c
@@ -1,5 +1,5 @@
 /* Return a reference to locale information record.
-   Copyright (C) 1996, 1997, 1999, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1996,1997,1999,2000,2001,2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -27,7 +27,7 @@
 
 
 /* Constant data defined in setlocale.c.  */
-extern struct locale_data *const _nl_C[];
+extern struct locale_data *const _nl_C[] attribute_hidden;
 
 /* Use this when we come along an error.  */
 #define ERROR_RETURN							      \
diff --git a/locale/setlocale.c b/locale/setlocale.c
index 3953322434..87573024d3 100644
--- a/locale/setlocale.c
+++ b/locale/setlocale.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 95-99, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 92, 95-99, 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
@@ -55,7 +55,7 @@ struct locale_data * *const _nl_current[] =
 
 /* Array indexed by category of pointers to _nl_C_CATEGORY slots.
    Elements are zero for categories whose data is never used.  */
-struct locale_data *const _nl_C[] =
+struct locale_data *const _nl_C[] attribute_hidden =
   {
 #define DEFINE_CATEGORY(category, category_name, items, a) \
     [category] = &_nl_C_##category,
@@ -118,7 +118,7 @@ static const char *_nl_current_names[] =
 
 
 /* Lock for protecting global data.  */
-__libc_lock_define_initialized (, __libc_setlocale_lock)
+__libc_lock_define_initialized (, __libc_setlocale_lock attribute_hidden)
 
 /* Defined in loadmsgcat.c.  */
 extern int _nl_msg_cat_cntr;
@@ -430,8 +430,6 @@ setlocale (int category, const char *locale)
     }
 }
 
-extern struct loaded_l10nfile *_nl_locale_file_list[];
-
 static void __attribute__ ((unused))
 free_mem (void)
 {
diff --git a/locale/xlocale.c b/locale/xlocale.c
index dd1dbbf508..79ec548473 100644
--- a/locale/xlocale.c
+++ b/locale/xlocale.c
@@ -1,5 +1,5 @@
 /* C locale object.
-   Copyright (C) 2001 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 2001.
 
@@ -27,12 +27,12 @@ extern struct locale_data _nl_C_##category;
 #undef	DEFINE_CATEGORY
 
 /* Defined in locale/C-ctype.c.  */
-extern const char _nl_C_LC_CTYPE_class[];
-extern const char _nl_C_LC_CTYPE_toupper[];
-extern const char _nl_C_LC_CTYPE_tolower[];
+extern const char _nl_C_LC_CTYPE_class[] attribute_hidden;
+extern const char _nl_C_LC_CTYPE_toupper[] attribute_hidden;
+extern const char _nl_C_LC_CTYPE_tolower[] attribute_hidden;
 
 
-struct __locale_struct _nl_C_locobj =
+struct __locale_struct _nl_C_locobj attribute_hidden =
   {
     .__locales =
     {
diff --git a/login/getutent_r.c b/login/getutent_r.c
index 38626c1c20..e96945e92c 100644
--- a/login/getutent_r.c
+++ b/login/getutent_r.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 Ulrich Drepper <drepper@cygnus.com>
    and Paul Janzen <pcj@primenet.com>, 1996.
@@ -51,7 +51,7 @@ struct utfuncs __libc_utmp_unknown_functions =
 struct utfuncs *__libc_utmp_jump_table = &__libc_utmp_unknown_functions;
 
 /* We need to protect the opening of the file.  */
-__libc_lock_define_initialized (, __libc_utmp_lock)
+__libc_lock_define_initialized (, __libc_utmp_lock attribute_hidden)
 
 
 static int
diff --git a/login/getutid_r.c b/login/getutid_r.c
index 144173a2e8..03b6d2d04b 100644
--- a/login/getutid_r.c
+++ b/login/getutid_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>
    and Paul Janzen <pcj@primenet.com>, 1996.
@@ -27,7 +27,7 @@
 
 
 /* We have to use the lock in getutent_r.c.  */
-__libc_lock_define (extern, __libc_utmp_lock)
+__libc_lock_define (extern, __libc_utmp_lock attribute_hidden)
 
 /* The jump table is also in getutent_r.c.  */
 extern struct utfuncs *__libc_utmp_jump_table;
diff --git a/login/getutline_r.c b/login/getutline_r.c
index 2e57b288b1..35c510b7ac 100644
--- a/login/getutline_r.c
+++ b/login/getutline_r.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>
    and Paul Janzen <pcj@primenet.com>, 1996.
@@ -26,7 +26,7 @@
 
 
 /* We have to use the lock in getutent_r.c.  */
-__libc_lock_define (extern, __libc_utmp_lock)
+__libc_lock_define (extern, __libc_utmp_lock attribute_hidden)
 
 /* The jump table is also in getutent_r.c.  */
 extern struct utfuncs *__libc_utmp_jump_table;
diff --git a/login/utmp-private.h b/login/utmp-private.h
index a74fae0efa..14b52b08c8 100644
--- a/login/utmp-private.h
+++ b/login/utmp-private.h
@@ -1,5 +1,5 @@
 /* Internal definitions and declarations for UTMP functions.
-   Copyright (C) 1996, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1996, 2000, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>
    and Paul Janzen <pcj@primenet.com>, 1996.
@@ -37,13 +37,13 @@ struct utfuncs
 };
 
 /* The tables from the services.  */
-extern struct utfuncs __libc_utmp_file_functions;
-extern struct utfuncs __libc_utmp_unknown_functions;
+extern struct utfuncs __libc_utmp_file_functions attribute_hidden;
+extern struct utfuncs __libc_utmp_unknown_functions attribute_hidden;
 
 /* Currently selected backend.  */
-extern struct utfuncs *__libc_utmp_jump_table;
+extern struct utfuncs *__libc_utmp_jump_table attribute_hidden;
 
 /* Current file name.  */
-extern const char *__libc_utmp_file_name;
+extern const char *__libc_utmp_file_name attribute_hidden;
 
 #endif /* utmp-private.h */
diff --git a/login/utmpname.c b/login/utmpname.c
index daa3c23b3b..875dbd5973 100644
--- a/login/utmpname.c
+++ b/login/utmpname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1997.
 
@@ -32,7 +32,7 @@ static const char default_file_name[] = _PATH_UTMP;
 const char *__libc_utmp_file_name = (const char *) default_file_name;
 
 /* We have to use the lock in getutent_r.c.  */
-__libc_lock_define (extern, __libc_utmp_lock)
+__libc_lock_define (extern, __libc_utmp_lock attribute_hidden)
 
 
 int
diff --git a/malloc/mtrace.c b/malloc/mtrace.c
index acee3c411b..5c82e1d1e4 100644
--- a/malloc/mtrace.c
+++ b/malloc/mtrace.c
@@ -44,6 +44,10 @@
 # define setvbuf(s, b, f, l) INTUSE(_IO_setvbuf) (s, b, f, l)
 #endif
 
+#ifndef attribute_hidden
+# define attribute_hidden
+#endif
+
 #define TRACE_BUFFER_SIZE 512
 
 static FILE *mallstream;
@@ -57,8 +61,8 @@ __ptr_t mallwatch;
 
 /* File name and line number information, for callers that had
    the foresight to call through a macro.  */
-char *_mtrace_file;
-int _mtrace_line;
+char *_mtrace_file attribute_hidden;
+int _mtrace_line attribute_hidden;
 
 /* Old hook values.  */
 static void (*tr_old_free_hook) __P ((__ptr_t ptr, const __ptr_t));
diff --git a/sysdeps/arm/init-first.c b/sysdeps/arm/init-first.c
index 6856314c83..652cf95d14 100644
--- a/sysdeps/arm/init-first.c
+++ b/sysdeps/arm/init-first.c
@@ -1,5 +1,5 @@
 /* Initialization code run first thing by the ELF startup code.  For ARM.
-   Copyright (C) 1995, 1996, 1997, 1998, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1995,1996,1997,1998,2001,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
@@ -25,7 +25,7 @@ extern void __getopt_clean_environment (char **);
 #endif
 extern void __libc_global_ctors (void);
 
-int __libc_multiple_libcs = 1;
+int __libc_multiple_libcs attribute_hidden = 1;
 
 static void
 init (int *data)
diff --git a/sysdeps/generic/init-first.c b/sysdeps/generic/init-first.c
index 5ae1e157f7..61e974fdf6 100644
--- a/sysdeps/generic/init-first.c
+++ b/sysdeps/generic/init-first.c
@@ -1,5 +1,5 @@
 /* Initialization code run first thing by the ELF startup code.  Stub version.
-   Copyright (C) 1995, 1997, 1998, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1997, 1998, 2001, 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,7 +20,7 @@
 #include <unistd.h>
 #include <sys/types.h>
 
-int __libc_multiple_libcs = 1;
+int __libc_multiple_libcs attribute_hidden = 1;
 
 extern void __libc_init (int, char **, char **);
 #ifdef USE_NONOPTION_FLAGS
diff --git a/sysdeps/generic/sbrk.c b/sysdeps/generic/sbrk.c
index 7e19f1df1a..3e9ad54333 100644
--- a/sysdeps/generic/sbrk.c
+++ b/sysdeps/generic/sbrk.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1995,1996,1997,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
@@ -23,7 +23,8 @@
 extern void *__curbrk;
 extern int __brk (void *addr);
 
-extern int __libc_multiple_libcs;	/* Defined in init-first.c.  */
+/* Defined in init-first.c.  */
+extern int __libc_multiple_libcs attribute_hidden;
 
 /* Extend the process's data space by INCREMENT.
    If INCREMENT is negative, shrink data space by - INCREMENT.
diff --git a/sysdeps/i386/init-first.c b/sysdeps/i386/init-first.c
index 16f5a7ccca..c6355a8b7b 100644
--- a/sysdeps/i386/init-first.c
+++ b/sysdeps/i386/init-first.c
@@ -1,5 +1,5 @@
 /* Initialization code run first thing by the ELF startup code.  For i386/Unix.
-   Copyright (C) 1995, 1996, 1997, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1995,1996,1997,2000,2001,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
@@ -25,7 +25,7 @@ extern void __getopt_clean_environment (char **);
 #endif
 extern void __libc_global_ctors (void);
 
-int __libc_multiple_libcs = 1;
+int __libc_multiple_libcs attribute_hidden = 1;
 
 static void
 init (int *data)
diff --git a/sysdeps/mach/hurd/i386/init-first.c b/sysdeps/mach/hurd/i386/init-first.c
index 56db837842..787a750045 100644
--- a/sysdeps/mach/hurd/i386/init-first.c
+++ b/sysdeps/mach/hurd/i386/init-first.c
@@ -45,7 +45,7 @@ unsigned long int __hurd_threadvar_stack_mask;
 #ifndef SHARED
 int __libc_enable_secure;
 #endif
-int __libc_multiple_libcs = 1;
+int __libc_multiple_libcs attribute_hidden = 1;
 
 extern int __libc_argc attribute_hidden;
 extern char **__libc_argv attribute_hidden;
diff --git a/sysdeps/mach/hurd/mips/init-first.c b/sysdeps/mach/hurd/mips/init-first.c
index dbcad4b481..5adba3be17 100644
--- a/sysdeps/mach/hurd/mips/init-first.c
+++ b/sysdeps/mach/hurd/mips/init-first.c
@@ -40,7 +40,7 @@ unsigned int __hurd_threadvar_max;
 unsigned long int __hurd_threadvar_stack_offset;
 unsigned long int __hurd_threadvar_stack_mask;
 
-int __libc_multiple_libcs = 1;
+int __libc_multiple_libcs attribute_hidden = 1;
 
 int __libc_argc attribute_hidden;
 char **__libc_argv attribute_hidden;
diff --git a/sysdeps/mach/hurd/powerpc/init-first.c b/sysdeps/mach/hurd/powerpc/init-first.c
index 80aa61524e..d683a79e30 100644
--- a/sysdeps/mach/hurd/powerpc/init-first.c
+++ b/sysdeps/mach/hurd/powerpc/init-first.c
@@ -45,7 +45,7 @@ unsigned long int __hurd_threadvar_stack_mask;
 #ifndef SHARED
 int __libc_enable_secure;
 #endif
-int __libc_multiple_libcs = 1;
+int __libc_multiple_libcs attribute_hidden = 1;
 
 extern int __libc_argc attribute_hidden;
 extern char **__libc_argv attribute_hidden;
diff --git a/sysdeps/sh/init-first.c b/sysdeps/sh/init-first.c
index 97f7352091..d816625ef4 100644
--- a/sysdeps/sh/init-first.c
+++ b/sysdeps/sh/init-first.c
@@ -1,5 +1,5 @@
 /* Initialization code run first thing by the ELF startup code.  For SH.
-   Copyright (C) 1995,1996,1997,1998,2000,2001 Free Software Foundation, Inc.
+   Copyright (C) 1995-1998, 2000, 2001, 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
@@ -25,7 +25,7 @@ extern void __getopt_clean_environment (char **);
 #endif
 extern void __libc_global_ctors (void);
 
-int __libc_multiple_libcs = 1;
+int __libc_multiple_libcs attribute_hidden = 1;
 
 static void
 init (int *data)
diff --git a/sysdeps/unix/bsd/getpt.c b/sysdeps/unix/bsd/getpt.c
index 10676811c3..f4a6b17f00 100644
--- a/sysdeps/unix/bsd/getpt.c
+++ b/sysdeps/unix/bsd/getpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 1998.
 
@@ -31,13 +31,13 @@
 #ifndef PTYNAME1
 #define PTYNAME1 "pqrsPQRS"
 #endif
-const char __libc_ptyname1[] = PTYNAME1;
+const char __libc_ptyname1[] attribute_hidden = PTYNAME1;
 
 /* Letters indicating the position within a series.  */
 #ifndef PTYNAME2
 #define PTYNAME2 "0123456789abcdefghijklmnopqrstuv";
 #endif
-const char __libc_ptyname2[] = PTYNAME2;
+const char __libc_ptyname2[] attribute_hidden = PTYNAME2;
 
 
 /* Open a master pseudo terminal and return its file descriptor.  */
diff --git a/sysdeps/unix/sysv/aix/init-first.c b/sysdeps/unix/sysv/aix/init-first.c
index 7b4773b633..4c6768b8ad 100644
--- a/sysdeps/unix/sysv/aix/init-first.c
+++ b/sysdeps/unix/sysv/aix/init-first.c
@@ -42,7 +42,7 @@ weak_extern (_dl_starting_up)
 
 /* Set nonzero if we have to be prepared for more then one libc being
    used in the process.  Safe assumption if initializer never runs.  */
-int __libc_multiple_libcs = 1;
+int __libc_multiple_libcs attribute_hidden = 1;
 
 /* Remember the command line argument and enviroment contents for
    later calls of initializers for dynamic libraries.  */
diff --git a/sysdeps/unix/sysv/linux/init-first.c b/sysdeps/unix/sysv/linux/init-first.c
index 9dbf2062ab..bc501c053d 100644
--- a/sysdeps/unix/sysv/linux/init-first.c
+++ b/sysdeps/unix/sysv/linux/init-first.c
@@ -41,7 +41,7 @@ weak_extern (_dl_starting_up)
 
 /* Set nonzero if we have to be prepared for more then one libc being
    used in the process.  Safe assumption if initializer never runs.  */
-int __libc_multiple_libcs = 1;
+int __libc_multiple_libcs attribute_hidden = 1;
 
 /* Remember the command line argument and enviroment contents for
    later calls of initializers for dynamic libraries.  */
diff --git a/sysdeps/unix/sysv/linux/ptsname.c b/sysdeps/unix/sysv/linux/ptsname.c
index ec578b3c95..084e573260 100644
--- a/sysdeps/unix/sysv/linux/ptsname.c
+++ b/sysdeps/unix/sysv/linux/ptsname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 1998.
 
@@ -50,8 +50,8 @@
 #define _PATH_DEVPTS "/dev/pts/"
 
 /* The are declared in getpt.c.  */
-extern const char __libc_ptyname1[];
-extern const char __libc_ptyname2[];
+extern const char __libc_ptyname1[] attribute_hidden;
+extern const char __libc_ptyname2[] attribute_hidden;
 
 /* Static buffer for `ptsname'.  */
 static char buffer[sizeof (_PATH_DEVPTS) + 20];
diff --git a/time/strptime.c b/time/strptime.c
index 1f440a5d2f..e84201ea7a 100644
--- a/time/strptime.c
+++ b/time/strptime.c
@@ -1,5 +1,5 @@
 /* Convert a string representation of time to a time value.
-   Copyright (C) 1996-2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1996-2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -134,7 +134,6 @@ localtime_r (t, tp)
 #ifdef _LIBC
 /* This is defined in locale/C-time.c in the GNU libc.  */
 extern const struct locale_data _nl_C_LC_TIME;
-extern const unsigned short int __mon_yday[2][13];
 
 # define weekday_name (&_nl_C_LC_TIME.values[_NL_ITEM_INDEX (DAY_1)].string)
 # define ab_weekday_name \