summaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/i386
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-03-31 05:50:02 +0000
committerUlrich Drepper <drepper@redhat.com>2000-03-31 05:50:02 +0000
commitb5567b2af66e2be232c0db9bf189424c039465d2 (patch)
tree9273a3119bdb9e10fca7376a2b933bc41eded931 /sysdeps/unix/sysv/linux/i386
parentb86120ed685c140c3d19386d463d6efba436ab92 (diff)
downloadglibc-b5567b2af66e2be232c0db9bf189424c039465d2.tar.gz
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.
Diffstat (limited to 'sysdeps/unix/sysv/linux/i386')
-rw-r--r--sysdeps/unix/sysv/linux/i386/chown.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/getrlimit.c10
-rw-r--r--sysdeps/unix/sysv/linux/i386/getrlimit64.c9
-rw-r--r--sysdeps/unix/sysv/linux/i386/msgctl.c13
-rw-r--r--sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c7
-rw-r--r--sysdeps/unix/sysv/linux/i386/semctl.c13
-rw-r--r--sysdeps/unix/sysv/linux/i386/setrlimit.c9
-rw-r--r--sysdeps/unix/sysv/linux/i386/shmctl.c13
8 files changed, 36 insertions, 42 deletions
diff --git a/sysdeps/unix/sysv/linux/i386/chown.c b/sysdeps/unix/sysv/linux/i386/chown.c
index f6442a4ab6..5adeefb0ab 100644
--- a/sysdeps/unix/sysv/linux/i386/chown.c
+++ b/sysdeps/unix/sysv/linux/i386/chown.c
@@ -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);
diff --git a/sysdeps/unix/sysv/linux/i386/getrlimit.c b/sysdeps/unix/sysv/linux/i386/getrlimit.c
index 4fae122038..c1af81b312 100644
--- a/sysdeps/unix/sysv/linux/i386/getrlimit.c
+++ b/sysdeps/unix/sysv/linux/i386/getrlimit.c
@@ -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);
diff --git a/sysdeps/unix/sysv/linux/i386/getrlimit64.c b/sysdeps/unix/sysv/linux/i386/getrlimit64.c
index 8e7c9c6c1e..9c4605fd43 100644
--- a/sysdeps/unix/sysv/linux/i386/getrlimit64.c
+++ b/sysdeps/unix/sysv/linux/i386/getrlimit64.c
@@ -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);
diff --git a/sysdeps/unix/sysv/linux/i386/msgctl.c b/sysdeps/unix/sysv/linux/i386/msgctl.c
index 07b5d0d720..684365a922 100644
--- a/sysdeps/unix/sysv/linux/i386/msgctl.c
+++ b/sysdeps/unix/sysv/linux/i386/msgctl.c
@@ -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);
diff --git a/sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c b/sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c
index e77486494f..2f8a365d3e 100644
--- a/sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c
+++ b/sysdeps/unix/sysv/linux/i386/oldgetrlimit64.c
@@ -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 */
diff --git a/sysdeps/unix/sysv/linux/i386/semctl.c b/sysdeps/unix/sysv/linux/i386/semctl.c
index 6eb64b3a64..b553c2aa8b 100644
--- a/sysdeps/unix/sysv/linux/i386/semctl.c
+++ b/sysdeps/unix/sysv/linux/i386/semctl.c
@@ -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);
diff --git a/sysdeps/unix/sysv/linux/i386/setrlimit.c b/sysdeps/unix/sysv/linux/i386/setrlimit.c
index f9fd23ef54..5ceae60eb1 100644
--- a/sysdeps/unix/sysv/linux/i386/setrlimit.c
+++ b/sysdeps/unix/sysv/linux/i386/setrlimit.c
@@ -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);
diff --git a/sysdeps/unix/sysv/linux/i386/shmctl.c b/sysdeps/unix/sysv/linux/i386/shmctl.c
index 957416113b..ca25ff0c7a 100644
--- a/sysdeps/unix/sysv/linux/i386/shmctl.c
+++ b/sysdeps/unix/sysv/linux/i386/shmctl.c
@@ -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);