This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
alpha crti/crtn fixlets
- From: Richard Henderson <rth at twiddle dot net>
- To: libc-alpha at gcc dot gnu dot org
- Date: Sat, 5 Jul 2003 15:58:34 -0700
- Subject: alpha crti/crtn fixlets
The assembler now automatically generates .eh_frame information
from mdebug frame directives. Which is normally cool, except
for the case of _init and _fini.
Committed.
r~
* sysdeps/alpha/elf/initfini.c: Avoid .ent/.end.
* linuxthreadssysdeps/alpha/elf/pt-initfini.c: Avoid .ent/.end.
Index: linuxthreads/sysdeps/alpha/elf/pt-initfini.c
===================================================================
RCS file: /cvs/glibc/libc/linuxthreads/sysdeps/alpha/elf/pt-initfini.c,v
retrieving revision 1.2
diff -c -p -d -r1.2 pt-initfini.c
*** linuxthreads/sysdeps/alpha/elf/pt-initfini.c 9 Feb 2002 01:56:09 -0000 1.2
--- linuxthreads/sysdeps/alpha/elf/pt-initfini.c 5 Jul 2003 22:53:48 -0000
*************** __asm__ (" \n\
*** 45,62 ****
/*@_init_PROLOG_BEGINS*/ \n\
.section .init, \"ax\", @progbits \n\
.globl _init \n\
! .ent _init \n\
_init: \n\
ldgp $29, 0($27) \n\
subq $30, 16, $30 \n\
stq $26, 0($30) \n\
stq $29, 8($30) \n\
- .prologue 1 \n\
jsr $26, __pthread_initialize_minimal \n\
ldq $29, 8($30) \n\
.align 3 \n\
- .end _init \n\
- .size _init, 0 \n\
/*@_init_PROLOG_ENDS*/ \n\
\n\
/*@_init_EPILOG_BEGINS*/ \n\
--- 45,60 ----
/*@_init_PROLOG_BEGINS*/ \n\
.section .init, \"ax\", @progbits \n\
.globl _init \n\
! .type _init,@function \n\
! .usepv _init,std \n\
_init: \n\
ldgp $29, 0($27) \n\
subq $30, 16, $30 \n\
stq $26, 0($30) \n\
stq $29, 8($30) \n\
jsr $26, __pthread_initialize_minimal \n\
ldq $29, 8($30) \n\
.align 3 \n\
/*@_init_PROLOG_ENDS*/ \n\
\n\
/*@_init_EPILOG_BEGINS*/ \n\
*************** _init: \n\
*** 70,76 ****
/*@_fini_PROLOG_BEGINS*/ \n\
.section .fini, \"ax\", @progbits \n\
.globl _fini \n\
! .ent _fini \n\
_fini: \n\
ldgp $29, 0($27) \n\
subq $30, 16, $30 \n\
--- 68,75 ----
/*@_fini_PROLOG_BEGINS*/ \n\
.section .fini, \"ax\", @progbits \n\
.globl _fini \n\
! .type _fini,@function \n\
! .usepv _fini,std \n\
_fini: \n\
ldgp $29, 0($27) \n\
subq $30, 16, $30 \n\
*************** _fini: \n\
*** 78,85 ****
stq $29, 8($30) \n\
.prologue 1 \n\
.align 3 \n\
- .end _fini \n\
- .size _fini, 0 \n\
/*@_fini_PROLOG_ENDS*/ \n\
\n\
/*@_fini_EPILOG_BEGINS*/ \n\
--- 77,82 ----
Index: sysdeps/alpha/elf/initfini.c
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/alpha/elf/initfini.c,v
retrieving revision 1.2
diff -c -p -d -r1.2 initfini.c
*** sysdeps/alpha/elf/initfini.c 9 Feb 2002 01:58:16 -0000 1.2
--- sysdeps/alpha/elf/initfini.c 5 Jul 2003 22:53:51 -0000
***************
*** 1,5 ****
/* Special .init and .fini section support for Alpha.
! 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
--- 1,5 ----
/* Special .init and .fini section support for Alpha.
! Copyright (C) 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
*************** __asm__ (" \n\
*** 45,65 ****
/*@_init_PROLOG_BEGINS*/ \n\
.section .init, \"ax\", @progbits \n\
.globl _init \n\
! .ent _init \n\
_init: \n\
ldgp $29, 0($27) \n\
subq $30, 16, $30 \n\
lda $27, __gmon_start__ \n\
stq $26, 0($30) \n\
stq $29, 8($30) \n\
- .prologue 1 \n\
beq $27, 1f \n\
jsr $26, ($27), __gmon_start__ \n\
ldq $29, 8($30) \n\
.align 3 \n\
1: \n\
- .end _init \n\
- .size _init, 0 \n\
/*@_init_PROLOG_ENDS*/ \n\
\n\
/*@_init_EPILOG_BEGINS*/ \n\
--- 45,63 ----
/*@_init_PROLOG_BEGINS*/ \n\
.section .init, \"ax\", @progbits \n\
.globl _init \n\
! .type _init, @function \n\
! .usepv _init, std \n\
_init: \n\
ldgp $29, 0($27) \n\
subq $30, 16, $30 \n\
lda $27, __gmon_start__ \n\
stq $26, 0($30) \n\
stq $29, 8($30) \n\
beq $27, 1f \n\
jsr $26, ($27), __gmon_start__ \n\
ldq $29, 8($30) \n\
.align 3 \n\
1: \n\
/*@_init_PROLOG_ENDS*/ \n\
\n\
/*@_init_EPILOG_BEGINS*/ \n\
*************** _init: \n\
*** 73,88 ****
/*@_fini_PROLOG_BEGINS*/ \n\
.section .fini, \"ax\", @progbits \n\
.globl _fini \n\
! .ent _fini \n\
_fini: \n\
ldgp $29, 0($27) \n\
subq $30, 16, $30 \n\
stq $26, 0($30) \n\
stq $29, 8($30) \n\
- .prologue 1 \n\
.align 3 \n\
- .end _fini \n\
- .size _fini, 0 \n\
/*@_fini_PROLOG_ENDS*/ \n\
\n\
/*@_fini_EPILOG_BEGINS*/ \n\
--- 71,84 ----
/*@_fini_PROLOG_BEGINS*/ \n\
.section .fini, \"ax\", @progbits \n\
.globl _fini \n\
! .type _fini,@function \n\
! .usepv _fini,std \n\
_fini: \n\
ldgp $29, 0($27) \n\
subq $30, 16, $30 \n\
stq $26, 0($30) \n\
stq $29, 8($30) \n\
.align 3 \n\
/*@_fini_PROLOG_ENDS*/ \n\
\n\
/*@_fini_EPILOG_BEGINS*/ \n\