diff options
author | Kai Tietz <kai.tietz@onevision.com> | 2010-05-11 17:46:21 +0000 |
---|---|---|
committer | Kai Tietz <kai.tietz@onevision.com> | 2010-05-11 17:46:21 +0000 |
commit | 9d643c721151d11c784f79b28fcb5382c0530c21 (patch) | |
tree | 0b2a96a735ddcaf91790a3366085a6802c2e8015 /ld/emultempl/pe.em | |
parent | bb85746a79c8889e7e803847ffc77cd0c5d88839 (diff) | |
download | binutils-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.em | 44 |
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) { |