aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2001-09-24 18:21:24 +0000
committerNick Clifton <nickc@redhat.com>2001-09-24 18:21:24 +0000
commitaa3d9aba51be7011ea787c38f891c16910d2ed50 (patch)
tree440a5766e18352b27b8679b06399e90a29d2c16f /ld
parent96d2f608dcfdd177211dbb65b607d3bc03d1b320 (diff)
downloadfsf-binutils-gdb-aa3d9aba51be7011ea787c38f891c16910d2ed50.zip
fsf-binutils-gdb-aa3d9aba51be7011ea787c38f891c16910d2ed50.tar.gz
fsf-binutils-gdb-aa3d9aba51be7011ea787c38f891c16910d2ed50.tar.bz2
oops - omitted from previous delta
Diffstat (limited to 'ld')
-rw-r--r--ld/emultempl/pe.em24
-rw-r--r--ld/pe-dll.c6
2 files changed, 10 insertions, 20 deletions
diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em
index a863526..8b3919c 100644
--- a/ld/emultempl/pe.em
+++ b/ld/emultempl/pe.em
@@ -153,7 +153,6 @@ static char *pe_out_def_filename = NULL;
static char *pe_implib_filename = NULL;
static int pe_enable_auto_image_base = 0;
static char *pe_dll_search_prefix = NULL;
-static char *pe_data_import_dll = NULL;
#endif
extern const char *output_filename;
@@ -756,23 +755,12 @@ gld_${EMULATION_NAME}_after_parse ()
ldlang_add_undef (entry_symbol);
}
-/* Previously, pe-dll.c directly accessed pe_data_import_dll,
- which was only defined if DLL_SUPPORT. This cause a build
- failure on certain targets. At least this function will
- exist regardless of whether DLL_SUPPORT is defined or not.
-
- However, it's still a kludge. pe-dll.c shouldn't directly
- call any functions other than the gld_${EMULATION_NAME}_*. */
-
-char *
-pe_get_data_import_dll_name ()
-{
-#ifdef DLL_SUPPORT
- return pe_data_import_dll;
-#else
- return "unknown";
-#endif
-}
+/* pe-dll.c directly accesses pe_data_import_dll,
+ so it must be defined outside of #ifdef DLL_SUPPORT.
+ Note - this variable is deliberately not initialised.
+ This allows it to be treated as a common varaible, and only
+ exist in one incarnation in a multiple target enabled linker. */
+char * pe_data_import_dll;
#ifdef DLL_SUPPORT
static struct bfd_link_hash_entry *pe_undef_found_sym;
diff --git a/ld/pe-dll.c b/ld/pe-dll.c
index f62835d..7c6dddb 100644
--- a/ld/pe-dll.c
+++ b/ld/pe-dll.c
@@ -2069,8 +2069,10 @@ pe_create_import_fixup (rel)
}
{
- bfd *b = make_import_fixup_entry (name, fixup_name,
- pe_get_data_import_dll_name (),
+ extern char * pe_data_import_dll;
+ char * dll_symname = pe_data_import_dll ? "unknown" : pe_data_import_dll;
+
+ bfd *b = make_import_fixup_entry (name, fixup_name, dll_symname,
output_bfd);
add_bfd_to_link (b, b->filename, &link_info);
}