diff --git a/ChangeLog b/ChangeLog index b84df57865..45c727f967 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,25 @@ +2000-04-01 Andreas Jaeger + + * sysdeps/mach/hurd/mips/init-first.c: Use SHARED instead of PIC. + + * sysdeps/unix/mips/sysdep.h: Use __PIC__ instead of PIC. + * sysdeps/mach/mips/thread_state.h: Likewise. + + * sysdeps/generic/fclrexcpt.c: Use shlib-compat macros. + * sysdeps/generic/fegetenv.c: Likewise. + * sysdeps/generic/fesetenv.c: Likewise. + * sysdeps/generic/feupdateenv.c: Likewise. + * sysdeps/generic/fraiseexcpt.c: Likewise. + * sysdeps/generic/fsetexcptflg.c: Likewise. + * sysdeps/unix/sysv/linux/alpha/glob.c: Likewise. + * sysdeps/unix/sysv/linux/arm/errlist.c: Likewise. + * sysdeps/unix/sysv/linux/errlist.c: Likewise. + * sysdeps/unix/sysv/linux/i386/chown.c: Likewise. + +2000-04-02 H.J. Lu + + * elf/ldconfig.h (FLAG_IA64_LIB64): New. Defined. + 2000-04-03 Ulrich Drepper * elf/dl-load.c (_dl_dst_substitute): Pretty print comment. diff --git a/elf/ldconfig.h b/elf/ldconfig.h index 3344876857..9e40714c05 100644 --- a/elf/ldconfig.h +++ b/elf/ldconfig.h @@ -28,6 +28,7 @@ #define FLAG_ELF_LIBC6 0x0003 #define FLAG_REQUIRED_MASK 0xff00 #define FLAG_SPARC_LIB64 0x0100 +#define FLAG_IA64_LIB64 0x0200 /* Declared in cache.c. */ extern void print_cache (const char *cache_name); diff --git a/linuxthreads/attr.c b/linuxthreads/attr.c index 992234aadf..966cea1203 100644 --- a/linuxthreads/attr.c +++ b/linuxthreads/attr.c @@ -51,7 +51,8 @@ int __pthread_attr_init_2_0(pthread_attr_t *attr) attr->__scope = PTHREAD_SCOPE_SYSTEM; return 0; } -symbol_version (__pthread_attr_init_2_0, pthread_attr_init, GLIBC_2.0); +compat_symbol (libpthread, __pthread_attr_init_2_0, pthread_attr_init, + GLIBC_2_0); #endif int pthread_attr_destroy(pthread_attr_t *attr) diff --git a/linuxthreads/oldsemaphore.c b/linuxthreads/oldsemaphore.c index c6f44cfce2..52957d9a27 100644 --- a/linuxthreads/oldsemaphore.c +++ b/linuxthreads/oldsemaphore.c @@ -226,11 +226,11 @@ static void sem_restart_list(pthread_descr waiting) } } -symbol_version (__old_sem_init, sem_init, GLIBC_2.0); -symbol_version (__old_sem_wait, sem_wait, GLIBC_2.0); -symbol_version (__old_sem_trywait, sem_trywait, GLIBC_2.0); -symbol_version (__old_sem_post, sem_post, GLIBC_2.0); -symbol_version (__old_sem_getvalue, sem_getvalue, GLIBC_2.0); -symbol_version (__old_sem_destroy, sem_destroy, GLIBC_2.0); +compat_symbol (libpthread, __old_sem_init, sem_init, GLIBC_2_0); +compat_symbol (libpthread, __old_sem_wait, sem_wait, GLIBC_2_0); +compat_symbol (libpthread, __old_sem_trywait, sem_trywait, GLIBC_2_0); +compat_symbol (libpthread, __old_sem_post, sem_post, GLIBC_2_0); +compat_symbol (libpthread, __old_sem_getvalue, sem_getvalue, GLIBC_2_0); +compat_symbol (libpthread, __old_sem_destroy, sem_destroy, GLIBC_2_0); #endif diff --git a/linuxthreads/pthread.c b/linuxthreads/pthread.c index f8df39db02..c0658cd3c2 100644 --- a/linuxthreads/pthread.c +++ b/linuxthreads/pthread.c @@ -541,7 +541,7 @@ int __pthread_create_2_0(pthread_t *thread, const pthread_attr_t *attr, } return __pthread_create_2_1 (thread, attr, start_routine, arg); } -symbol_version (__pthread_create_2_0, pthread_create, GLIBC_2.0); +compat_symbol (libpthread, __pthread_create_2_0, pthread_create, GLIBC_2_0); #endif /* Simple operations on thread identifiers */ diff --git a/linuxthreads/weaks.c b/linuxthreads/weaks.c index a91f5cfb02..f6705f1108 100644 --- a/linuxthreads/weaks.c +++ b/linuxthreads/weaks.c @@ -32,7 +32,8 @@ versioned_symbol (libpthread, __libc_pthread_attr_init_2_1, pthread_attr_init, GLIBC_2_1); #if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1) weak_alias (__pthread_return_0, __libc_pthread_attr_init_2_0) -symbol_version (__libc_pthread_attr_init_2_, pthread_attr_init, GLIBC_2.0); +compat_symbol (libpthread, __libc_pthread_attr_init_2_, pthread_attr_init, + GLIBC_2_0); #endif weak_alias (__pthread_return_0, pthread_attr_destroy) weak_alias (__pthread_return_0, pthread_attr_setdetachstate) diff --git a/sysdeps/generic/fclrexcpt.c b/sysdeps/generic/fclrexcpt.c index db5c566a00..b143168593 100644 --- a/sysdeps/generic/fclrexcpt.c +++ b/sysdeps/generic/fclrexcpt.c @@ -19,6 +19,7 @@ Boston, MA 02111-1307, USA. */ #include +#include int __feclearexcept (int excepts) @@ -26,9 +27,11 @@ __feclearexcept (int excepts) /* This always fails. */ return 1; } +#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2) strong_alias (__feclearexcept, __old_feclearexcept) -symbol_version (__old_feclearexcept, feclearexcept, GLIBC_2.1); -default_symbol_version (__feclearexcept, feclearexcept, GLIBC_2.2); +compat_symbol (libm, __old_feclearexcept, feclearexcept, GLIBC_2_1); +#endif +versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2); stub_warning (feclearexcept) #include diff --git a/sysdeps/generic/fegetenv.c b/sysdeps/generic/fegetenv.c index 3d0576339d..4b30754249 100644 --- a/sysdeps/generic/fegetenv.c +++ b/sysdeps/generic/fegetenv.c @@ -19,6 +19,7 @@ Boston, MA 02111-1307, USA. */ #include +#include int fegetenv (fenv_t *envp) @@ -26,9 +27,11 @@ fegetenv (fenv_t *envp) /* This always fails. */ return 1; } +#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2) strong_alias (__fegetenv, __old_fegetenv) -symbol_version (__old_fegetenv, fegetenv, GLIBC_2.1); -default_symbol_version (__fegetenv, fegetenv, GLIBC_2.2); +compat_symbol (libm, __old_fegetenv, fegetenv, GLIBC_2_1); +#endif +versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2); stub_warning (fegetenv) #include diff --git a/sysdeps/generic/fesetenv.c b/sysdeps/generic/fesetenv.c index a9bbb0a417..ce5916aa13 100644 --- a/sysdeps/generic/fesetenv.c +++ b/sysdeps/generic/fesetenv.c @@ -19,6 +19,7 @@ Boston, MA 02111-1307, USA. */ #include +#include int __fesetenv (const fenv_t *envp) @@ -26,9 +27,11 @@ __fesetenv (const fenv_t *envp) /* This always fails. */ return 1; } +#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2) strong_alias (__fesetenv, __old_fesetenv) -symbol_version (__old_fesetenv, fesetenv, GLIBC_2.1); -default_symbol_version (__fesetenv, fesetenv, GLIBC_2.2); +compat_symbol (libm, __old_fesetenv, fesetenv, GLIBC_2_1); +#endif +versioned_symbol (libm, __fesetenv, fesetenv, GLIBC_2_2); stub_warning (fesetenv) #include diff --git a/sysdeps/generic/feupdateenv.c b/sysdeps/generic/feupdateenv.c index 8589646a19..8537e2a1f7 100644 --- a/sysdeps/generic/feupdateenv.c +++ b/sysdeps/generic/feupdateenv.c @@ -19,6 +19,7 @@ Boston, MA 02111-1307, USA. */ #include +#include int __feupdateenv (const fenv_t *envp) @@ -26,9 +27,11 @@ __feupdateenv (const fenv_t *envp) /* This always fails. */ return 1; } +#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2) strong_alias (__feupdateenv, __old_feupdateenv) -symbol_version (__old_feupdateenv, feupdateenv, GLIBC_2.1); -default_symbol_version (__feupdateenv, feupdateenv, GLIBC_2.2); +compat_symbol (libm, __old_feupdateenv, feupdateenv, GLIBC_2_1); +#endif +versioned_symbol (libm, __feupdateenv, feupdateenv, GLIBC_2_2); stub_warning (feupdateenv) #include diff --git a/sysdeps/generic/fraiseexcpt.c b/sysdeps/generic/fraiseexcpt.c index f4836117f6..283206ee9c 100644 --- a/sysdeps/generic/fraiseexcpt.c +++ b/sysdeps/generic/fraiseexcpt.c @@ -19,6 +19,7 @@ Boston, MA 02111-1307, USA. */ #include +#include int __feraiseexcept (int excepts) @@ -26,9 +27,11 @@ __feraiseexcept (int excepts) /* This always fails. */ return 1; } +#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2) strong_alias (__feraiseexcept, __old_feraiseexcept) -symbol_version (__old_feraiseexcept, feraiseexcept, GLIBC_2.1); -default_symbol_version (__feraiseexcept, feraiseexcept, GLIBC_2.2); +compat_symbol (libm, __old_feraiseexcept, feraiseexcept, GLIBC_2_1); +#endif +versioned_symbol (libm, __feraiseexcept, feraiseexcept, GLIBC_2_2); stub_warning (feraiseexcept) #include diff --git a/sysdeps/generic/fsetexcptflg.c b/sysdeps/generic/fsetexcptflg.c index 1274301081..b2a98b3747 100644 --- a/sysdeps/generic/fsetexcptflg.c +++ b/sysdeps/generic/fsetexcptflg.c @@ -19,6 +19,7 @@ Boston, MA 02111-1307, USA. */ #include +#include int __fesetexceptflag (const fexcept_t *flagp, int excepts) @@ -26,9 +27,11 @@ __fesetexceptflag (const fexcept_t *flagp, int excepts) /* This always fails. */ return 1; } +#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2) strong_alias (__fesetexceptflag, __old_fesetexceptflag) -symbol_version (__old_fesetexceptflag, fesetexceptflag, GLIBC_2.1); -default_symbol_version (__fesetexceptflag, fesetexceptflag, GLIBC_2.2); +compat_symbol (libm, __old_fesetexceptflag, fesetexceptflag, GLIBC_2_1); +#endif +versioned_symbol (libm, __fesetexceptflag, fesetexceptflag, GLIBC_2_2); stub_warning (fesetexceptflag) #include diff --git a/sysdeps/mach/hurd/mips/init-first.c b/sysdeps/mach/hurd/mips/init-first.c index 825b063c62..72c7a61cb0 100644 --- a/sysdeps/mach/hurd/mips/init-first.c +++ b/sysdeps/mach/hurd/mips/init-first.c @@ -1,5 +1,5 @@ /* Initialization code run first thing by the ELF startup code. For Mips/Hurd. - Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 2000 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 @@ -109,7 +109,7 @@ init1 (int argc, char *arg0, ...) /* This is a hack to make the special getopt in GNU libc working. */ __getopt_clean_environment (envp); -#ifdef PIC +#ifdef SHARED __libc_global_ctors (); #endif @@ -175,7 +175,7 @@ __init (int *data) (void) &__init; } -#ifdef PIC +#ifdef SHARED /* This function is called to initialize the shared C library. It is called just before the user _start code from mips/elf/start.S, with the stack set up as that code gets it. */ @@ -274,7 +274,7 @@ void __libc_init_first (int argc, ...) } #endif -#ifndef PIC +#ifndef SHARED /* An assembler code wrapping c function __init. */ #ifdef __mips64 asm ("\ diff --git a/sysdeps/mach/mips/thread_state.h b/sysdeps/mach/mips/thread_state.h index 17334cf810..7aa5598f2b 100644 --- a/sysdeps/mach/mips/thread_state.h +++ b/sysdeps/mach/mips/thread_state.h @@ -1,5 +1,5 @@ /* Mach thread state definitions for machine-independent code. MIPS version. - Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 2000 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 @@ #define MACHINE_THREAD_STATE_FLAVOR MIPS_THREAD_STATE #define MACHINE_THREAD_STATE_COUNT MIPS_THREAD_STATE_COUNT -#ifdef PIC +#ifdef __PIC__ #define MACHINE_THREAD_STATE_SET_PC(ts, pc) \ ((ts)->PC = (ts)->r25 = (unsigned long int) (pc)) #endif diff --git a/sysdeps/unix/mips/sysdep.h b/sysdeps/unix/mips/sysdep.h index 256b0a78cd..2ba1dea897 100644 --- a/sysdeps/unix/mips/sysdep.h +++ b/sysdeps/unix/mips/sysdep.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 1995, 1997, 1999 Free Software Foundation, Inc. +/* Copyright (C) 1992,95,97,99,2000 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Brendan Kehoe (brendan@zen.org). @@ -32,7 +32,7 @@ /* Note that while it's better structurally, going back to call __syscall_error can make things confusing if you're debugging---it looks like it's jumping backwards into the previous fn. */ -#ifdef PIC +#ifdef __PIC__ #define PSEUDO(name, syscall_name, args) \ .align 2; \ 99: la t9,__syscall_error; \ diff --git a/sysdeps/unix/sysv/linux/alpha/glob.c b/sysdeps/unix/sysv/linux/alpha/glob.c index 0ce8d535be..10b10e4033 100644 --- a/sysdeps/unix/sysv/linux/alpha/glob.c +++ b/sysdeps/unix/sysv/linux/alpha/glob.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998 Free Software Foundation, Inc. +/* Copyright (C) 1998, 2000 Free Software Foundation, Inc. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as @@ -20,6 +20,7 @@ #include #include +#include /* For Linux/Alpha we have to make the glob symbols versioned. */ #define glob(pattern, flags, errfunc, pglob) \ @@ -40,8 +41,8 @@ extern void __new_globfree (glob_t *__pglob); #undef glob64 #undef globfree64 -default_symbol_version(__new_glob, glob, GLIBC_2.1); -default_symbol_version(__new_globfree, globfree, GLIBC_2.1); +versioned_symbol (libc, __new_glob, glob, GLIBC_2_1); +versioned_symbol (libc, __new_globfree, globfree, GLIBC_2_1); weak_alias (__new_glob, glob64) weak_alias (__new_globfree, globfree64) diff --git a/sysdeps/unix/sysv/linux/arm/errlist.c b/sysdeps/unix/sysv/linux/arm/errlist.c index c72ecd86fd..63bf8e916c 100644 --- a/sysdeps/unix/sysv/linux/arm/errlist.c +++ b/sysdeps/unix/sysv/linux/arm/errlist.c @@ -39,11 +39,11 @@ const int __old_sys_nerr = OLD_ERRLIST_SIZE; strong_alias (__old_sys_nerr, _old_sys_nerr); weak_alias (__old_sys_nerr, _old_sys_nerr) -symbol_version (__old_sys_nerr, _sys_nerr, GLIBC_2.0); -symbol_version (_old_sys_nerr, sys_nerr, GLIBC_2.0); +compat_symbol (libc, __old_sys_nerr, _sys_nerr, GLIBC_2_0); +compat_symbol (libc, _old_sys_nerr, sys_nerr, GLIBC_2_0); weak_alias (__old_sys_errlist, _old_sys_errlist); -symbol_version (__old_sys_errlist, _sys_errlist, GLIBC_2.0); -symbol_version (_old_sys_errlist, sys_errlist, GLIBC_2.0); +compat_symbol (libc, __old_sys_errlist, _sys_errlist, GLIBC_2_0); +compat_symbol (libc, _old_sys_errlist, sys_errlist, GLIBC_2_0); #endif strong_alias (__new_sys_nerr, _new_sys_nerr) diff --git a/sysdeps/unix/sysv/linux/errlist.c b/sysdeps/unix/sysv/linux/errlist.c index 4fbc2cab0b..d985f49394 100644 --- a/sysdeps/unix/sysv/linux/errlist.c +++ b/sysdeps/unix/sysv/linux/errlist.c @@ -39,11 +39,11 @@ const int __old_sys_nerr = OLD_ERRLIST_SIZE; strong_alias (__old_sys_nerr, _old_sys_nerr); weak_alias (__old_sys_nerr, _old_sys_nerr) -symbol_version (__old_sys_nerr, _sys_nerr, GLIBC_2.0); -symbol_version (_old_sys_nerr, sys_nerr, GLIBC_2.0); +compat_symbol (libc, __old_sys_nerr, _sys_nerr, GLIBC_2_0); +compat_symbol (libc, _old_sys_nerr, sys_nerr, GLIBC_2_0); weak_alias (__old_sys_errlist, _old_sys_errlist); -symbol_version (__old_sys_errlist, _sys_errlist, GLIBC_2.0); -symbol_version (_old_sys_errlist, sys_errlist, GLIBC_2.0); +compat_symbol (libc, __old_sys_errlist, _sys_errlist, GLIBC_2_0); +compat_symbol (libc, _old_sys_errlist, sys_errlist, GLIBC_2_0); #endif strong_alias (__new_sys_nerr, _new_sys_nerr) diff --git a/sysdeps/unix/sysv/linux/i386/chown.c b/sysdeps/unix/sysv/linux/i386/chown.c index 5adeefb0ab..1dce31495b 100644 --- a/sysdeps/unix/sysv/linux/i386/chown.c +++ b/sysdeps/unix/sysv/linux/i386/chown.c @@ -24,7 +24,7 @@ #include #include - +#include /* @@ -132,7 +132,7 @@ __chown_is_lchown (const char *file, uid_t owner, gid_t group) { return INLINE_SYSCALL (chown, 3, file, owner, group); } -#elif defined HAVE_ELF && defined SHARED && defined DO_VERSIONING +#elif SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1) /* Compiling for compatibiity. */ int __chown_is_lchown (const char *file, uid_t owner, gid_t group) @@ -141,20 +141,20 @@ __chown_is_lchown (const char *file, uid_t owner, gid_t group) } #endif -#if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING +#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1) strong_alias (__chown_is_lchown, _chown_is_lchown) -symbol_version (__chown_is_lchown, __chown, GLIBC_2.0); -symbol_version (_chown_is_lchown, chown, GLIBC_2.0); +compat_symbol (libc, __chown_is_lchown, __chown, GLIBC_2_0); +compat_symbol (libc, _chown_is_lchown, chown, GLIBC_2_0); # ifdef __NR_lchown strong_alias (__real_chown, _real_chown) -default_symbol_version (__real_chown, __chown, GLIBC_2.1); -default_symbol_version (_real_chown, chown, GLIBC_2.1); +versioned_symbol (libc, __real_chown, __chown, GLIBC_2_1); +versioned_symbol (libc, _real_chown, chown, GLIBC_2_1); # else strong_alias (__chown_is_lchown, __chown_is_lchown21) strong_alias (__chown_is_lchown, _chown_is_lchown21) -default_symbol_version (__chown_is_lchown21, __chown, GLIBC_2.1); -default_symbol_version (_chown_is_lchown21, chown, GLIBC_2.1); +versioned_symbol (libc, __chown_is_lchown21, __chown, GLIBC_2_1); +versioned_symbol (libc, _chown_is_lchown21, chown, GLIBC_2_1); # endif #else # ifdef __NR_lchown