aboutsummaryrefslogtreecommitdiff
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 61c5b5f..9026d1e 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 0829e01..f4c1621 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 145f888..aedef2d 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 e390f81..a9cd440 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 032f4a7..c914e84 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 dcc9077..760bb1e 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 c369ab5..27bdb2d 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 3db5ab7..7c9776c 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 e5eabf9..807bb5c 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