summaryrefslogtreecommitdiff
path: root/ld/emultempl/pe.em
diff options
context:
space:
mode:
authorKai Tietz <kai.tietz@onevision.com>2010-05-11 17:46:21 +0000
committerKai Tietz <kai.tietz@onevision.com>2010-05-11 17:46:21 +0000
commit9d643c721151d11c784f79b28fcb5382c0530c21 (patch)
tree0b2a96a735ddcaf91790a3366085a6802c2e8015 /ld/emultempl/pe.em
parentbb85746a79c8889e7e803847ffc77cd0c5d88839 (diff)
downloadbinutils-redhat-9d643c721151d11c784f79b28fcb5382c0530c21.tar.gz
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.
Diffstat (limited to 'ld/emultempl/pe.em')
-rw-r--r--ld/emultempl/pe.em44
1 files changed, 36 insertions, 8 deletions
diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em
index ec893b9e5e..a1c5771297 100644
--- a/ld/emultempl/pe.em
+++ b/ld/emultempl/pe.em
@@ -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)
{