This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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\


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]