mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-25 06:20:06 +00:00
Update.
2003-07-04 Jakub Jelinek <jakub@redhat.com> * sysdeps/s390/s390-32/elf/start.S: Emit position independent code if PIC. * sysdeps/s390/s390-64/elf/start.S: Likewise. 2003-07-07 Jakub Jelinek <jakub@redhat.com> * sysdeps/powerpc/powerpc64/elf/start.S: Put L(start_address) into .data.rel.ro.local section if PIC to avoid DT_TEXTREL.
This commit is contained in:
parent
d810b3584c
commit
57a5ea0215
11
ChangeLog
11
ChangeLog
@ -1,3 +1,14 @@
|
||||
2003-07-04 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* sysdeps/s390/s390-32/elf/start.S: Emit position independent code
|
||||
if PIC.
|
||||
* sysdeps/s390/s390-64/elf/start.S: Likewise.
|
||||
|
||||
2003-07-07 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* sysdeps/powerpc/powerpc64/elf/start.S: Put L(start_address)
|
||||
into .data.rel.ro.local section if PIC to avoid DT_TEXTREL.
|
||||
|
||||
2003-07-07 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/kernel-features.h: Version
|
||||
|
@ -1,3 +1,10 @@
|
||||
2003-07-04 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Use
|
||||
different symbol for the cancellation syscall wrapper and
|
||||
non-cancellation syscall wrapper.
|
||||
(PSEUDO_END): Define.
|
||||
|
||||
2003-07-05 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* sysdeps/alpha/elf/pt-initfini.c: Avoid .ent/.end.
|
||||
|
@ -38,6 +38,11 @@ ENTRY (name) \
|
||||
cmp.eq p6,p0=-1,r10; \
|
||||
(p6) br.cond.spnt.few __syscall_error; \
|
||||
ret;; \
|
||||
.endp name; \
|
||||
.proc __GC_##name; \
|
||||
.globl __GC_##name; \
|
||||
.hidden __GC_##name; \
|
||||
__GC_##name: \
|
||||
.Lpseudo_cancel: \
|
||||
.prologue; \
|
||||
.regstk args, 5, args, 0; \
|
||||
@ -62,12 +67,13 @@ ENTRY (name) \
|
||||
mov ar.pfs = loc0; \
|
||||
.Lpseudo_end: \
|
||||
ret; \
|
||||
.endp name; \
|
||||
.endp __GC_##name; \
|
||||
.section .gnu.linkonce.t.__syscall_error_##args, "ax"; \
|
||||
.align 32; \
|
||||
.proc __syscall_error_##args; \
|
||||
.global __syscall_error_##args; \
|
||||
.hidden __syscall_error_##args; \
|
||||
.size __syscall_error_##args, 64; \
|
||||
__syscall_error_##args: \
|
||||
.prologue; \
|
||||
.regstk args, 5, args, 0; \
|
||||
@ -82,6 +88,9 @@ __syscall_error_##args: \
|
||||
mov r8 = -1; \
|
||||
mov ar.pfs = loc0
|
||||
|
||||
#undef PSEUDO_END
|
||||
#define PSEUDO_END(name) .endp
|
||||
|
||||
# ifdef IS_IN_libpthread
|
||||
# define CENABLE br.call.sptk.many b0 = __pthread_enable_asynccancel
|
||||
# define CDISABLE br.call.sptk.many b0 = __pthread_disable_asynccancel
|
||||
|
@ -1,3 +1,10 @@
|
||||
2003-07-04 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Use
|
||||
different symbol for the cancellation syscall wrapper and
|
||||
non-cancellation syscall wrapper.
|
||||
(PSEUDO_END): Define.
|
||||
|
||||
2003-07-05 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* sysdeps/alpha/elf/pt-initfini.c: Avoid .ent/.end.
|
||||
|
@ -38,6 +38,11 @@ ENTRY (name) \
|
||||
cmp.eq p6,p0=-1,r10; \
|
||||
(p6) br.cond.spnt.few __syscall_error; \
|
||||
ret;; \
|
||||
.endp name; \
|
||||
.proc __GC_##name; \
|
||||
.globl __GC_##name; \
|
||||
.hidden __GC_##name; \
|
||||
__GC_##name: \
|
||||
.Lpseudo_cancel: \
|
||||
.prologue; \
|
||||
.regstk args, 5, args, 0; \
|
||||
@ -62,12 +67,13 @@ ENTRY (name) \
|
||||
mov ar.pfs = loc0; \
|
||||
.Lpseudo_end: \
|
||||
ret; \
|
||||
.endp name; \
|
||||
.endp __GC_##name; \
|
||||
.section .gnu.linkonce.t.__syscall_error_##args, "ax"; \
|
||||
.align 32; \
|
||||
.proc __syscall_error_##args; \
|
||||
.global __syscall_error_##args; \
|
||||
.hidden __syscall_error_##args; \
|
||||
.size __syscall_error_##args, 64; \
|
||||
__syscall_error_##args: \
|
||||
.prologue; \
|
||||
.regstk args, 5, args, 0; \
|
||||
@ -82,6 +88,9 @@ __syscall_error_##args: \
|
||||
mov r8 = -1; \
|
||||
mov ar.pfs = loc0
|
||||
|
||||
#undef PSEUDO_END
|
||||
#define PSEUDO_END(name) .endp
|
||||
|
||||
# ifdef IS_IN_libpthread
|
||||
# define CENABLE br.call.sptk.many b0 = __pthread_enable_asynccancel
|
||||
# define CDISABLE br.call.sptk.many b0 = __pthread_disable_asynccancel
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Startup code for programs linked with GNU libc. PowerPC64 version.
|
||||
Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998,1999,2000,2001,2002,2003 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
|
||||
@ -21,7 +21,11 @@
|
||||
#include "bp-sym.h"
|
||||
|
||||
/* These are the various addresses we require. */
|
||||
#ifdef PIC
|
||||
.section ".data.rel.ro.local"
|
||||
#else
|
||||
.section ".rodata"
|
||||
#endif
|
||||
.align 3
|
||||
L(start_addresses):
|
||||
.quad 0 /* was _SDA_BASE_ but not in 64-bit ABI*/
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Startup code compliant to the ELF s390 ABI.
|
||||
Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
|
||||
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
@ -66,19 +66,35 @@ _start:
|
||||
l %r6,.L2-.Llit(%r13) # load pointer to __libc_csu_fini
|
||||
l %r5,.L1-.Llit(%r13) # load pointer to __libc_csu_init
|
||||
l %r2,.L3-.Llit(%r13) # load pointer to main
|
||||
l %r1,.L4-.Llit(%r13) # load pointer to __libc_start_main
|
||||
#ifdef PIC
|
||||
l %r12,.L5-.Llit(%r13) # load .got pointer
|
||||
la %r6,0(%r13,%r6)
|
||||
la %r5,0(%r13,%r5)
|
||||
la %r2,0(%r13,%r2)
|
||||
la %r1,0(%r13,%r1)
|
||||
la %r12,0(%r13,%r12)
|
||||
#endif
|
||||
|
||||
/* ok, now branch to the libc main routine */
|
||||
l %r1,.L4-.Llit(%r13)
|
||||
basr %r14,%r1
|
||||
|
||||
/* crash if __libc_start_main returns */
|
||||
.word 0
|
||||
|
||||
.Llit:
|
||||
#ifndef PIC
|
||||
.L1: .long __libc_csu_init
|
||||
.L2: .long __libc_csu_fini
|
||||
.L3: .long main
|
||||
.L4: .long __libc_start_main
|
||||
#else
|
||||
.L1: .long __libc_csu_init-.Llit
|
||||
.L2: .long __libc_csu_fini-.Llit
|
||||
.L3: .long main-.Llit
|
||||
.L4: .long __libc_start_main@plt-.Llit
|
||||
.L5: .long _GLOBAL_OFFSET_TABLE_-.Llit
|
||||
#endif
|
||||
|
||||
/* FIXME: FPU flags or what ?!? */
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Startup code compliant to the 64 bit S/390 ELF ABI.
|
||||
Copyright (C) 2001, 2002 Free Software Foundation, Inc.
|
||||
Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
|
||||
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
@ -64,7 +64,11 @@ _start:
|
||||
larl %r2,main # load pointer to main
|
||||
|
||||
/* Ok, now branch to the libc main routine. */
|
||||
#ifdef PIC
|
||||
brasl %r14,__libc_start_main@plt
|
||||
#else
|
||||
brasl %r14,__libc_start_main
|
||||
#endif
|
||||
|
||||
/* Crash if __libc_start_main returns. */
|
||||
.word 0
|
||||
|
Loading…
Reference in New Issue
Block a user