diff options
author | Richard Henderson <rth@gcc.gnu.org> | 2000-04-29 14:12:45 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-04-29 14:12:45 -0700 |
commit | 10d1117cbc74ea64d22bbe75fb5f305a5d8948c1 (patch) | |
tree | 92828785a03a792d468d0a8add0eac5c7b304cad /gcc | |
parent | 5cebbd8de37bec65562d047500b13d93c6ad839f (diff) | |
download | gcc-10d1117cbc74ea64d22bbe75fb5f305a5d8948c1.zip gcc-10d1117cbc74ea64d22bbe75fb5f305a5d8948c1.tar.gz gcc-10d1117cbc74ea64d22bbe75fb5f305a5d8948c1.tar.bz2 |
crtend.asm: Use C comments instead of #.
* config/alpha/crtend.asm: Use C comments instead of #.
* config/alpha/crtbegin.asm: Likewise. Mark __dso_handle hidden.
* config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
From-SVN: r33537
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/alpha/crtbegin.asm | 140 | ||||
-rw-r--r-- | gcc/config/alpha/crtend.asm | 106 | ||||
-rw-r--r-- | gcc/config/alpha/elf.h | 3 |
3 files changed, 133 insertions, 116 deletions
diff --git a/gcc/config/alpha/crtbegin.asm b/gcc/config/alpha/crtbegin.asm index 4cc868d..cbeba99 100644 --- a/gcc/config/alpha/crtbegin.asm +++ b/gcc/config/alpha/crtbegin.asm @@ -1,42 +1,47 @@ - # Copyright (C) 1996, 1998 Free Software Foundation, Inc. - # Contributed by Richard Henderson (rth@tamu.edu) - # - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by the - # Free Software Foundation; either version 2, or (at your option) any - # later version. - # - # In addition to the permissions in the GNU General Public License, the - # Free Software Foundation gives you unlimited permission to link the - # compiled version of this file with other programs, and to distribute - # those programs without any restriction coming from the use of this - # file. (The General Public License restrictions do apply in other - # respects; for example, they cover modification of the file, and - # distribution when not linked into another program.) - # - # This file 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 - # General Public License for more details. - # - # You should have received a copy of the GNU General Public License - # along with this program; see the file COPYING. If not, write to - # the Free Software Foundation, 59 Temple Place - Suite 330, - # Boston, MA 02111-1307, USA. - # - # As a special exception, if you link this library with files - # compiled with GCC to produce an executable, this does not cause - # the resulting executable to be covered by the GNU General Public License. - # This exception does not however invalidate any other reasons why - # the executable file might be covered by the GNU General Public License. - - # - # Heads of the constructor/destructor lists. - # - - # The __*TOR_LIST__ symbols are not global because when this file is used - # in a shared library, we do not want the symbol to fall over to the - # application's lists. +/* + * Copyright (C) 1996, 1998, 2000 Free Software Foundation, Inc. + * Contributed by Richard Henderson (rth@tamu.edu) + * + * This file is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * In addition to the permissions in the GNU General Public License, the + * Free Software Foundation gives you unlimited permission to link the + * compiled version of this file with other programs, and to distribute + * those programs without any restriction coming from the use of this + * file. (The General Public License restrictions do apply in other + * respects; for example, they cover modification of the file, and + * distribution when not linked into another program.) + * + * This file 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + * As a special exception, if you link this library with files + * compiled with GCC to produce an executable, this does not cause + * the resulting executable to be covered by the GNU General Public License. + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + */ + +#include "auto-host.h" + + +/* + * Heads of the constructor/destructor lists. + */ + +/* The __*TOR_LIST__ symbols are not global because when this file is used + in a shared library, we do not want the symbol to fall over to the + application's lists. */ .section .ctors,"aw" @@ -53,29 +58,29 @@ __DTOR_LIST__: .section .eh_frame,"aw" __EH_FRAME_BEGIN__: - # - # Fragment of the ELF _fini routine that invokes our dtor cleanup. - # +/* + * Fragment of the ELF _fini routine that invokes our dtor cleanup. + */ .section .fini,"ax" - # Since the bits of the _fini function are spread across many - # object files, each potentially with its own GP, we must - # assume we need to load ours. Further, our .fini section - # can easily be more than 4MB away from our .text bits so we - # can't use bsr. + /* Since the bits of the _fini function are spread across many + object files, each potentially with its own GP, we must + assume we need to load ours. Further, our .fini section + can easily be more than 4MB away from our .text bits so we + can't use bsr. */ br $29,1f 1: ldgp $29,0($29) jsr $26,__do_global_dtors_aux - # Must match the alignment we got from crti.o else we get - # zero-filled holes in our _fini function and then SIGILL. + /* Must match the alignment we got from crti.o else we get + zero-filled holes in our _fini function and then SIGILL. */ .align 3 - # - # Fragment of the ELF _init routine that sets up the frame info. - # +/* + * Fragment of the ELF _init routine that sets up the frame info. + */ .section .init,"ax" br $29,1f @@ -83,19 +88,25 @@ __EH_FRAME_BEGIN__: jsr $26,__do_frame_setup .align 3 - # - # Invoke our destructors in order. - # +/* + * Invoke our destructors in order. + */ .section .sdata - # Support recursive calls to exit. +/* Support recursive calls to exit. */ .type dtor_ptr,@object .size dtor_ptr,8 dtor_ptr: .quad __DTOR_LIST__ + 8 - # A globally unique widget for c++ local destructors to hang off. +/* A globally unique widget for c++ local destructors to hang off. + + This has a unique value in every dso; in the main program its + value is zero. The object should be protected. This means the + instance in any dso or the main program is not used in any other + dso. The dynamic linker takes care of this. */ + .global __dso_handle .type __dso_handle,@object .size __dso_handle,8 @@ -110,6 +121,9 @@ __dso_handle: __dso_handle: .zero 8 #endif +#ifdef HAVE_GAS_HIDDEN + .hidden __dso_handle +#endif .text @@ -126,7 +140,7 @@ __do_global_dtors_aux: .prologue 1 #ifdef SHARED - # Do c++ local destructors. + /* Do c++ local destructors. */ lda $1,__cxa_finalize beq $1,0f lda $16,__dso_handle @@ -144,7 +158,7 @@ __do_global_dtors_aux: addq $1,8,$1 bne $27,1b - # Remove our frame info. + /* Remove our frame info. */ lda $1,__deregister_frame_info beq $1,3f lda $16,__EH_FRAME_BEGIN__ @@ -158,11 +172,11 @@ __do_global_dtors_aux: .end __do_global_dtors_aux - # - # Install our frame info. - # +/* + * Install our frame info. + */ - # ??? How can we rationally keep this size correct? +/* ??? How can we rationally keep this size correct? */ .section .bss .type frame_object,@object diff --git a/gcc/config/alpha/crtend.asm b/gcc/config/alpha/crtend.asm index d6eb406..662eb22 100644 --- a/gcc/config/alpha/crtend.asm +++ b/gcc/config/alpha/crtend.asm @@ -1,42 +1,44 @@ - # Copyright (C) 1996 Free Software Foundation, Inc. - # Contributed by Richard Henderson (rth@tamu.edu) - # - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by the - # Free Software Foundation; either version 2, or (at your option) any - # later version. - # - # In addition to the permissions in the GNU General Public License, the - # Free Software Foundation gives you unlimited permission to link the - # compiled version of this file with other programs, and to distribute - # those programs without any restriction coming from the use of this - # file. (The General Public License restrictions do apply in other - # respects; for example, they cover modification of the file, and - # distribution when not linked into another program.) - # - # This file 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 - # General Public License for more details. - # - # You should have received a copy of the GNU General Public License - # along with this program; see the file COPYING. If not, write to - # the Free Software Foundation, 59 Temple Place - Suite 330, - # Boston, MA 02111-1307, USA. - # - # As a special exception, if you link this library with files - # compiled with GCC to produce an executable, this does not cause - # the resulting executable to be covered by the GNU General Public License. - # This exception does not however invalidate any other reasons why - # the executable file might be covered by the GNU General Public License. - - # - # Tails of the constructor/destructor lists. - # - - # The __*TOR_END__ symbols are not global because when this file is used - # in a shared library, we do not want the symbol to fall over to the - # application's lists. +/* + * Copyright (C) 1996, 2000 Free Software Foundation, Inc. + * Contributed by Richard Henderson (rth@tamu.edu) + * + * This file is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * In addition to the permissions in the GNU General Public License, the + * Free Software Foundation gives you unlimited permission to link the + * compiled version of this file with other programs, and to distribute + * those programs without any restriction coming from the use of this + * file. (The General Public License restrictions do apply in other + * respects; for example, they cover modification of the file, and + * distribution when not linked into another program.) + * + * This file 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 + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + * As a special exception, if you link this library with files + * compiled with GCC to produce an executable, this does not cause + * the resulting executable to be covered by the GNU General Public License. + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + */ + +/* + * Tails of the constructor/destructor lists. + */ + +/* The __*TOR_END__ symbols are not global because when this file is used + in a shared library, we do not want the symbol to fall over to the + application's lists. */ .section .ctors,"aw" @@ -54,29 +56,29 @@ __DTOR_END__: __FRAME_END__: .quad 0 - # - # Fragment of the ELF _init routine that invokes our ctor startup - # +/* + * Fragment of the ELF _init routine that invokes our ctor startup + */ .section .init,"ax" - # Since the bits of the _init function are spread across many - # object files, each potentially with its own GP, we must - # assume we need to load ours. Further, our .init section - # can easily be more than 4MB away from our .text bits so we - # can't use bsr. + /* Since the bits of the _init function are spread across many + object files, each potentially with its own GP, we must + assume we need to load ours. Further, our .init section + can easily be more than 4MB away from our .text bits so we + can't use bsr. */ br $29,1f 1: ldgp $29,0($29) jsr $26,__do_global_ctors_aux - # Must match the alignment we got from crti.o else we get - # zero-filled holes in our _init function and thense SIGILL. + /* Must match the alignment we got from crti.o else we get + zero-filled holes in our _init function and thense SIGILL. */ .align 3 - # - # Invoke our destructors in order. - # +/* + * Invoke our constructors in order. + */ .text diff --git a/gcc/config/alpha/elf.h b/gcc/config/alpha/elf.h index 227c386..f67deca 100644 --- a/gcc/config/alpha/elf.h +++ b/gcc/config/alpha/elf.h @@ -338,7 +338,8 @@ void FN () \ else \ data_section (); \ } \ - else if (TREE_CODE (DECL) == VAR_DECL) \ + else if (TREE_CODE (DECL) == VAR_DECL \ + || TREE_CODE (DECL) == CONSTRUCTOR) \ { \ if ((flag_pic && RELOC) \ || !TREE_READONLY (DECL) || TREE_SIDE_EFFECTS (DECL) \ |