mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-09 23:00:07 +00:00
Update.
2000-03-29 Jes Sorensen <jes@pcatls01.cern.ch> * malloc/malloc.c: Declare bit flags UL so that they will not default to int size when being inverted. 2000-03-29 Andreas Jaeger <aj@suse.de> * sysdeps/unix/sysv/linux/arm/errlist.c: Use shlib-compat macros. * sysdeps/unix/sysv/linux/arm/siglist.c: Likewise. 2000-03-29 Andreas Jaeger <aj@suse.de>, Ralf Baechle <ralf@uni-koblenz.de> * Makeconfig: Introduce new variable SHARED to mark code used in the shared library. * elf/dl-close.c: Use it instead of PIC. * elf/dl-load.c: Likewise. * elf/dl-open.c: Likewise. * hurd/geteuids.c: Likewise. * include/libc-symbols.h: Likewise. * include/shlib-compat.h: Likewise. * libio/freopen.c: Likewise. * linuxthreads/cancel.c: Likewise. * linuxthreads/pthread.c: Likewise. * linuxthreads/wrapsyscall.c: Likewise. * nss/nsswitch.c: Likewise. * stdio-common/vfprintf.c: Likewise. * sysdeps/arm/init-first.c: Likewise. * sysdeps/i386/init-first.c: Likewise * sysdeps/generic/init-first.c: Likewise. * sysdeps/generic/libc-start.c: Likewise. * sysdeps/mips/init-first.c: Likewise. * sysdeps/powerpc/elf/libc-start.c: Likewise. * sysdeps/unix/sysv/linux/init-first.c: Likewise. * sysdeps/unix/sysv/linux/arm/siglist.c: Likewise. * sysdeps/unix/sysv/linux/arm/errlist.c: Likewise. * sysdeps/unix/sysv/linux/i386/chown.c: Likewise. * sysdeps/mips/machine-gmon.h (asm): Use __PIC__ as check.
This commit is contained in:
parent
b86120ed68
commit
b5567b2af6
40
ChangeLog
40
ChangeLog
@ -1,3 +1,43 @@
|
||||
2000-03-29 Jes Sorensen <jes@pcatls01.cern.ch>
|
||||
|
||||
* malloc/malloc.c: Declare bit flags UL so that they will not
|
||||
default to int size when being inverted.
|
||||
|
||||
2000-03-29 Andreas Jaeger <aj@suse.de>
|
||||
|
||||
* sysdeps/unix/sysv/linux/arm/errlist.c: Use shlib-compat macros.
|
||||
* sysdeps/unix/sysv/linux/arm/siglist.c: Likewise.
|
||||
|
||||
2000-03-29 Andreas Jaeger <aj@suse.de>,
|
||||
Ralf Baechle <ralf@uni-koblenz.de>
|
||||
|
||||
* Makeconfig: Introduce new variable SHARED to mark code used in
|
||||
the shared library.
|
||||
* elf/dl-close.c: Use it instead of PIC.
|
||||
* elf/dl-load.c: Likewise.
|
||||
* elf/dl-open.c: Likewise.
|
||||
* hurd/geteuids.c: Likewise.
|
||||
* include/libc-symbols.h: Likewise.
|
||||
* include/shlib-compat.h: Likewise.
|
||||
* libio/freopen.c: Likewise.
|
||||
* linuxthreads/cancel.c: Likewise.
|
||||
* linuxthreads/pthread.c: Likewise.
|
||||
* linuxthreads/wrapsyscall.c: Likewise.
|
||||
* nss/nsswitch.c: Likewise.
|
||||
* stdio-common/vfprintf.c: Likewise.
|
||||
* sysdeps/arm/init-first.c: Likewise.
|
||||
* sysdeps/i386/init-first.c: Likewise
|
||||
* sysdeps/generic/init-first.c: Likewise.
|
||||
* sysdeps/generic/libc-start.c: Likewise.
|
||||
* sysdeps/mips/init-first.c: Likewise.
|
||||
* sysdeps/powerpc/elf/libc-start.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/init-first.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/arm/siglist.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/arm/errlist.c: Likewise.
|
||||
* sysdeps/unix/sysv/linux/i386/chown.c: Likewise.
|
||||
|
||||
* sysdeps/mips/machine-gmon.h (asm): Use __PIC__ as check.
|
||||
|
||||
2000-03-29 Andreas Jaeger <aj@suse.de>
|
||||
|
||||
* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_runtime_setup):
|
||||
|
@ -604,7 +604,7 @@ ifeq (yes,$(build-shared))
|
||||
# Under --enable-shared, we will build a shared library of PIC objects.
|
||||
# The PIC object files are named foo.os.
|
||||
object-suffixes += .os
|
||||
CPPFLAGS-.os = -DPIC
|
||||
CPPFLAGS-.os = -DPIC -DSHARED
|
||||
CFLAGS-.os = $(filter %frame-pointer,$(+cflags)) $(pic-ccflag)
|
||||
libtype.os := lib%_pic.a
|
||||
# This can be changed by a sysdep makefile
|
||||
|
@ -145,7 +145,7 @@ _dl_close (void *_map)
|
||||
imap->l_map_end - imap->l_map_start);
|
||||
|
||||
/* Finally, unlink the data structure and free it. */
|
||||
#ifdef PIC
|
||||
#ifdef SHARED
|
||||
/* We will unlink the first object only if this is a statically
|
||||
linked program. */
|
||||
assert (imap->l_prev != NULL);
|
||||
|
@ -516,7 +516,7 @@ _dl_init_paths (const char *llp)
|
||||
const char *strp;
|
||||
struct r_search_path_elem *pelem, **aelem;
|
||||
size_t round_size;
|
||||
#ifdef PIC
|
||||
#ifdef SHARED
|
||||
struct link_map *l;
|
||||
#endif
|
||||
|
||||
@ -579,7 +579,7 @@ _dl_init_paths (const char *llp)
|
||||
max_dirnamelen = SYSTEM_DIRS_MAX_LEN;
|
||||
*aelem = NULL;
|
||||
|
||||
#ifdef PIC
|
||||
#ifdef SHARED
|
||||
/* This points to the map of the main object. */
|
||||
l = _dl_loaded;
|
||||
if (l != NULL)
|
||||
@ -613,7 +613,7 @@ _dl_init_paths (const char *llp)
|
||||
l->l_rpath_dirs = NULL;
|
||||
}
|
||||
}
|
||||
#endif /* PIC */
|
||||
#endif /* SHARED */
|
||||
|
||||
if (llp != NULL && *llp != '\0')
|
||||
{
|
||||
|
@ -166,7 +166,7 @@ dl_open_worker (void *a)
|
||||
{
|
||||
if (! l->l_relocated)
|
||||
{
|
||||
#ifdef PIC
|
||||
#ifdef SHARED
|
||||
if (_dl_profile != NULL)
|
||||
{
|
||||
/* If this here is the shared object which we want to profile
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1993, 94, 96, 97, 98 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1993, 94, 96, 97, 98, 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
|
||||
@ -64,6 +64,6 @@ geteuids (int n, uid_t *uidset)
|
||||
|
||||
/* XXX Remove this alias when we bump the libc soname. */
|
||||
|
||||
#if defined PIC && DO_VERSIONING
|
||||
#if defined SHARED && DO_VERSIONING
|
||||
weak_alias (geteuids, __getuids)
|
||||
#endif
|
||||
|
@ -214,7 +214,7 @@
|
||||
|
||||
/* These are all done the same way in ELF.
|
||||
There is a new section created for each set. */
|
||||
# ifdef PIC
|
||||
# ifdef SHARED
|
||||
/* When building a shared library, make the set section writable,
|
||||
because it will need to be relocated at run time anyway. */
|
||||
# define _elf_set_element(set, symbol) \
|
||||
|
@ -26,7 +26,7 @@
|
||||
#include <abi-versions.h> /* header generated by abi-versions.awk */
|
||||
#endif
|
||||
|
||||
#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
|
||||
#if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING
|
||||
|
||||
/* The file abi-versions.h (generated by scripts/abi-versions.awk) defines
|
||||
symbols like `ABI_libm_GLIBC_2_0' for each version set in the source
|
||||
|
@ -26,7 +26,7 @@
|
||||
#include "libioP.h"
|
||||
#include "stdio.h"
|
||||
|
||||
#ifdef PIC
|
||||
#ifdef SHARED
|
||||
extern void *_IO_stdin_used;
|
||||
weak_extern (_IO_stdin_used);
|
||||
#endif
|
||||
|
@ -162,7 +162,7 @@ void __pthread_perform_cleanup(void)
|
||||
c->__routine(c->__arg);
|
||||
}
|
||||
|
||||
#ifndef PIC
|
||||
#ifndef SHARED
|
||||
/* We need a hook to force the cancelation wrappers to be linked in when
|
||||
static libpthread is used. */
|
||||
extern const int __pthread_provide_wrappers;
|
||||
|
@ -871,7 +871,7 @@ void __pthread_message(char * fmt, ...)
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef PIC
|
||||
#ifndef SHARED
|
||||
/* We need a hook to force the cancelation wrappers to be linked in when
|
||||
static libpthread is used. */
|
||||
extern const int __pthread_provide_wrappers;
|
||||
|
@ -31,7 +31,7 @@
|
||||
#include <sys/socket.h>
|
||||
|
||||
|
||||
#ifndef PIC
|
||||
#ifndef SHARED
|
||||
/* We need a hook to force this file to be linked in when static
|
||||
libpthread is used. */
|
||||
const int __pthread_provide_wrappers = 0;
|
||||
|
@ -1317,11 +1317,11 @@ static void free_atfork();
|
||||
|
||||
/* size field is or'ed with PREV_INUSE when previous adjacent chunk in use */
|
||||
|
||||
#define PREV_INUSE 0x1
|
||||
#define PREV_INUSE 0x1UL
|
||||
|
||||
/* size field is or'ed with IS_MMAPPED if the chunk was obtained with mmap() */
|
||||
|
||||
#define IS_MMAPPED 0x2
|
||||
#define IS_MMAPPED 0x2UL
|
||||
|
||||
/* Bits to mask off when extracting size */
|
||||
|
||||
|
@ -27,7 +27,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#if !defined DO_STATIC_NSS || defined PIC
|
||||
#if !defined DO_STATIC_NSS || defined SHARED
|
||||
# include <gnu/lib-names.h>
|
||||
#endif
|
||||
|
||||
@ -65,7 +65,7 @@ static struct
|
||||
|
||||
__libc_lock_define_initialized (static, lock)
|
||||
|
||||
#if !defined DO_STATIC_NSS || defined PIC
|
||||
#if !defined DO_STATIC_NSS || defined SHARED
|
||||
/* String with revision number of the shared object files. */
|
||||
static const char *const __nss_shlib_revision = LIBNSS_FILES_SO + 15;
|
||||
#endif
|
||||
@ -314,7 +314,7 @@ __nss_lookup_function (service_user *ni, const char *fct_name)
|
||||
}
|
||||
}
|
||||
|
||||
#if !defined DO_STATIC_NSS || defined PIC
|
||||
#if !defined DO_STATIC_NSS || defined SHARED
|
||||
if (ni->library->lib_handle == NULL)
|
||||
{
|
||||
/* Load the shared library. */
|
||||
|
@ -303,7 +303,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
|
||||
|
||||
#define NOT_IN_JUMP_RANGE(Ch) ((Ch) < L_(' ') || (Ch) > L_('z'))
|
||||
#define CHAR_CLASS(Ch) (jump_table[(INT_T) (Ch) - L_(' ')])
|
||||
#if defined HAVE_SUBTRACT_LOCAL_LABELS && defined PIC
|
||||
#if defined HAVE_SUBTRACT_LOCAL_LABELS && defined SHARED
|
||||
/* 'int' is enough and it saves some space on 64 bit systems. */
|
||||
# define JUMP_TABLE_TYPE const int
|
||||
# define JUMP(ChExpr, table) \
|
||||
@ -1258,7 +1258,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
|
||||
/* Process whole format string. */
|
||||
do
|
||||
{
|
||||
#if defined HAVE_SUBTRACT_LOCAL_LABELS && defined PIC
|
||||
#if defined HAVE_SUBTRACT_LOCAL_LABELS && defined SHARED
|
||||
# define REF(Name) &&do_##Name - &&do_form_unknown
|
||||
#else
|
||||
# define REF(Name) &&do_##Name
|
||||
@ -1648,7 +1648,7 @@ do_positional:
|
||||
for (; (size_t) nspecs_done < nspecs; ++nspecs_done)
|
||||
{
|
||||
#undef REF
|
||||
#if defined HAVE_SUBTRACT_LOCAL_LABELS && defined PIC
|
||||
#if defined HAVE_SUBTRACT_LOCAL_LABELS && defined SHARED
|
||||
# define REF(Name) &&do2_##Name - &&do_form_unknown
|
||||
#else
|
||||
# define REF(Name) &&do2_##Name
|
||||
|
@ -39,7 +39,7 @@ init (int *data)
|
||||
__getopt_clean_environment (envp);
|
||||
}
|
||||
|
||||
#ifdef PIC
|
||||
#ifdef SHARED
|
||||
/* This function is called to initialize the shared C library.
|
||||
It is called just before the user _start code from i386/elf/start.S,
|
||||
with the stack set up as that code gets it. */
|
||||
@ -63,7 +63,7 @@ _init (int argc, ...)
|
||||
void
|
||||
__libc_init_first (int argc __attribute__ ((unused)), ...)
|
||||
{
|
||||
#ifndef PIC
|
||||
#ifndef SHARED
|
||||
init (&argc);
|
||||
#endif
|
||||
}
|
||||
|
@ -25,14 +25,14 @@ int __libc_multiple_libcs = 1;
|
||||
extern void __libc_init (int, char **, char **);
|
||||
extern void __getopt_clean_environment (char **);
|
||||
|
||||
#ifdef PIC
|
||||
#ifdef SHARED
|
||||
void
|
||||
__libc_init_first (void)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef PIC
|
||||
#ifdef SHARED
|
||||
/* NOTE! The linker notices the magical name `_init' and sets the DT_INIT
|
||||
pointer in the dynamic section based solely on that. It is convention
|
||||
for this function to be in the `.init' section, but the symbol name is
|
||||
|
@ -39,7 +39,7 @@ __libc_start_main (int (*main) (int, char **, char **), int argc,
|
||||
char **argv, void (*init) (void), void (*fini) (void),
|
||||
void (*rtld_fini) (void), void *stack_end)
|
||||
{
|
||||
#ifndef PIC
|
||||
#ifndef SHARED
|
||||
/* The next variable is only here to work around a bug in gcc <= 2.7.2.2.
|
||||
If the address would be taken inside the expression the optimizer
|
||||
would try to be too smart and throws it away. Grrr. */
|
||||
@ -66,7 +66,7 @@ __libc_start_main (int (*main) (int, char **, char **), int argc,
|
||||
/* Call the initializer of the libc. This is only needed here if we
|
||||
are compiling for the static library in which case we haven't
|
||||
run the constructors in `_dl_start_user'. */
|
||||
#ifndef PIC
|
||||
#ifndef SHARED
|
||||
__libc_init_first (argc, argv, __environ);
|
||||
#endif
|
||||
|
||||
@ -75,14 +75,14 @@ __libc_start_main (int (*main) (int, char **, char **), int argc,
|
||||
atexit (fini);
|
||||
|
||||
/* Call the initializer of the program, if any. */
|
||||
#ifdef PIC
|
||||
#ifdef SHARED
|
||||
if (_dl_debug_impcalls)
|
||||
_dl_debug_message (1, "\ninitialize program: ", argv[0], "\n\n", NULL);
|
||||
#endif
|
||||
if (init)
|
||||
(*init) ();
|
||||
|
||||
#ifdef PIC
|
||||
#ifdef SHARED
|
||||
if (_dl_debug_impcalls)
|
||||
_dl_debug_message (1, "\ntransferring control: ", argv[0], "\n\n", NULL);
|
||||
#endif
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Initialization code run first thing by the ELF startup code. For i386/Unix.
|
||||
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1995, 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
|
||||
@ -39,7 +39,7 @@ init (int *data)
|
||||
__getopt_clean_environment (envp);
|
||||
}
|
||||
|
||||
#ifdef PIC
|
||||
#ifdef SHARED
|
||||
/* This function is called to initialize the shared C library.
|
||||
It is called just before the user _start code from i386/elf/start.S,
|
||||
with the stack set up as that code gets it. */
|
||||
@ -63,7 +63,7 @@ _init (int argc, ...)
|
||||
void
|
||||
__libc_init_first (int argc __attribute__ ((unused)), ...)
|
||||
{
|
||||
#ifndef PIC
|
||||
#ifndef SHARED
|
||||
init (&argc);
|
||||
#endif
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ init (int *data)
|
||||
__libc_init (argc, argv, envp);
|
||||
}
|
||||
|
||||
#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. */
|
||||
@ -58,7 +58,7 @@ _init (int argc, ...)
|
||||
void
|
||||
__libc_init_first (int argc __attribute__ ((unused)), ...)
|
||||
{
|
||||
#ifndef PIC
|
||||
#ifndef SHARED
|
||||
init (&argc);
|
||||
#endif
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Machine-specific calling sequence for `mcount' profiling function. MIPS
|
||||
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
|
||||
@ -21,7 +21,7 @@
|
||||
|
||||
/* Call __mcount with our the return PC for our caller,
|
||||
and the return PC our caller will return to. */
|
||||
#ifdef PIC
|
||||
#ifdef __PIC__
|
||||
#define CPLOAD ".cpload $25;"
|
||||
#else
|
||||
#define CPLOAD
|
||||
|
@ -41,7 +41,7 @@ __libc_start_main (int argc, char **argv, char **envp,
|
||||
struct startup_info *stinfo,
|
||||
char **stack_on_entry)
|
||||
{
|
||||
#ifndef PIC
|
||||
#ifndef SHARED
|
||||
/* The next variable is only here to work around a bug in gcc <= 2.7.2.2.
|
||||
If the address would be taken inside the expression the optimizer
|
||||
would try to be too smart and throws it away. Grrr. */
|
||||
@ -80,7 +80,7 @@ __libc_start_main (int argc, char **argv, char **envp,
|
||||
atexit (rtld_fini);
|
||||
|
||||
/* Call the initializer of the libc. */
|
||||
#ifdef PIC
|
||||
#ifdef SHARED
|
||||
if (_dl_debug_impcalls)
|
||||
_dl_debug_message (1, "\ninitialize libc\n\n", NULL);
|
||||
#endif
|
||||
@ -91,14 +91,14 @@ __libc_start_main (int argc, char **argv, char **envp,
|
||||
atexit (stinfo->fini);
|
||||
|
||||
/* Call the initializer of the program, if any. */
|
||||
#ifdef PIC
|
||||
#ifdef SHARED
|
||||
if (_dl_debug_impcalls)
|
||||
_dl_debug_message (1, "\ninitialize program: ", argv[0], "\n\n", NULL);
|
||||
#endif
|
||||
if (stinfo->init)
|
||||
stinfo->init (argc, argv, __environ, auxvec);
|
||||
|
||||
#ifdef PIC
|
||||
#ifdef SHARED
|
||||
if (_dl_debug_impcalls)
|
||||
_dl_debug_message (1, "\ntransferring control: ", argv[0], "\n\n", NULL);
|
||||
#endif
|
||||
|
@ -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);
|
||||
|
@ -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 PIC && defined DO_VERSIONING
|
||||
#elif defined HAVE_ELF && defined SHARED && defined DO_VERSIONING
|
||||
/* Compiling for compatibiity. */
|
||||
int
|
||||
__chown_is_lchown (const char *file, uid_t owner, gid_t group)
|
||||
@ -141,7 +141,7 @@ __chown_is_lchown (const char *file, uid_t owner, gid_t group)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
|
||||
#if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING
|
||||
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);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1999, 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
|
||||
@ -21,7 +21,7 @@
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
|
||||
#include <shlib-compat.h>
|
||||
#include "kernel-features.h"
|
||||
|
||||
extern int __syscall_ugetrlimit (unsigned int resource,
|
||||
@ -77,8 +77,4 @@ __new_getrlimit (enum __rlimit_resource resource, struct rlimit *rlimits)
|
||||
}
|
||||
|
||||
weak_alias (__new_getrlimit, __getrlimit);
|
||||
#if defined PIC && DO_VERSIONING
|
||||
default_symbol_version (__new_getrlimit, getrlimit, GLIBC_2.2);
|
||||
#else
|
||||
weak_alias (__new_getrlimit, getrlimit);
|
||||
#endif
|
||||
versioned_symbol (libc, __new_getrlimit, getrlimit, GLIBC_2_2);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1999, 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
|
||||
@ -21,8 +21,5 @@
|
||||
#include <sysdeps/generic/getrlimit64.c>
|
||||
|
||||
#undef getrlimit64
|
||||
#if defined PIC && defined DO_VERSIONING
|
||||
default_symbol_version (__new_getrlimit64, getrlimit64, GLIBC_2.2);
|
||||
#else
|
||||
weak_alias (__new_getrlimit64, getrlimit64);
|
||||
#endif
|
||||
#include <shlib-compat.h>
|
||||
versioned_symbol (libc, __new_getrlimit64, getrlimit64, GLIBC_2_2);
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include <sys/syscall.h>
|
||||
|
||||
#include "kernel-features.h"
|
||||
#include <shlib-compat.h>
|
||||
|
||||
struct __old_msqid_ds
|
||||
{
|
||||
@ -46,7 +47,9 @@ struct __old_msqid_ds
|
||||
|
||||
/* Allows to control internal state and destruction of message queue
|
||||
objects. */
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
|
||||
int __old_msgctl (int, int, struct __old_msqid_ds *);
|
||||
#endif
|
||||
int __new_msgctl (int, int, struct msqid_ds *);
|
||||
|
||||
#ifdef __NR_getuid32
|
||||
@ -57,11 +60,14 @@ extern int __libc_missing_32bit_uids;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
|
||||
int
|
||||
__old_msgctl (int msqid, int cmd, struct __old_msqid_ds *buf)
|
||||
{
|
||||
return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, msqid, cmd, 0, buf);
|
||||
}
|
||||
compat_symbol (libc, __old_msgctl, msgctl, GLIBC_2_0);
|
||||
#endif
|
||||
|
||||
int
|
||||
__new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
|
||||
@ -143,9 +149,4 @@ __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);
|
||||
symbol_version (__old_msgctl, msgctl, GLIBC_2.0);
|
||||
#else
|
||||
weak_alias (__new_msgctl, msgctl);
|
||||
#endif
|
||||
versioned_symbol (libc, __new_msgctl, msgctl, GLIBC_2_2);
|
||||
|
@ -18,7 +18,8 @@
|
||||
|
||||
/* This is a compatibility file. If we don't build the libc with
|
||||
versioning don't compile this file. */
|
||||
#if defined PIC && DO_VERSIONING
|
||||
#include <shlib-compat.h>
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_2)
|
||||
|
||||
#include <errno.h>
|
||||
#include <sys/resource.h>
|
||||
@ -48,6 +49,6 @@ __old_getrlimit64 (enum __rlimit_resource resource, struct rlimit64 *rlimits)
|
||||
return 0;
|
||||
}
|
||||
|
||||
symbol_version (__old_getrlimit64, getrlimit64, GLIBC_2.1);
|
||||
compat_symbol (libc, __old_getrlimit64, getrlimit64, GLIBC_2_1);
|
||||
|
||||
#endif /* PIC && DO_VERSIONING */
|
||||
#endif /* SHLIB_COMPAT */
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include <sys/syscall.h>
|
||||
|
||||
#include "kernel-features.h"
|
||||
#include <shlib-compat.h>
|
||||
|
||||
struct __old_semid_ds
|
||||
{
|
||||
@ -59,9 +60,12 @@ extern int __libc_missing_32bit_uids;
|
||||
|
||||
/* Return identifier for array of NSEMS semaphores associated with
|
||||
KEY. */
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
|
||||
int __old_semctl (int semid, int semnum, int cmd, ...);
|
||||
#endif
|
||||
int __new_semctl (int semid, int semnum, int cmd, ...);
|
||||
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
|
||||
int
|
||||
__old_semctl (int semid, int semnum, int cmd, ...)
|
||||
{
|
||||
@ -77,6 +81,8 @@ __old_semctl (int semid, int semnum, int cmd, ...)
|
||||
|
||||
return INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd, &arg);
|
||||
}
|
||||
compat_symbol (libc, __old_semctl, semctl, GLIBC_2_0);
|
||||
#endif
|
||||
|
||||
int
|
||||
__new_semctl (int semid, int semnum, int cmd, ...)
|
||||
@ -165,9 +171,4 @@ __new_semctl (int semid, int semnum, int cmd, ...)
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined PIC && DO_VERSIONING
|
||||
default_symbol_version (__new_semctl, semctl, GLIBC_2.2);
|
||||
symbol_version (__old_semctl, semctl, GLIBC_2.0);
|
||||
#else
|
||||
weak_alias (__new_semctl, semctl);
|
||||
#endif
|
||||
versioned_symbol (libc, __new_semctl, semctl, GLIBC_2_2);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1999, 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
|
||||
@ -24,6 +24,7 @@
|
||||
#include <sys/syscall.h>
|
||||
|
||||
#include "kernel-features.h"
|
||||
#include <shlib-compat.h>
|
||||
|
||||
extern int __syscall_setrlimit (unsigned int resource,
|
||||
const struct rlimit *rlimits);
|
||||
@ -75,8 +76,4 @@ __new_setrlimit (enum __rlimit_resource resource, const struct rlimit *rlimits)
|
||||
}
|
||||
|
||||
weak_alias (__new_setrlimit, __setrlimit);
|
||||
#if defined PIC && DO_VERSIONING
|
||||
default_symbol_version (__new_setrlimit, setrlimit, GLIBC_2.2);
|
||||
#else
|
||||
weak_alias (__new_setrlimit, setrlimit);
|
||||
#endif
|
||||
versioned_symbol (libc, __new_setrlimit, setrlimit, GLIBC_2_2);
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
#include "kernel-features.h"
|
||||
#include <shlib-compat.h>
|
||||
|
||||
struct __old_shmid_ds
|
||||
{
|
||||
@ -61,14 +62,19 @@ extern int __libc_missing_32bit_uids;
|
||||
#endif
|
||||
|
||||
/* Provide operations to control over shared memory segments. */
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
|
||||
int __old_shmctl (int, int, struct __old_shmid_ds *);
|
||||
#endif
|
||||
int __new_shmctl (int, int, struct shmid_ds *);
|
||||
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
|
||||
int
|
||||
__old_shmctl (int shmid, int cmd, struct __old_shmid_ds *buf)
|
||||
{
|
||||
return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, buf);
|
||||
}
|
||||
compat_symbol (libc, __old_shmctl, shmctl, GLIBC_2_0);
|
||||
#endif
|
||||
|
||||
int
|
||||
__new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
|
||||
@ -163,9 +169,4 @@ __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);
|
||||
symbol_version (__old_shmctl, shmctl, GLIBC_2.0);
|
||||
#else
|
||||
weak_alias (__new_shmctl, shmctl);
|
||||
#endif
|
||||
versioned_symbol (libc, __new_shmctl, shmctl, GLIBC_2_2);
|
||||
|
@ -128,7 +128,7 @@ init (int argc, char **argv, char **envp)
|
||||
/* Set the FPU control word to the proper default value if the
|
||||
kernel would use a different value. (In a static program we
|
||||
don't have this information.) */
|
||||
#ifdef PIC
|
||||
#ifdef SHARED
|
||||
if (__fpu_control != _dl_fpu_control)
|
||||
#endif
|
||||
__setfpucw (__fpu_control);
|
||||
@ -139,7 +139,7 @@ init (int argc, char **argv, char **envp)
|
||||
__libc_argv = argv;
|
||||
__environ = envp;
|
||||
|
||||
#ifndef PIC
|
||||
#ifndef SHARED
|
||||
__libc_init_secure ();
|
||||
#endif
|
||||
|
||||
@ -148,12 +148,12 @@ init (int argc, char **argv, char **envp)
|
||||
/* 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
|
||||
}
|
||||
|
||||
#ifdef PIC
|
||||
#ifdef SHARED
|
||||
|
||||
strong_alias (init, _init);
|
||||
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include <sysdep.h>
|
||||
#include <string.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <shlib-compat.h>
|
||||
|
||||
#include "kernel-features.h"
|
||||
|
||||
@ -46,14 +47,19 @@ struct __old_msqid_ds
|
||||
|
||||
/* Allows to control internal state and destruction of message queue
|
||||
objects. */
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
|
||||
int __old_msgctl (int, int, struct __old_msqid_ds *);
|
||||
#endif
|
||||
int __new_msgctl (int, int, struct msqid_ds *);
|
||||
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
|
||||
int
|
||||
__old_msgctl (int msqid, int cmd, struct __old_msqid_ds *buf)
|
||||
{
|
||||
return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, msqid, cmd, 0, buf);
|
||||
}
|
||||
compat_symbol (libc, __old_msgctl, msgctl, GLIBC_2_0);
|
||||
#endif
|
||||
|
||||
int
|
||||
__new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
|
||||
@ -120,9 +126,4 @@ __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);
|
||||
symbol_version (__old_msgctl, msgctl, GLIBC_2.0);
|
||||
#else
|
||||
weak_alias (__new_msgctl, msgctl);
|
||||
#endif
|
||||
versioned_symbol (libc, __new_msgctl, msgctl, GLIBC_2_2);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* chown() compatibility.
|
||||
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
|
||||
@ -124,8 +124,5 @@ __chown (const char *file, uid_t owner, gid_t group)
|
||||
return -1;
|
||||
}
|
||||
|
||||
#if defined PIC && defined DO_VERSIONING
|
||||
default_symbol_version (__chown, chown, GLIBC_2.1);
|
||||
#else
|
||||
weak_alias (__chown, chown)
|
||||
#endif
|
||||
#include <shlib-compat.h>
|
||||
versioned_symbol (libc, __chown, chown, GLIBC_2_1);
|
||||
|
@ -25,9 +25,11 @@
|
||||
#include <sysdep.h>
|
||||
#include <string.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <shlib-compat.h>
|
||||
|
||||
#include "kernel-features.h"
|
||||
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
|
||||
struct __old_semid_ds
|
||||
{
|
||||
struct __old_ipc_perm sem_perm; /* operation permission struct */
|
||||
@ -39,6 +41,7 @@ struct __old_semid_ds
|
||||
struct sem_undo *__undo; /* ondo requests on this array */
|
||||
unsigned short int sem_nsems; /* number of semaphores in set */
|
||||
};
|
||||
#endif
|
||||
|
||||
/* Define a `union semun' suitable for Linux here. */
|
||||
union semun
|
||||
@ -52,9 +55,12 @@ union semun
|
||||
|
||||
/* Return identifier for array of NSEMS semaphores associated with
|
||||
KEY. */
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
|
||||
int __old_semctl (int semid, int semnum, int cmd, ...);
|
||||
#endif
|
||||
int __new_semctl (int semid, int semnum, int cmd, ...);
|
||||
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
|
||||
int
|
||||
__old_semctl (int semid, int semnum, int cmd, ...)
|
||||
{
|
||||
@ -70,6 +76,8 @@ __old_semctl (int semid, int semnum, int cmd, ...)
|
||||
|
||||
return INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd, &arg);
|
||||
}
|
||||
compat_symbol (libc, __old_semctl, semctl, GLIBC_2_0);
|
||||
#endif
|
||||
|
||||
int
|
||||
__new_semctl (int semid, int semnum, int cmd, ...)
|
||||
@ -142,9 +150,4 @@ __new_semctl (int semid, int semnum, int cmd, ...)
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined PIC && DO_VERSIONING
|
||||
default_symbol_version (__new_semctl, semctl, GLIBC_2.2);
|
||||
symbol_version (__old_semctl, semctl, GLIBC_2.0);
|
||||
#else
|
||||
weak_alias (__new_semctl, semctl);
|
||||
#endif
|
||||
versioned_symbol (libc, __new_semctl, semctl, GLIBC_2_2);
|
||||
|
@ -25,9 +25,11 @@
|
||||
#include <string.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <bits/wordsize.h>
|
||||
#include <shlib-compat.h>
|
||||
|
||||
#include "kernel-features.h"
|
||||
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
|
||||
struct __old_shmid_ds
|
||||
{
|
||||
struct __old_ipc_perm shm_perm; /* operation permission struct */
|
||||
@ -54,13 +56,17 @@ struct __old_shminfo
|
||||
|
||||
/* Provide operations to control over shared memory segments. */
|
||||
int __old_shmctl (int, int, struct __old_shmid_ds *);
|
||||
#endif
|
||||
int __new_shmctl (int, int, struct shmid_ds *);
|
||||
|
||||
#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
|
||||
int
|
||||
__old_shmctl (int shmid, int cmd, struct __old_shmid_ds *buf)
|
||||
{
|
||||
return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, buf);
|
||||
}
|
||||
compat_symbol (libc, __old_shmctl, shmctl, GLIBC_2_0);
|
||||
#endif
|
||||
|
||||
int
|
||||
__new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
|
||||
@ -141,9 +147,4 @@ __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);
|
||||
symbol_version (__old_shmctl, shmctl, GLIBC_2.0);
|
||||
#else
|
||||
weak_alias (__new_shmctl, shmctl);
|
||||
#endif
|
||||
versioned_symbol (libc, __new_shmctl, shmctl, GLIBC_2_2);
|
||||
|
Loading…
Reference in New Issue
Block a user