mirror of
git://sourceware.org/git/glibc.git
synced 2025-01-18 12:16:13 +08:00
Use shlib-compat macros.
This commit is contained in:
parent
7189e3b807
commit
0772663d31
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1998 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 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
|
||||
@ -16,6 +16,8 @@
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <shlib-compat.h>
|
||||
|
||||
struct timeval32
|
||||
{
|
||||
int tv_sec, tv_usec;
|
||||
@ -54,7 +56,7 @@ struct timex32 {
|
||||
#define TIMEX timex32
|
||||
#define ADJTIME __adjtime_tv32
|
||||
#define ADJTIMEX(x) __adjtimex_tv32 (x)
|
||||
#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
|
||||
#define LINKAGE
|
||||
#else
|
||||
#define LINKAGE static
|
||||
@ -65,8 +67,8 @@ extern int ADJTIMEX (struct TIMEX *);
|
||||
|
||||
#include <sysdeps/unix/sysv/linux/adjtime.c>
|
||||
|
||||
#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
|
||||
symbol_version (__adjtime_tv32, adjtime, GLIBC_2.0);
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
|
||||
compat_symbol (libc, __adjtime_tv32, adjtime, GLIBC_2.0);
|
||||
#endif
|
||||
|
||||
#undef TIMEVAL
|
||||
@ -117,11 +119,7 @@ __adjtime (itv, otv)
|
||||
return ret;
|
||||
}
|
||||
|
||||
#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
|
||||
default_symbol_version (__adjtime, adjtime, GLIBC_2.1);
|
||||
#else
|
||||
weak_alias (__adjtime, adjtime);
|
||||
#endif
|
||||
versioned_symbol (libc, __adjtime, adjtime, GLIBC_2_1);
|
||||
|
||||
extern int __syscall_adjtimex_tv64 (struct timex *tx);
|
||||
|
||||
@ -191,11 +189,6 @@ __adjtimex_tv64 (struct timex *tx)
|
||||
return ret;
|
||||
}
|
||||
|
||||
#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
|
||||
strong_alias (__adjtimex_tv64, __adjtimex_tv64p);
|
||||
default_symbol_version (__adjtimex_tv64, __adjtimex, GLIBC_2.1);
|
||||
default_symbol_version (__adjtimex_tv64p, adjtimex, GLIBC_2.1);
|
||||
#else
|
||||
weak_alias (__adjtimex_tv64, __adjtimex);
|
||||
weak_alias (__adjtimex_tv64, adjtimex);
|
||||
#endif
|
||||
versioned_symbol (libc, __adjtimex_tv64, __adjtimex, GLIBC_2_1);
|
||||
versioned_symbol (libc, __adjtimex_tv64p, adjtimex, GLIBC_2_1);
|
||||
|
@ -116,8 +116,6 @@ __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined PIC && DO_VERSIONING
|
||||
default_symbol_version (__new_msgctl, msgctl, GLIBC_2.2);
|
||||
#else
|
||||
weak_alias (__new_msgctl, msgctl);
|
||||
#endif
|
||||
#include <shlib-compat.h>
|
||||
versioned_symbol (libc, __new_msgctl, msgctl, GLIBC_2_2);
|
||||
|
||||
|
@ -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
|
||||
@ -19,8 +19,9 @@
|
||||
became necessary since the glob_t structure changed. */
|
||||
#include <sys/types.h>
|
||||
#include <glob.h>
|
||||
#include <shlib-compat.h>
|
||||
|
||||
#if defined PIC && DO_VERSIONING
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
|
||||
|
||||
/* This is the old structure. The difference is that the gl_pathc and
|
||||
gl_offs elements have type `int'. */
|
||||
@ -33,11 +34,11 @@ typedef struct
|
||||
|
||||
/* If the GLOB_ALTDIRFUNC flag is set, the following functions
|
||||
are used instead of the normal file access functions. */
|
||||
void (*gl_closedir) __P ((void *));
|
||||
struct dirent *(*gl_readdir) __P ((void *));
|
||||
__ptr_t (*gl_opendir) __P ((__const char *));
|
||||
int (*gl_lstat) __P ((__const char *, struct stat *));
|
||||
int (*gl_stat) __P ((__const char *, struct stat *));
|
||||
void (*gl_closedir) (void *);
|
||||
struct dirent *(*gl_readdir) (void *);
|
||||
__ptr_t (*gl_opendir) (__const char *);
|
||||
int (*gl_lstat) (__const char *, struct stat *);
|
||||
int (*gl_stat) (__const char *, struct stat *);
|
||||
} old_glob_t;
|
||||
|
||||
|
||||
@ -75,7 +76,7 @@ __old_glob (const char *pattern, int flags,
|
||||
|
||||
return result;
|
||||
}
|
||||
symbol_version(__old_glob, glob, GLIBC_2.0);
|
||||
compat_symbol (libc, __old_glob, glob, GLIBC_2_0);
|
||||
|
||||
|
||||
/* Free storage allocated in PGLOB by a previous `glob' call. */
|
||||
@ -90,6 +91,6 @@ __old_globfree (old_glob_t *pglob)
|
||||
|
||||
globfree (&correct);
|
||||
}
|
||||
symbol_version(__old_globfree, globfree, GLIBC_2.0);
|
||||
compat_symbol (libc, __old_globfree, globfree, GLIBC_2_0);
|
||||
|
||||
#endif
|
||||
|
@ -125,8 +125,5 @@ __new_semctl (int semid, int semnum, int cmd, ...)
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined PIC && DO_VERSIONING
|
||||
default_symbol_version (__new_semctl, semctl, GLIBC_2.2);
|
||||
#else
|
||||
weak_alias (__new_semctl, semctl);
|
||||
#endif
|
||||
#include <shlib-compat.h>
|
||||
versioned_symbol (libc, __new_semctl, semctl, GLIBC_2_2);
|
||||
|
@ -130,8 +130,5 @@ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined PIC && DO_VERSIONING
|
||||
default_symbol_version (__new_shmctl, shmctl, GLIBC_2.2);
|
||||
#else
|
||||
weak_alias (__new_shmctl, shmctl);
|
||||
#endif
|
||||
#include <shlib-compat.h>
|
||||
versioned_symbol (libc, __new_shmctl, shmctl, GLIBC_2_2);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1998 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 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
|
||||
@ -18,18 +18,18 @@
|
||||
|
||||
#include <sizes.h>
|
||||
#include <errlist.h>
|
||||
#include <shlib-compat.h>
|
||||
|
||||
#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
|
||||
|
||||
# define SYS_ERRLIST __new_sys_errlist
|
||||
# define SYS_NERR __new_sys_nerr
|
||||
#define SYS_ERRLIST __new_sys_errlist
|
||||
#define SYS_NERR __new_sys_nerr
|
||||
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
|
||||
asm (".data; .globl __old_sys_errlist; __old_sys_errlist:");
|
||||
#endif
|
||||
|
||||
#include <sysdeps/gnu/errlist.c>
|
||||
|
||||
#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
|
||||
asm (".type __old_sys_errlist,%object;.size __old_sys_errlist,"
|
||||
OLD_ERRLIST_SIZE_STR "*" PTR_SIZE_STR);
|
||||
|
||||
@ -44,12 +44,11 @@ symbol_version (_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);
|
||||
|
||||
weak_alias (__new_sys_nerr, _new_sys_nerr)
|
||||
default_symbol_version (__new_sys_nerr, _sys_nerr, GLIBC_2.1);
|
||||
default_symbol_version (_new_sys_nerr, sys_nerr, GLIBC_2.1);
|
||||
weak_alias (__new_sys_errlist, _new_sys_errlist)
|
||||
default_symbol_version (__new_sys_errlist, _sys_errlist, GLIBC_2.1);
|
||||
default_symbol_version (_new_sys_errlist, sys_errlist, GLIBC_2.1);
|
||||
|
||||
#endif
|
||||
|
||||
strong_alias (__new_sys_nerr, _new_sys_nerr)
|
||||
versioned_symbol (libc, __new_sys_nerr, _sys_nerr, GLIBC_2_1);
|
||||
versioned_symbol (libc, _new_sys_nerr, sys_nerr, GLIBC_2_1);
|
||||
strong_alias (__new_sys_errlist, _new_sys_errlist)
|
||||
versioned_symbol (libc, __new_sys_errlist, _sys_errlist, GLIBC_2_1);
|
||||
versioned_symbol (libc, _new_sys_errlist, sys_errlist, GLIBC_2_1);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 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
|
||||
@ -20,41 +20,34 @@
|
||||
#include <signal.h>
|
||||
#include <sizes.h>
|
||||
#include <libintl.h>
|
||||
#include <shlib-compat.h>
|
||||
|
||||
#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
|
||||
# define SYS_SIGLIST __new_sys_siglist
|
||||
# define SYS_SIGABBREV __new_sys_sigabbrev
|
||||
#else
|
||||
# define SYS_SIGLIST _sys_siglist
|
||||
# define SYS_SIGABBREV _sys_sigabbrev
|
||||
#endif
|
||||
|
||||
#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
|
||||
asm (".data; .globl __old_sys_siglist; __old_sys_siglist:");
|
||||
#endif
|
||||
|
||||
const char *const SYS_SIGLIST[NSIG] =
|
||||
const char *const __new_sys_siglist[NSIG] =
|
||||
{
|
||||
#define init_sig(sig, abbrev, desc) [sig] desc,
|
||||
#include "siglist.h"
|
||||
#undef init_sig
|
||||
};
|
||||
|
||||
#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
|
||||
asm (".type __old_sys_siglist,%object;.size __old_sys_siglist,"
|
||||
OLD_SIGLIST_SIZE_STR "*" PTR_SIZE_STR);
|
||||
|
||||
asm (".data; .globl __old_sys_sigabbrev; __old_sys_sigabbrev:");
|
||||
#endif
|
||||
|
||||
const char *const SYS_SIGABBREV[NSIG] =
|
||||
const char *const __new_sys_sigabbrev[NSIG] =
|
||||
{
|
||||
#define init_sig(sig, abbrev, desc) [sig] abbrev,
|
||||
#include "siglist.h"
|
||||
#undef init_sig
|
||||
};
|
||||
|
||||
#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
|
||||
asm (".type __old_sys_sigabbrev,%object;.size __old_sys_sigabbrev,"
|
||||
OLD_SIGLIST_SIZE_STR "*" PTR_SIZE_STR);
|
||||
|
||||
@ -62,15 +55,12 @@ extern const char *const *__old_sys_siglist;
|
||||
extern const char *const *__old_sys_sigabbrev;
|
||||
|
||||
strong_alias (__old_sys_siglist, _old_sys_siglist)
|
||||
symbol_version (__old_sys_siglist, _sys_siglist, GLIBC_2.0);
|
||||
symbol_version (_old_sys_siglist, sys_siglist, GLIBC_2.0);
|
||||
symbol_version (__old_sys_sigabbrev, sys_sigabbrev, GLIBC_2.0);
|
||||
compat_symbol (libc, __old_sys_siglist, _sys_siglist, GLIBC_2_0);
|
||||
compat_symbol (libc, _old_sys_siglist, sys_siglist, GLIBC_2_0);
|
||||
compat_symbol (libc, __old_sys_sigabbrev, sys_sigabbrev, GLIBC_2_0);
|
||||
#endif
|
||||
|
||||
strong_alias (__new_sys_siglist, _new_sys_siglist)
|
||||
default_symbol_version (__new_sys_siglist, _sys_siglist, GLIBC_2.1);
|
||||
default_symbol_version (_new_sys_siglist, sys_siglist, GLIBC_2.1);
|
||||
default_symbol_version (__new_sys_sigabbrev, sys_sigabbrev, GLIBC_2.1);
|
||||
#else
|
||||
weak_alias (_sys_siglist, sys_siglist)
|
||||
weak_alias (_sys_sigabbrev, sys_sigabbrev)
|
||||
#endif
|
||||
versioned_symbol (libc, __new_sys_siglist, _sys_siglist, GLIBC_2_1);
|
||||
versioned_symbol (libc, _new_sys_siglist, sys_siglist, GLIBC_2_1);
|
||||
versioned_symbol (libc, __new_sys_sigabbrev, sys_sigabbrev, GLIBC_2_1);
|
||||
|
Loading…
Reference in New Issue
Block a user