2000-04-05  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/unix/sysv/linux/alpha/init-first.h: Not needed anymore.
	* sysdeps/unix/sysv/linux/arm/init-first.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/init-first.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/init-first.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/init-first.h: Likewise.

	* sysdeps/unix/sysv/linux/Dist: Remove getresuid and getresgid.
	* Makefile (distribute): Add abi-versions.awk and
	firstversions.awk.
	Patches by Torsten Duwe <duwe@caldera.de>.
This commit is contained in:
Ulrich Drepper 2000-04-06 04:58:34 +00:00
parent 5560eac7cb
commit 2a0ff6ff1a
9 changed files with 16 additions and 350 deletions

View file

@ -1,3 +1,17 @@
2000-04-05 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/alpha/init-first.h: Not needed anymore.
* sysdeps/unix/sysv/linux/arm/init-first.h: Likewise.
* sysdeps/unix/sysv/linux/mips/init-first.h: Likewise.
* sysdeps/unix/sysv/linux/powerpc/init-first.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/init-first.h: Likewise.
* sysdeps/unix/sysv/linux/Dist: Remove getresuid and getresgid.
* Makefile (distribute): Add abi-versions.awk and
firstversions.awk.
Patches by Torsten Duwe <duwe@caldera.de>.
2000-04-05 Andreas Schwab <schwab@suse.de>
* nss/Makefile ($(objpfx)makedb): Move $(libdl) after db-open.o.

View file

@ -262,7 +262,8 @@ distribute := README README.libm INSTALL FAQ FAQ.in NOTES NEWS BUGS \
rellns-sh config.sub config.guess \
mkinstalldirs move-if-change install-sh \
test-installation.pl gen-FAQ.pl versions.awk\
gen-sorted.awk)
gen-sorted.awk abi-versions.awk \
firstversions.awk)
distribute := $(strip $(distribute))
generated := $(generated) stubs.h

View file

@ -74,7 +74,5 @@ sys/user.h
sys/vt.h
xstatconv.c
getdents64.c
getresuid.c
getresgid.c
umount.S
umount2.S

View file

@ -1,27 +0,0 @@
/* The job of this fragment it to find argc and friends for INIT.
This is done in one of two ways: either in the stack context
of program start, or having dlopen pass them in. */
#define SYSDEP_CALL_INIT(NAME, INIT) asm("\
.weak _dl_starting_up
.globl " #NAME "
.ent " #NAME "
" #NAME ":
ldgp $29, 0($27)
.prologue 1
.set at
/* Are we a dynamic libc being loaded into a static program? */
lda $0, _dl_starting_up
beq $0, 1f
ldl $0, 0($0)
cmpeq $31, $0, $0
1: stl $0, __libc_multiple_libcs
/* If so, argc et al are in a0-a2 already. Otherwise, load them. */
bne $0, 2f
ldl $16, 0($30)
lda $17, 8($30)
s8addq $16, $17, $18
addq $18, 8, $18
2: br $31, " ASM_ALPHA_NG_SYMBOL_PREFIX #INIT "..ng
.set noat
.end " #NAME);

View file

@ -1,55 +0,0 @@
/* Prepare arguments for library initialization function.
Copyright (C) 1997 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. */
/* The job of this fragment it to find argc and friends for INIT.
This is done in one of two ways: either in the stack context
of program start, or having dlopen pass them in.
*/
#define SYSDEP_CALL_INIT(NAME, INIT) \
void NAME (void* arg, ...) \
{ \
int argc; \
char** argv; \
char** envp; \
/* 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. */ \
int *dummy_addr = &_dl_starting_up; \
\
__libc_multiple_libcs = dummy_addr && !_dl_starting_up; \
\
if (!__libc_multiple_libcs) \
{ \
/* The ... in the arg list above forces the gnu ARM compiler to \
push r0, r1, r2, r3 onto the stack. This way we can get the address */ \
argc = *(int*) (&arg+4); \
argv = (char **) &arg + 5; \
envp = &argv[argc+1]; \
} \
else /* the three were passed as arguments */ \
{ \
argc = (int)arg; \
argv = (char**)*(&arg + 1); \
envp = (char**)*(&arg + 2); \
} \
\
INIT (argc, argv, envp); \
}

View file

@ -1,51 +0,0 @@
/* Prepare arguments for library initialization function.
Copyright (C) 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
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. */
/* The job of this fragment it to find argc and friends for INIT.
This is done in one of two ways: either in the stack context
of program start, or having dlopen pass them in. */
#define SYSDEP_CALL_INIT(NAME, INIT) \
asm(".weak _dl_starting_up\n\t" \
".globl " #NAME "\n\t" \
".ent " #NAME "\n" \
#NAME ":\n\t" \
".set noreorder\n\t" \
".cpload $25\n\t" \
".set reorder\n\t" \
/* Are we a dynamic libc being loaded into a static program? */ \
"la $8, _dl_starting_up\n\t" \
"beqz $8, 1f\n\t" \
"lw $8, 0($8)\n\t" \
"seq $8, $8, 0\n" \
"1:\t" \
"sw $8, __libc_multiple_libcs\n\t" \
/* If so, argc et al are in a0-a2 already. Otherwise, load them. */ \
"bnez $8, 2f\n\t" \
"lw $4, 16($29)\n\t" \
"addiu $5, $29, 20\n\t" \
"sll $6, $4, 2\n\t" \
"addiu $6, $6, 4\n\t" \
"addu $6, $5, $6\n" \
"2:\t" \
"la $25, " #INIT "\n\t" \
"jr $25\n\t" \
".end " #NAME "\n\t" \
"3:\t" \
".size " #NAME ", 3b-" #NAME);

View file

@ -1,27 +0,0 @@
/* Copyright (C) 1997 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. */
/* The job of this fragment it to find argc and friends for INIT.
They are passed to this routine by either the program loader
code in start.c, or by by dlopen.*/
#define SYSDEP_CALL_INIT(NAME, INIT) \
void NAME (int argc, char **argv, char **envp) \
{ \
INIT (argc, argv, envp); \
}

View file

@ -1,96 +0,0 @@
/* Prepare arguments for library initialization function.
Copyright (C) 1997 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. */
/* The job of this fragment it to find argc and friends for INIT.
This is done in one of two ways: either in the stack context
of program start, or having dlopen pass them in. */
#include <sysdep.h>
#define __S1(x) #x
#define __S(x) __S1(x)
#ifdef PIC
#define SYSDEP_CALL_INIT(NAME, INIT) asm("\
.weak _dl_starting_up
.global " #NAME "
.type " #NAME ",@function
" #NAME ":
save %sp, -64, %sp
1: call 11f
sethi %hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7
11: or %l7, %lo(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7
add %l7, %o7, %l7
/* Are we a dynamic libc being loaded into a static program? */
sethi %hi(_dl_starting_up), %l2
or %l2, %lo(_dl_starting_up), %l2
ld [%l7+%l2], %l2
cmp %l2, 0
beq 3f
sethi %hi(__libc_multiple_libcs), %l3
ld [%l2], %l2
subcc %g0, %l2, %g0
subx %g0, -1, %l2
3: or %l3, %lo(__libc_multiple_libcs), %l3
ld [%l7+%l3], %l3
cmp %l2, 0
st %l2, [%l3]
/* If so, argc et al are in %o0-%o2 already. Otherwise, load them. */
bnz " #INIT "
restore
ld [%sp+22*4], %o0
add %sp, 23*4, %o1
sll %o0, 2, %o2
add %o2, %o1, %o2
ba " #INIT "
add %o2, 4, %o2
.size "#NAME ", .-" #NAME);
#else
#define SYSDEP_CALL_INIT(NAME, INIT) asm("\
.weak _dl_starting_up
.global " #NAME "
.type " #NAME ",@function
" #NAME ":
/* Are we a dynamic libc being loaded into a static program? */
sethi %hi(_dl_starting_up), %g2
or %g2, %lo(_dl_starting_up), %g2
cmp %g2, 0
beq 3f
sethi %hi(__libc_multiple_libcs), %g3
ld [%g2], %g2
subcc %g0, %g2, %g0
subx %g0, -1, %g2
3: or %g3, %lo(__libc_multiple_libcs), %g3
cmp %g2, 0
st %g2, [%g3]
/* If so, argc et al are in %o0-%o2 already. Otherwise, load them. */
bnz " #INIT "
nop
ld [%sp+22*4], %o0
add %sp, 23*4, %o1
sll %o0, 2, %o2
add %o2, %o1, %o2
ba " #INIT "
add %o2, 4, %o2
.size "#NAME ", .-" #NAME);
#endif

View file

@ -1,91 +0,0 @@
/* Prepare arguments for library initialization function.
Copyright (C) 1997 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. */
/* The job of this fragment it to find argc and friends for INIT.
This is done in one of two ways: either in the stack context
of program start, or having dlopen pass them in. */
#include <sysdep.h>
#define __S1(x) #x
#define __S(x) __S1(x)
#ifdef PIC
#define SYSDEP_CALL_INIT(NAME, INIT) asm("\
.weak _dl_starting_up
.global " #NAME "
.type " #NAME ",@function
" #NAME ":
save %sp, -192, %sp
1: call 11f
sethi %hi(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7
11: or %l7, %lo(_GLOBAL_OFFSET_TABLE_-(1b-.)), %l7
add %l7, %o7, %l7
/* Are we a dynamic libc being loaded into a static program? */
sethi %hi(_dl_starting_up), %l2
or %l2, %lo(_dl_starting_up), %l2
ldx [%l7+%l2], %l2
brz,pn %l2, 3f
sethi %hi(__libc_multiple_libcs), %l3
ld [%l2], %l4
mov %g0, %l2
movrz %l4, 1, %l2
3: or %l3, %lo(__libc_multiple_libcs), %l3
ldx [%l7+%l3], %l3
st %l2, [%l3]
/* If so, argc et al are in %o0-%o2 already. Otherwise, load them. */
brnz,pn %l2, " #INIT "
restore
ldx [%sp+" __S(STACK_BIAS) "+22*8], %o0
add %sp, " __S(STACK_BIAS) "+23*8, %o1
sllx %o0, 3, %o2
add %o2, %o1, %o2
ba " #INIT "
add %o2, 8, %o2
.size "#NAME ", .-" #NAME);
#else
#define SYSDEP_CALL_INIT(NAME, INIT) asm("\
.weak _dl_starting_up
.global " #NAME "
.type " #NAME ",@function
" #NAME ":
/* Are we a dynamic libc being loaded into a static program? */
sethi %hi(_dl_starting_up), %g2
or %g2, %lo(_dl_starting_up), %g2
brz,pt %g2, 3f
sethi %hi(__libc_multiple_libcs), %g3
ld [%g2], %g1
mov %g0, %g2
movrz %g1, 1, %g2
3: st %g2, [%g3 + %lo(__libc_multiple_libcs)]
/* If so, argc et al are in %o0-%o2 already. Otherwise, load them. */
brnz,pn %g2, " #INIT "
nop
ldx [%sp+" __S(STACK_BIAS) "+22*8], %o0
add %sp, " __S(STACK_BIAS) "+23*8, %o1
sllx %o0, 3, %o2
add %o2, %o1, %o2
ba " #INIT "
add %o2, 8, %o2
.size "#NAME ", .-" #NAME);
#endif