]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
arm.c (arm_elf_asm_constructor): Remove ATTRIBUTE_UNUSED from priority argument.
authorPaul Brook <paul@codesourcery.com>
Thu, 2 Nov 2006 20:18:42 +0000 (20:18 +0000)
committerPaul Brook <pbrook@gcc.gnu.org>
Thu, 2 Nov 2006 20:18:42 +0000 (20:18 +0000)
2006-11-02  Paul Brook  <paul@codesourcery.com>

gcc/
* config/arm/arm.c (arm_elf_asm_constructor): Remove ATTRIBUTE_UNUSED
from priority argument.  Use different section for non-default
priority.
* config/arm/elf.h: Remove definition of SUPPORTS_INIT_PRIORITY.

From-SVN: r118425

gcc/ChangeLog
gcc/config/arm/arm.c
gcc/config/arm/elf.h

index 92b9048f93767e7b4e274f98561da858b9330e04..a88142b2b5277ef0f1fba02db6f4e951312042b4 100644 (file)
@@ -1,3 +1,11 @@
+2006-11-02  Paul Brook  <paul@codesourcery.com>
+
+       gcc/
+       * config/arm/arm.c (arm_elf_asm_constructor): Remove ATTRIBUTE_UNUSED
+       from priority argument.  Use different section for non-default
+       priority.
+       * config/arm/elf.h: Remove definition of SUPPORTS_INIT_PRIORITY.
+
 2006-11-02  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR other/29639
index 1d646c7269200d7e0331c308c9462c6b52495989..7c82fcf403636986aae949df6134c1fd273b0d3e 100644 (file)
@@ -11349,8 +11349,10 @@ arm_assemble_integer (rtx x, unsigned int size, int aligned_p)
 /* Add a function to the list of static constructors.  */
 
 static void
-arm_elf_asm_constructor (rtx symbol, int priority ATTRIBUTE_UNUSED)
+arm_elf_asm_constructor (rtx symbol, int priority)
 {
+  section *s;
+
   if (!TARGET_AAPCS_BASED)
     {
       default_named_section_asm_out_constructor (symbol, priority);
@@ -11358,7 +11360,16 @@ arm_elf_asm_constructor (rtx symbol, int priority ATTRIBUTE_UNUSED)
     }
 
   /* Put these in the .init_array section, using a special relocation.  */
-  switch_to_section (ctors_section);
+  if (priority != DEFAULT_INIT_PRIORITY)
+    {
+      char buf[18];
+      sprintf (buf, ".init_array.%.5u", priority);
+      s = get_section (buf, SECTION_WRITE, NULL_TREE);
+    }
+  else
+    s = ctors_section;
+
+  switch_to_section (s);
   assemble_align (POINTER_SIZE);
   fputs ("\t.word\t", asm_out_file);
   output_addr_const (asm_out_file, symbol);
index ae3d5338d8f85601544a3ab07457dc25e3305dac..03e57db8bf9117f70b6a45d77979ca754b534ce8 100644 (file)
     }                                                  \
   while (0)
 
-/* The EABI doesn't provide a way of implementing init_priority.  */
-#define SUPPORTS_INIT_PRIORITY (!TARGET_AAPCS_BASED)