mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-22 02:40:08 +00:00
Update.
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:
parent
5560eac7cb
commit
2a0ff6ff1a
14
ChangeLog
14
ChangeLog
@ -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>
|
2000-04-05 Andreas Schwab <schwab@suse.de>
|
||||||
|
|
||||||
* nss/Makefile ($(objpfx)makedb): Move $(libdl) after db-open.o.
|
* nss/Makefile ($(objpfx)makedb): Move $(libdl) after db-open.o.
|
||||||
|
3
Makefile
3
Makefile
@ -262,7 +262,8 @@ distribute := README README.libm INSTALL FAQ FAQ.in NOTES NEWS BUGS \
|
|||||||
rellns-sh config.sub config.guess \
|
rellns-sh config.sub config.guess \
|
||||||
mkinstalldirs move-if-change install-sh \
|
mkinstalldirs move-if-change install-sh \
|
||||||
test-installation.pl gen-FAQ.pl versions.awk\
|
test-installation.pl gen-FAQ.pl versions.awk\
|
||||||
gen-sorted.awk)
|
gen-sorted.awk abi-versions.awk \
|
||||||
|
firstversions.awk)
|
||||||
|
|
||||||
distribute := $(strip $(distribute))
|
distribute := $(strip $(distribute))
|
||||||
generated := $(generated) stubs.h
|
generated := $(generated) stubs.h
|
||||||
|
@ -74,7 +74,5 @@ sys/user.h
|
|||||||
sys/vt.h
|
sys/vt.h
|
||||||
xstatconv.c
|
xstatconv.c
|
||||||
getdents64.c
|
getdents64.c
|
||||||
getresuid.c
|
|
||||||
getresgid.c
|
|
||||||
umount.S
|
umount.S
|
||||||
umount2.S
|
umount2.S
|
||||||
|
@ -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);
|
|
@ -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); \
|
|
||||||
}
|
|
@ -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);
|
|
@ -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); \
|
|
||||||
}
|
|
@ -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
|
|
@ -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
|
|
Loading…
Reference in New Issue
Block a user