]> gcc.gnu.org Git - gcc.git/commitdiff
elf.h (CTOR_SECTION_NAME, [...]): New macros define the name of CTOR and DTOR sections.
authorChris Demetriou <cgd@sibyte.com>
Fri, 11 Aug 2000 03:18:05 +0000 (03:18 +0000)
committerJeff Law <law@gcc.gnu.org>
Fri, 11 Aug 2000 03:18:05 +0000 (21:18 -0600)
        * mips/elf.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME): New
macros define the name of CTOR and DTOR sections.
(CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
DTOR_LIST_END): Change to use attributes to specify
sections.
        * mips/elf64.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME,
(CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
DTOR_LIST_END): Same as in mips/elf.h.

From-SVN: r35618

gcc/ChangeLog
gcc/config/mips/elf.h
gcc/config/mips/elf64.h

index 570ba13601d0f7cd903f55d0cfa7e310111c8223..69d87c1c01f9da476d54ede21e78deb36836205a 100644 (file)
@@ -1,3 +1,14 @@
+2000-08-10  Chris Demetriou  <cgd@sibyte.com>
+
+       * mips/elf.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME): New
+       macros define the name of CTOR and DTOR sections.
+       (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
+       DTOR_LIST_END): Change to use attributes to specify
+       sections.
+       * mips/elf64.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME,
+       (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
+       DTOR_LIST_END): Same as in mips/elf.h.
+
 2000-08-10  Drew Moseley  <dmoseley@redhat.com>
 
        * config/mn10300/mn10300.h: Added no-crt0 option for explicitly
index 561735540c6578cd9300862385fd431d3f1c79c0..8e6907e09636e7cc83483e2e4d554ce6644a42fe 100644 (file)
@@ -275,7 +275,8 @@ do {                                                                           \
 
 /* Support the ctors/dtors and other sections.  */
  
-/* Define the pseudo-ops used to switch to the .ctors and .dtors sections.
+/* Define the names of and pseudo-ops used to switch to the .ctors and
+   .dtors sections.
  
    Note that we want to give these sections the SHF_WRITE attribute
    because these sections will actually contain data (i.e. tables of
@@ -290,7 +291,9 @@ do {                                                                           \
    errors unless the .ctors and .dtors sections are marked as writable
    via the SHF_WRITE attribute.)  */
 
+#define CTORS_SECTION_NAME      ".ctors"
 #define CTORS_SECTION_ASM_OP    "\t.section\t.ctors,\"aw\""
+#define DTORS_SECTION_NAME      ".dtors"
 #define DTORS_SECTION_ASM_OP    "\t.section\t.dtors,\"aw\""
  
 /* There's no point providing a default definition of __CTOR_LIST__
@@ -345,21 +348,21 @@ void FN ()                                                            \
     fprintf (FILE, "\n");                                             \
   } while (0)
 
-#define CTOR_LIST_BEGIN                                 \
-asm (CTORS_SECTION_ASM_OP);                             \
-func_ptr __CTOR_LIST__ = (func_ptr) (-1)
+#define CTOR_LIST_BEGIN                                               \
+func_ptr __CTOR_LIST__ __attribute__((section(CTORS_SECTION_NAME))) = \
+  (func_ptr) (-1)
  
-#define CTOR_LIST_END                                   \
-asm (CTORS_SECTION_ASM_OP);                             \
-func_ptr __CTOR_END__ = (func_ptr) 0
+#define CTOR_LIST_END                                                 \
+func_ptr __CTOR_END__ __attribute__((section(CTORS_SECTION_NAME))) =  \
+  (func_ptr) 0
  
-#define DTOR_LIST_BEGIN                                 \
-asm (DTORS_SECTION_ASM_OP);                             \
-func_ptr __DTOR_LIST__ = (func_ptr) (-1)
+#define DTOR_LIST_BEGIN                                               \
+func_ptr __DTOR_LIST__ __attribute__((section(DTORS_SECTION_NAME))) = \
+  (func_ptr) (-1)
 
-#define DTOR_LIST_END                                   \
-asm (DTORS_SECTION_ASM_OP);                             \
-func_ptr __DTOR_END__ = (func_ptr) 0
+#define DTOR_LIST_END                                                 \
+func_ptr __DTOR_END__ __attribute__((section(DTORS_SECTION_NAME))) =  \
+  (func_ptr) 0
 
 /* Don't set the target flags, this is done by the linker script */
 #undef LIB_SPEC
index 882975844cc0381242a335aa0899e815424c8715..b6015f594ac48cb5833c61b553a27a4b2ed543a8 100644 (file)
@@ -256,7 +256,8 @@ do {                                                                           \
 
 /* Support the ctors/dtors and other sections.  */
  
-/* Define the pseudo-ops used to switch to the .ctors and .dtors sections.
+/* Define the names of and pseudo-ops used to switch to the .ctors and
+   .dtors sections.
  
    Note that we want to give these sections the SHF_WRITE attribute
    because these sections will actually contain data (i.e. tables of
@@ -271,7 +272,9 @@ do {                                                                           \
    errors unless the .ctors and .dtors sections are marked as writable
    via the SHF_WRITE attribute.)  */
 
+#define CTORS_SECTION_NAME      ".ctors"
 #define CTORS_SECTION_ASM_OP    "\t.section\t.ctors,\"aw\""
+#define DTORS_SECTION_NAME      ".dtors"
 #define DTORS_SECTION_ASM_OP    "\t.section\t.dtors,\"aw\""
  
 /* There's no point providing a default definition of __CTOR_LIST__
@@ -325,21 +328,21 @@ void FN ()                                                            \
     fprintf (FILE, "\n");                                             \
   } while (0)
 
-#define CTOR_LIST_BEGIN                                 \
-asm (CTORS_SECTION_ASM_OP);                             \
-func_ptr __CTOR_LIST__ = (func_ptr) (-1)
+#define CTOR_LIST_BEGIN                                               \
+func_ptr __CTOR_LIST__ __attribute__((section(CTORS_SECTION_NAME))) = \
+  (func_ptr) (-1)
  
-#define CTOR_LIST_END                                   \
-asm (CTORS_SECTION_ASM_OP);                             \
-func_ptr __CTOR_END__ = (func_ptr) 0
+#define CTOR_LIST_END                                                 \
+func_ptr __CTOR_END__ __attribute__((section(CTORS_SECTION_NAME))) =  \
+  (func_ptr) 0
  
-#define DTOR_LIST_BEGIN                                 \
-asm (DTORS_SECTION_ASM_OP);                             \
-func_ptr __DTOR_LIST__ = (func_ptr) (-1)
+#define DTOR_LIST_BEGIN                                               \
+func_ptr __DTOR_LIST__ __attribute__((section(DTORS_SECTION_NAME))) = \
+  (func_ptr) (-1)
 
-#define DTOR_LIST_END                                   \
-asm (DTORS_SECTION_ASM_OP);                             \
-func_ptr __DTOR_END__ = (func_ptr) 0
+#define DTOR_LIST_END                                                 \
+func_ptr __DTOR_END__ __attribute__((section(DTORS_SECTION_NAME))) =  \
+  (func_ptr) 0
 
 /* Don't set the target flags, this is done by the linker script */
 #undef LIB_SPEC
This page took 0.080479 seconds and 5 git commands to generate.