Fixed -init, -fini linker options.
authorCupertino Miranda <cmiranda@synopsys.com>
Tue, 19 Jul 2016 12:33:34 +0000 (14:33 +0200)
committerCupertino Miranda <cmiranda@synopsys.com>
Fri, 26 Aug 2016 10:09:17 +0000 (12:09 +0200)
ARC was overloading this options by forcing DT_INIT AND DT_FINI
to always point to _init and _fini, respectively.

bfd/ChangeLog:

Cupertino Miranda  <cmiranda@synospsys.com>

* elf32-arc.c (elf_arc_finish_dynamic_sections): Changed.

bfd/ChangeLog
bfd/elf32-arc.c

index 1ce5ab1c9ab54707face2b7c62eb39e06860a279..169b8b5e270fec6fcce37b48505eca59cdcd713d 100644 (file)
@@ -1,3 +1,7 @@
+2016-08-26  Cupertino Miranda  <cmiranda@synospsys.com>
+
+       * elf32-arc.c (elf_arc_finish_dynamic_sections): Changed.
+
 2016-08-26  Cupertino Miranda  <cmiranda@synopsys.com>
 
        * elf-bfd.h: Added ARC_ELF_DATA to enum elf_target_id.
index 22aca81e1e078a8106dece477ec5c86cd5b9a59d..5ba170e7fa69dc0fed690123ee6b8335206223e5 100644 (file)
@@ -2227,8 +2227,8 @@ elf_arc_finish_dynamic_sections (bfd * output_bfd,
 
          switch (internal_dyn.d_tag)
            {
-             GET_SYMBOL_OR_SECTION (DT_INIT, "_init", NULL)
-             GET_SYMBOL_OR_SECTION (DT_FINI, "_fini", NULL)
+             GET_SYMBOL_OR_SECTION (DT_INIT, info->init_function, NULL)
+             GET_SYMBOL_OR_SECTION (DT_FINI, info->fini_function, NULL)
              GET_SYMBOL_OR_SECTION (DT_PLTGOT, NULL, ".plt")
              GET_SYMBOL_OR_SECTION (DT_JMPREL, NULL, ".rela.plt")
              GET_SYMBOL_OR_SECTION (DT_PLTRELSZ, NULL, ".rela.plt")
@@ -2376,8 +2376,8 @@ elf_arc_size_dynamic_sections (bfd * output_bfd,
         section.  Checking if the .init section is present.  We also
         create DT_INIT and DT_FINI entries if the init_str has been
         changed by the user.  */
-      ADD_DYNAMIC_SYMBOL ("init", DT_INIT);
-      ADD_DYNAMIC_SYMBOL ("fini", DT_FINI);
+      ADD_DYNAMIC_SYMBOL (info->init_function, DT_INIT);
+      ADD_DYNAMIC_SYMBOL (info->fini_function, DT_FINI);
     }
   else
     {