diff options
-rw-r--r-- | ChangeLog | 14 | ||||
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/Dist | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/alpha/init-first.h | 27 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/arm/init-first.h | 55 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/mips/init-first.h | 51 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/init-first.h | 27 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h | 96 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc64/init-first.h | 91 |
9 files changed, 16 insertions, 350 deletions
@@ -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. @@ -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 diff --git a/sysdeps/unix/sysv/linux/Dist b/sysdeps/unix/sysv/linux/Dist index 06754f8..3d9a649 100644 --- a/sysdeps/unix/sysv/linux/Dist +++ b/sysdeps/unix/sysv/linux/Dist @@ -74,7 +74,5 @@ sys/user.h sys/vt.h xstatconv.c getdents64.c -getresuid.c -getresgid.c umount.S umount2.S diff --git a/sysdeps/unix/sysv/linux/alpha/init-first.h b/sysdeps/unix/sysv/linux/alpha/init-first.h deleted file mode 100644 index a3f5d8f..0000000 --- a/sysdeps/unix/sysv/linux/alpha/init-first.h +++ /dev/null @@ -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); diff --git a/sysdeps/unix/sysv/linux/arm/init-first.h b/sysdeps/unix/sysv/linux/arm/init-first.h deleted file mode 100644 index d68c368..0000000 --- a/sysdeps/unix/sysv/linux/arm/init-first.h +++ /dev/null @@ -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); \ -} diff --git a/sysdeps/unix/sysv/linux/mips/init-first.h b/sysdeps/unix/sysv/linux/mips/init-first.h deleted file mode 100644 index d8c2f38..0000000 --- a/sysdeps/unix/sysv/linux/mips/init-first.h +++ /dev/null @@ -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); diff --git a/sysdeps/unix/sysv/linux/powerpc/init-first.h b/sysdeps/unix/sysv/linux/powerpc/init-first.h deleted file mode 100644 index df70238..0000000 --- a/sysdeps/unix/sysv/linux/powerpc/init-first.h +++ /dev/null @@ -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); \ -} diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h b/sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h deleted file mode 100644 index 384c5c2..0000000 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h +++ /dev/null @@ -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 diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/init-first.h b/sysdeps/unix/sysv/linux/sparc/sparc64/init-first.h deleted file mode 100644 index ece284a..0000000 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/init-first.h +++ /dev/null @@ -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 |