summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog19
-rw-r--r--csu/Makefile2
-rw-r--r--include/time.h1
-rw-r--r--include/wchar.h1
-rw-r--r--libio/fileops.c1
-rw-r--r--libio/libioP.h1
-rw-r--r--malloc/mtrace.c4
-rw-r--r--string/string-inlines.c13
-rw-r--r--time/strftime.c2
9 files changed, 40 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 61c5b5fbd1..9026d1ef93 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+2002-12-31  Ulrich Drepper  <drepper@redhat.com>
+
+	* string/string-inlines.c: Define __memcpy_g and __strchr_g macros
+	to avoid using the exported symbols.  Define aliases with the
+	original names separately.
+
+	* include/time.h: Add libc_hidden_proto for __strftime_l.
+	* include/wchar.h: Add libc_hidden_proto for __wcsftime_l.
+	* time/strftime.c: Always use libc_hidden_def if _LIBC.
+
+	* libio/libioP.h: Add libc_hidden_proto for _IO_file_open.
+	* libio/fileops.c: Add libc_hidden_def for _IO_file_open.
+
+	* malloc/mtrace.c: Add libc_hidden_proto and libc_hidden_def for
+	tr_break.
+
+	* csu/Makefile (routines): Add dso_handle.
+	* csu/dso_handle.c: New file.
+
 2002-12-31  Roland McGrath  <roland@redhat.com>
 
 	* Makerules (compile.S, COMPILE.S): Remove -DASSEMBLER here.
diff --git a/csu/Makefile b/csu/Makefile
index 0829e01278..f4c162116a 100644
--- a/csu/Makefile
+++ b/csu/Makefile
@@ -27,7 +27,7 @@
 subdir := csu
 
 routines = init-first libc-start $(libc-init) sysdep version check_fds \
-	   libc-tls elf-init
+	   libc-tls elf-init dso_handle
 aux	 = errno
 elide-routines.os = libc-tls
 static-only-routines = elf-init
diff --git a/include/time.h b/include/time.h
index 145f888c43..aedef2dd67 100644
--- a/include/time.h
+++ b/include/time.h
@@ -5,6 +5,7 @@
 # include <time/time.h>
 
 extern __typeof (strftime_l) __strftime_l;
+libc_hidden_proto (__strftime_l)
 extern __typeof (strptime_l) __strptime_l;
 
 libc_hidden_proto (time)
diff --git a/include/wchar.h b/include/wchar.h
index e390f8104f..a9cd440eec 100644
--- a/include/wchar.h
+++ b/include/wchar.h
@@ -15,6 +15,7 @@ extern __typeof (wcstod_l) __wcstod_l;
 extern __typeof (wcstof_l) __wcstof_l;
 extern __typeof (wcstold_l) __wcstold_l;
 extern __typeof (wcsftime_l) __wcsftime_l;
+libc_hidden_proto (__wcsftime_l)
 
 
 libc_hidden_proto (__wcstof_internal)
diff --git a/libio/fileops.c b/libio/fileops.c
index 032f4a7269..c914e84ce0 100644
--- a/libio/fileops.c
+++ b/libio/fileops.c
@@ -248,6 +248,7 @@ _IO_file_open (fp, filename, posix_mode, prot, read_write, is32not64)
   INTUSE(_IO_link_in) ((struct _IO_FILE_plus *) fp);
   return fp;
 }
+libc_hidden_def (_IO_file_open)
 
 _IO_FILE *
 _IO_new_file_fopen (fp, filename, mode, is32not64)
diff --git a/libio/libioP.h b/libio/libioP.h
index dcc9077683..760bb1e702 100644
--- a/libio/libioP.h
+++ b/libio/libioP.h
@@ -542,6 +542,7 @@ extern void _IO_file_init __P ((struct _IO_FILE_plus *));
 extern _IO_FILE* _IO_file_attach __P ((_IO_FILE *, int));
 extern _IO_FILE* _IO_file_open __P ((_IO_FILE *, const char *, int, int,
 				     int, int));
+libc_hidden_proto (_IO_file_open)
 extern _IO_FILE* _IO_file_fopen __P ((_IO_FILE *, const char *, const char *,
 				      int));
 extern _IO_ssize_t _IO_file_write __P ((_IO_FILE *, const void *,
diff --git a/malloc/mtrace.c b/malloc/mtrace.c
index c369ab577c..27bdb2da31 100644
--- a/malloc/mtrace.c
+++ b/malloc/mtrace.c
@@ -77,11 +77,13 @@ static __ptr_t (*tr_old_realloc_hook) __P ((__ptr_t ptr,
    set "mallwatch" to the address of interest, then put a breakpoint on
    tr_break.  */
 
-void tr_break __P ((void));
+extern void tr_break __P ((void));
+libc_hidden_proto (tr_break)
 void
 tr_break ()
 {
 }
+libc_hidden_def (tr_break)
 
 static void tr_where __P ((const __ptr_t)) internal_function;
 static void
diff --git a/string/string-inlines.c b/string/string-inlines.c
index 3db5ab7d6c..7c9776c419 100644
--- a/string/string-inlines.c
+++ b/string/string-inlines.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999 Free Software Foundation, Inc.
+/* Copyright (C) 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
@@ -25,4 +25,15 @@
 #define _FORCE_INLINES
 #define __STRING_INLINE /* empty */
 
+/* This is to avoid PLT entries for the x86 version.  */
+#define __memcpy_g __memcpy_g_internal
+#define __strchr_g __strchr_g_internal
+
 #include <string.h>
+
+#ifdef __memcpy_c
+# undef __memcpy_g
+strong_alias (__memcpy_g_internal, __memcpy_g)
+# undef __strchr_g
+strong_alias (__strchr_g_internal, __strchr_g)
+#endif
diff --git a/time/strftime.c b/time/strftime.c
index e5eabf9d1c..807bb5c4a0 100644
--- a/time/strftime.c
+++ b/time/strftime.c
@@ -1419,7 +1419,7 @@ my_strftime (s, maxsize, format, tp ut_argument LOCALE_PARAM)
     *p = L_('\0');
   return i;
 }
-#if defined _LIBC && !defined USE_IN_EXTENDED_LOCALE_MODEL
+#ifdef _LIBC
 libc_hidden_def (my_strftime)
 #endif