2010-05-11 Kai Tietz <kai.tietz@onevision.com>
authorKai Tietz <kai.tietz@onevision.com>
Tue, 11 May 2010 17:46:22 +0000 (17:46 +0000)
committerKai Tietz <kai.tietz@onevision.com>
Tue, 11 May 2010 17:46:22 +0000 (17:46 +0000)
        * emultempl/pe.em (gld_${EMULATION_NAME}_before_parse):
        Initialize pe(p)_leading_underscore variable.
        (set_pe_name): Likewise.
        * emultempl/pep.em: Likewise.
        Additional change default to non-underscore for
        pep_leading_underscore equal to -1.

ld/ChangeLog
ld/emultempl/pe.em
ld/emultempl/pep.em

index 0accc60b4fcc1d90f1471efc2f8eb1c8ebf8a710..7fa12d771c340802f258072e23323bbdbeddbfb1 100644 (file)
@@ -1,3 +1,12 @@
+2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
+
+       * emultempl/pe.em (gld_${EMULATION_NAME}_before_parse):
+       Initialize pe(p)_leading_underscore variable.
+       (set_pe_name): Likewise.
+       * emultempl/pep.em: Likewise.
+       Additional change default to non-underscore for
+       pep_leading_underscore equal to -1.
+
 2010-05-07  Tristan Gingold  <gingold@adacore.com>
 
        * Makefile.in: Regenerate with automake 1.11.1.
index ec893b9e5e4836674aeb396cdde8d1d9115ccac3..a1c5771297c13ea8c97954d912e627d95ed305c4 100644 (file)
@@ -145,6 +145,17 @@ extern const char *output_filename;
 static void
 gld_${EMULATION_NAME}_before_parse (void)
 {
+  int u;
+  /* Now we check target's default for getting proper symbol_char.  */
+  u = pe_leading_underscore;
+  if (u == -1
+      && !bfd_get_target_info ("${OUTPUT_FORMAT}", NULL, NULL, &u, NULL))
+    bfd_get_target_info ("${RELOCATEABLE_OUTPUT_FORMAT}", NULL, NULL, &u, NULL);
+
+  if (u == -1)
+    abort ();
+  pe_leading_underscore = u;
+
   ldfile_set_output_arch ("${OUTPUT_ARCH}", bfd_arch_`echo ${ARCH} | sed -e 's/:.*//'`);
   output_filename = "${EXECUTABLE_NAME:-a.exe}";
 #ifdef DLL_SUPPORT
@@ -463,7 +474,17 @@ gld_${EMULATION_NAME}_list_options (FILE *file)
 static void
 set_pe_name (char *name, long val)
 {
-  int i;
+  int i, u;
+
+  /* Now we check target's default for getting proper symbol_char.  */
+  u = pe_leading_underscore;
+  if (u == -1
+      && !bfd_get_target_info ("${OUTPUT_FORMAT}", NULL, NULL, &u, NULL))
+    bfd_get_target_info ("${RELOCATEABLE_OUTPUT_FORMAT}", NULL, NULL, &u, NULL);
+
+  if (u == -1)
+    abort ();
+  pe_leading_underscore = u;
 
   /* Find the name and set it.  */
   for (i = 0; init[i].ptr; i++)
@@ -530,15 +551,13 @@ set_entry_point (void)
 
   /* Now we check target's default for getting proper symbol_char.  */
   u = pe_leading_underscore;
-  if (u == -1 && !bfd_get_target_info ("${OUTPUT_FORMAT}", NULL, NULL, &u, NULL))
+  if (u == -1
+      && !bfd_get_target_info ("${OUTPUT_FORMAT}", NULL, NULL, &u, NULL))
     bfd_get_target_info ("${RELOCATEABLE_OUTPUT_FORMAT}", NULL, NULL, &u, NULL);
 
-  if (u == 0)
-    initial_symbol_char = "";
-  else if (u != -1)
-    initial_symbol_char = "_";
-  else
+  if (u == -1)
     abort ();
+  initial_symbol_char = (u == 1 ? "_" : "");
   pe_leading_underscore = u;
 
   if (*initial_symbol_char != '\0')
@@ -896,7 +915,16 @@ gld_${EMULATION_NAME}_set_symbols (void)
 {
   /* Run through and invent symbols for all the
      names and insert the defaults.  */
-  int j;
+  int j, u;
+  /* Now we check target's default for getting proper symbol_char.  */
+  u = pe_leading_underscore;
+  if (u == -1
+      && !bfd_get_target_info ("${OUTPUT_FORMAT}", NULL, NULL, &u, NULL))
+    bfd_get_target_info ("${RELOCATEABLE_OUTPUT_FORMAT}", NULL, NULL, &u, NULL);
+
+  if (u == -1)
+    abort ();
+  pe_leading_underscore = u;
 
   if (!init[IMAGEBASEOFF].inited)
     {
index a315fd6343cc92afebc7606d06bce5d2b286f645..a5b64644769366f9fc05667de1520076dcd85bab 100644 (file)
@@ -118,6 +118,17 @@ extern const char *output_filename;
 static void
 gld_${EMULATION_NAME}_before_parse (void)
 {
+  int u;
+  /* Now we check target's default for getting proper symbol_char.  */
+  u = pep_leading_underscore;
+  if (u == -1
+      && !bfd_get_target_info ("${OUTPUT_FORMAT}", NULL, NULL, &u, NULL))
+    bfd_get_target_info ("${RELOCATEABLE_OUTPUT_FORMAT}", NULL, NULL, &u, NULL);
+
+  if (u == -1)
+    abort ();
+  pep_leading_underscore = u;
+
   ldfile_set_output_arch ("${OUTPUT_ARCH}", bfd_arch_`echo ${ARCH} | sed -e 's/:.*//'`);
   output_filename = "${EXECUTABLE_NAME:-a.exe}";
 #ifdef DLL_SUPPORT
@@ -286,16 +297,16 @@ typedef struct
 
 #define GET_INIT_SYMBOL_NAME(IDX) \
   (init[(IDX)].symbol \
-  + ((init[(IDX)].is_c_symbol == FALSE || pep_leading_underscore != 0) ? 0 : 1))
+  + ((init[(IDX)].is_c_symbol == FALSE || pep_leading_underscore == 1) ? 0 : 1))
 
 /* Decorates the C visible symbol by underscore, if target requires.  */
 #define U(CSTR) \
-  (pep_leading_underscore == 0 ? CSTR : "_" CSTR)
+  (pep_leading_underscore != 1 ? CSTR : "_" CSTR)
 
 /* Get size of constant string for a possible underscore prefixed
    C visible symbol.  */
 #define U_SIZE(CSTR) \
-  (sizeof (CSTR) + pep_leading_underscore == 0 ? 0 : 1)
+  (sizeof (CSTR) + pep_leading_underscore == 1 ? 0 : 1)
 
 #define D(field,symbol,def,usc)  {&pep.field,sizeof(pep.field), def, symbol,0, usc}
 
@@ -400,7 +411,17 @@ gld_${EMULATION_NAME}_list_options (FILE *file)
 static void
 set_pep_name (char *name, bfd_vma val)
 {
-  int i;
+  int i, u;
+
+  /* Now we check target's default for getting proper symbol_char.  */
+  u = pep_leading_underscore;
+  if (u == -1
+      && !bfd_get_target_info ("${OUTPUT_FORMAT}", NULL, NULL, &u, NULL))
+    bfd_get_target_info ("${RELOCATEABLE_OUTPUT_FORMAT}", NULL, NULL, &u, NULL);
+
+  if (u == -1)
+    abort ();
+  pep_leading_underscore = u;
 
   /* Find the name and set it.  */
   for (i = 0; init[i].ptr; i++)
@@ -462,15 +483,13 @@ set_entry_point (void)
 
   /* Now we check target's default for getting proper symbol_char.  */
   u = pep_leading_underscore;
-  if (u == -1 && !bfd_get_target_info ("${OUTPUT_FORMAT}", NULL, NULL, &u, NULL))
+  if (u == -1
+      && !bfd_get_target_info ("${OUTPUT_FORMAT}", NULL, NULL, &u, NULL))
     bfd_get_target_info ("${RELOCATEABLE_OUTPUT_FORMAT}", NULL, NULL, &u, NULL);
 
-  if (u == 0)
-    initial_symbol_char = "";
-  else if (u != -1)
-    initial_symbol_char = "_";
-  else
+  if (u == -1)
     abort ();
+  initial_symbol_char = (u == 1 ? "_" : "");
   pep_leading_underscore = u;
 
   if (*initial_symbol_char != '\0')
@@ -821,7 +840,16 @@ gld_${EMULATION_NAME}_set_symbols (void)
 {
   /* Run through and invent symbols for all the
      names and insert the defaults.  */
-  int j;
+  int j, u;
+  /* Now we check target's default for getting proper symbol_char.  */
+  u = pep_leading_underscore;
+  if (u == -1
+      && !bfd_get_target_info ("${OUTPUT_FORMAT}", NULL, NULL, &u, NULL))
+    bfd_get_target_info ("${RELOCATEABLE_OUTPUT_FORMAT}", NULL, NULL, &u, NULL);
+
+  if (u == -1)
+    abort ();
+  pep_leading_underscore = u;
 
   if (!init[IMAGEBASEOFF].inited)
     {