diff options
author | Roland McGrath <roland@gnu.org> | 1998-12-04 13:47:40 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1998-12-04 13:47:40 +0000 |
commit | aab217f3ee841289e63f9778b7799c06f5e3ab3e (patch) | |
tree | 26985869ade8fd6d86ecf32fe950ac815f2c985c /hurd | |
parent | c31fd66e4ccdbeba4766cb7eb6738398bc3bad78 (diff) | |
download | glibc-aab217f3ee841289e63f9778b7799c06f5e3ab3e.zip glibc-aab217f3ee841289e63f9778b7799c06f5e3ab3e.tar.gz glibc-aab217f3ee841289e63f9778b7799c06f5e3ab3e.tar.bz2 |
1998-12-04 Mark Kettenis <kettenis@phys.uva.nl>
Provide backwards binary compatibility for the Hurd.
* hurd/geteuids.c [PIC && DO_VERSIONING]: Make __getuids a weak
alias for geteuids.
* hurd/Versions [GLIBC_2.0]: Add __getuids,
__hurd_file_name_lookup and _hurd_umask.
[GLIBC_2.1]: Add _hurd_proc_init.
* hurd/Makefile [versioning] (routines): Add compat-20.
(shared-only-routines): Likewise.
* hurd/hurdinit.c (_hurd_new_proc_init): Renamed from
_hurd_proc_init. Use it as the default _hurd_proc_init version
for GLIBC_2.1.
* hurd/compat-20.c: New file.
* mach/Versions [GLIBC_2.0]: Add __vm_allocate.
Diffstat (limited to 'hurd')
-rw-r--r-- | hurd/Makefile | 7 | ||||
-rw-r--r-- | hurd/Versions | 12 | ||||
-rw-r--r-- | hurd/compat-20.c | 32 | ||||
-rw-r--r-- | hurd/geteuids.c | 6 | ||||
-rw-r--r-- | hurd/hurdinit.c | 15 |
5 files changed, 69 insertions, 3 deletions
diff --git a/hurd/Makefile b/hurd/Makefile index 3eeb445..250e441 100644 --- a/hurd/Makefile +++ b/hurd/Makefile @@ -66,6 +66,13 @@ distribute = hurdstartup.h hurdfault.h hurdhost.h \ # XXX this is a temporary hack; see hurdmalloc.h routines += hurdmalloc distribute += hurdmalloc.h + +# Binary compatibility for libc.so.0.2[GLIBC_2.0]. +ifeq ($(versioning),yes) +routines += compat-20 +endif + +shared-only-routines = compat-20 include ../mach/Machrules include ../Rules diff --git a/hurd/Versions b/hurd/Versions index 83974ca..f3e311b 100644 --- a/hurd/Versions +++ b/hurd/Versions @@ -1,5 +1,13 @@ libc { GLIBC_2.0 { + # These few symbols are here only for binary compatibility + # with the pre-versioning libc.so.0.2 ABI. Their replacements + # are in the GLIBC_2.1 version set. When the soname changes, + # these can be removed. + __getuids; + __hurd_file_name_lookup; + _hurd_proc_init; _hurd_umask; + # necessary for the Hurd brk implementation _end; @@ -49,7 +57,6 @@ libc { _hurd_port_get; _hurd_port_locked_get; _hurd_ports_use; - _hurd_proc_init; _hurd_thread_sigstate; # functions in normal name space @@ -91,6 +98,9 @@ libc { vpprintf; } GLIBC_2.1 { + # "quasi-internal" functions + _hurd_proc_init; + # g* geteuids; diff --git a/hurd/compat-20.c b/hurd/compat-20.c new file mode 100644 index 0000000..75d51ce --- /dev/null +++ b/hurd/compat-20.c @@ -0,0 +1,32 @@ +/* Old-versioned functions for binary compatibility with glibc-2.0. + Copyright (C) 1998 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 + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <hurd.h> + +/* This file provides definitions for binary compatibility with + the GLIBC_2.0 version set for the libc.so.0.2 soname. + + These definitions can be removed when the soname changes. */ + +void +_hurd_proc_init_compat_20 (char **argv) +{ + _hurd_proc_init (argv, NULL, 0); +} +symbol_version (_hurd_proc_init_compat_20, _hurd_proc_init, GLIBC_2.0); diff --git a/hurd/geteuids.c b/hurd/geteuids.c index ed85dfd..e37f9c2 100644 --- a/hurd/geteuids.c +++ b/hurd/geteuids.c @@ -61,3 +61,9 @@ geteuids (int n, uid_t *uidset) return nuids; } + +/* XXX Remove this alias when we bump the libc soname. */ + +#if defined PIC && DO_VERSIONING +weak_alias (geteuids, __getuids) +#endif diff --git a/hurd/hurdinit.c b/hurd/hurdinit.c index cd0d6e5..50b6729 100644 --- a/hurd/hurdinit.c +++ b/hurd/hurdinit.c @@ -118,8 +118,8 @@ DEFINE_HOOK (_hurd_proc_subinit, (void)); Call _hurdsig_init to set up signal processing. */ void -_hurd_proc_init (char **argv, - const int *intarray, size_t intarraysize) +_hurd_new_proc_init (char **argv, + const int *intarray, size_t intarraysize) { mach_port_t oldmsg; struct hurd_userlink ulink; @@ -160,6 +160,17 @@ _hurd_proc_init (char **argv, our parent (presumably a debugger) that the exec has completed. */ __msg_sig_post (_hurd_msgport, SIGTRAP, 0, __mach_task_self ()); } + +/* XXX Remove this versioning stuff and rename __new_hurd_proc_init + above back to _hurd_proc_init when we bump the libc soname. */ + +#if defined PIC && DO_VERSIONING +default_symbol_version (_hurd_new_proc_init, _hurd_proc_init, GLIBC_2.1); +#else +# ifdef weak_alias +weak_alias (_hurd_new_proc_init, _hurd_proc_init) +# endif +#endif /* Called when we get a message telling us to change our proc server port. */ |