Some shlib-compat patches
Andreas Jaeger
aj@suse.de
Wed Mar 29 00:00:00 GMT 2000
Here's a patch to use shlib-compat in some more places.
I'll send another patch later.
Andreas
2000-03-29 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/alpha/oldglob.c: Use shlib-compat
macros, remove K&R prototypes.
* sysdeps/unix/sysv/linux/alpha/msgctl.c: Use shlib-compat macros.
* sysdeps/unix/sysv/linux/alpha/semctl.c: Likewise.
* sysdeps/unix/sysv/linux/alpha/shmctl.c: Likewise.
* sysdeps/unix/sysv/linux/alpha/adjtime.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/chown.c: Likewise.
============================================================
Index: sysdeps/unix/sysv/linux/alpha/oldglob.c
--- sysdeps/unix/sysv/linux/alpha/oldglob.c 1998/05/21 01:18:56 1.2
+++ sysdeps/unix/sysv/linux/alpha/oldglob.c 2000/03/29 07:54:16
@@ -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 @@
/* 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 @@
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 @@
globfree (&correct);
}
-symbol_version(__old_globfree, globfree, GLIBC_2.0);
+compat_symbol (libc, __old_globfree, globfree, GLIBC_2.0);
#endif
============================================================
Index: sysdeps/unix/sysv/linux/alpha/msgctl.c
--- sysdeps/unix/sysv/linux/alpha/msgctl.c 2000/03/26 20:30:58 1.2
+++ sysdeps/unix/sysv/linux/alpha/msgctl.c 2000/03/29 07:54:16
@@ -116,8 +116,6 @@
#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);
+
============================================================
Index: sysdeps/unix/sysv/linux/alpha/semctl.c
--- sysdeps/unix/sysv/linux/alpha/semctl.c 2000/02/11 21:00:16 1.1
+++ sysdeps/unix/sysv/linux/alpha/semctl.c 2000/03/29 07:54:16
@@ -125,8 +125,5 @@
#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);
============================================================
Index: sysdeps/unix/sysv/linux/alpha/shmctl.c
--- sysdeps/unix/sysv/linux/alpha/shmctl.c 2000/02/11 21:00:22 1.1
+++ sysdeps/unix/sysv/linux/alpha/shmctl.c 2000/03/29 07:54:16
@@ -130,8 +130,5 @@
#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);
============================================================
Index: sysdeps/unix/sysv/linux/alpha/adjtime.c
--- sysdeps/unix/sysv/linux/alpha/adjtime.c 1998/03/01 00:56:39 1.2
+++ sysdeps/unix/sysv/linux/alpha/adjtime.c 2000/03/29 07:54:16
@@ -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 @@
#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,10 +67,9 @@
#include <sysdeps/unix/sysv/linux/adjtime.c>
-#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
-symbol_version (__adjtime_tv32, adjtime, GLIBC_2.0);
-#endif
+compat_symbol (libc, __adjtime_tv32, adjtime, GLIBC_2.0);
+
#undef TIMEVAL
#define TIMEVAL timeval
#undef TIMEX
@@ -117,11 +118,7 @@
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 +188,6 @@
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);
============================================================
Index: sysdeps/unix/sysv/linux/powerpc/chown.c
--- sysdeps/unix/sysv/linux/powerpc/chown.c 1998/08/24 16:42:37 1.1
+++ sysdeps/unix/sysv/linux/powerpc/chown.c 2000/03/29 07:54:16
@@ -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 @@
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);
--
Andreas Jaeger
SuSE Labs aj@suse.de
private aj@arthur.rhein-neckar.de
More information about the Libc-hacker
mailing list