* elf/Makefile (tests): Uncomment tst-array[123].
* Makeconfig (CPPFLAGS-.oS): Add -DLIBC_NONSHARED=1.
* csu/elf-init.c: New file.
* csu/Makefile (routines, static-only-routines): Add elf-init.
* sysdeps/alpha/elf/start.S: Use __libc_csu_init in place of _init
and __libc_csu_fini in place of _fini.
* sysdeps/arm/elf/start.S: Likewise.
* sysdeps/cris/elf/start.S: Likewise.
* sysdeps/hppa/elf/start.S: Likewise.
* sysdeps/i386/elf/start.S: Likewise.
* sysdeps/ia64/elf/start.S: Likewise.
* sysdeps/m68k/elf/start.S: Likewise.
* sysdeps/mach/hurd/powerpc/static-start.S: Likewise.
* sysdeps/mips/elf/start.S: Likewise.
* sysdeps/powerpc/powerpc32/elf/start.S: Likewise.
* sysdeps/powerpc/powerpc64/elf/start.S: Likewise.
* sysdeps/s390/s390-32/elf/start.S: Likewise.
* sysdeps/s390/s390-64/elf/start.S: Likewise.
* sysdeps/sh/elf/start.S: Likewise.
* sysdeps/sparc/sparc32/elf/start.S: Likewise.
* sysdeps/sparc/sparc64/elf/start.S: Likewise.
* sysdeps/x86_64/elf/start.S: Likewise.
/* Startup code for Alpha/ELF.
- Copyright (C) 1993,1995,1996,1997,1998,2000,2001 Free Software Foundation, Inc.
+ Copyright (C) 1993,1995,1996,1997,1998,2000,2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>
lda a2, 24(sp) /* get argv */
/* Load address of our own entry points to .fini and .init. */
- lda a3, _init
- lda a4, _fini
+ lda a3, __libc_csu_init
+ lda a4, __libc_csu_fini
/* Store address of the shared library termination function. */
mov v0, a5
/* Startup code for ARM & ELF
- Copyright (C) 1995, 1996, 1997, 1998, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1995, 1996, 1997, 1998, 2001, 2002 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
/* Push the last arguments to main() onto the stack */
stmfd sp!, {a1}
- ldr a1, =_fini
+ ldr a1, =__libc_csu_fini
stmfd sp!, {a1}
/* Set up the other arguments for main() that go in registers */
ldr a1, =main
- ldr a4, =_init
+ ldr a4, =__libc_csu_init
/* __libc_start_main (main, argc, argv, init, fini, rtld_fini) */
/* Startup code compliant to the ELF CRIS ABI (to-be-written).
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002 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
move.d pc,r0
sub.d .:GOTOFF,r0
- move.d _init:PLTG,r13
+ move.d __libc_csu_init:PLTG,r13
add.d r0,r13
- move.d _fini:PLTG,r9
+ move.d __libc_csu_fini:PLTG,r9
add.d r0,r9
move.d main:PLTG,r10
add.d r0,r10
#else
- move.d _init,r13
- move.d _fini,r9
+ move.d __libc_csu_init,r13
+ move.d __libc_csu_fini,r9
move.d main,r10
#endif
push r9
+/* ELF startup code for HPPA.
+ Copyright (C) 2002 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 Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
.text
.import main, code
.import $global$, data
.import __libc_start_main, code
- .import _fini, code
- .import _init, code
+ .import __libc_csu_fini, code
+ .import __libc_csu_init, code
-
-
-
.globl _start
.export _start, ENTRY
.type _start,@function
/* Expand the stack to store the 5th through 7th args */
ldo 64(%sp), %sp
-
+
/* void (*rtld_fini) (void) (actually the 6th arg) */
stw %r23, -56(%sp)
-
+
/* void (*init) (void) */
- ldil LP%_init, %r23
- ldo RP%_init(%r23), %r23
+ ldil LP%__libc_csu_init, %r23
+ ldo RP%__libc_csu_init(%r23), %r23
/* void (*fini) (void) */
- ldil LP%_fini, %r22
- ldo RP%_fini(%r22), %r22
+ ldil LP%__libc_csu_fini, %r22
+ ldo RP%__libc_csu_fini(%r22), %r22
stw %r22, -52(%sp)
/* void *stack_end */
/* Startup code compliant to the ELF m68k ABI.
- Copyright (C) 1996, 1997, 1998, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1996, 1997, 1998, 2001, 2002 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
/* Push the address of our own entry points to `.fini' and
`.init'. */
- pea _fini
- pea _init
+ pea __libc_csu_fini
+ pea __libc_csu_init
pea (%a0) /* Push second argument: argv. */
move.l %d0, -(%sp) /* Push first argument: argc. */
the stack is aligned to double words (8 bytes). */
and $29, 0xfffffff8
subu $29, 32
- la $7, _init /* init */
- la $8, _fini
+ la $7, __libc_csu_init /* init */
+ la $8, __libc_csu_fini
sw $8, 16($29) /* fini */
sw $2, 20($29) /* rtld_fini */
sw $29, 24($29) /* stack_end */