diff options
author | Nick Clifton <nickc@redhat.com> | 2001-09-24 18:21:24 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2001-09-24 18:21:24 +0000 |
commit | aa3d9aba51be7011ea787c38f891c16910d2ed50 (patch) | |
tree | 440a5766e18352b27b8679b06399e90a29d2c16f /ld | |
parent | 96d2f608dcfdd177211dbb65b607d3bc03d1b320 (diff) | |
download | fsf-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.em | 24 | ||||
-rw-r--r-- | 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); } |