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.
This commit is contained in:
Roland McGrath 1998-12-04 13:47:40 +00:00
parent c31fd66e4c
commit aab217f3ee
7 changed files with 88 additions and 8 deletions

View File

@ -1,9 +1,18 @@
1998-12-03 Mark Kettenis <kettenis@phys.uva.nl>
1998-12-04 Mark Kettenis <kettenis@phys.uva.nl>
* hurd/Versions [GLIBC_2.1]: Add _hurd_proc_init.
* hurd/Versions: Move geteuids and seteuids from GLIBC_2.0 to
GLIBC_2.1.
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.
1998-12-02 Ulrich Drepper <drepper@cygnus.com>

View File

@ -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

View File

@ -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;

32
hurd/compat-20.c Normal file
View File

@ -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);

View File

@ -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

View File

@ -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. */

View File

@ -1,5 +1,10 @@
libc {
GLIBC_2.0 {
# This symbol is here only for binary compatibility with the
# pre-versioning libc.so.0.2 ABI. When the soname changes,
# it can be removed.
__vm_allocate;
# variables used in Mach-specific macros
__mach_task_self_;
__vm_page_size;