From aa3d9aba51be7011ea787c38f891c16910d2ed50 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 24 Sep 2001 18:21:24 +0000 Subject: [PATCH] oops - omitted from previous delta --- ld/emultempl/pe.em | 24 ++++++------------------ ld/pe-dll.c | 6 ++++-- 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); } -- 2.7.4