2000-07-10 H.J. Lu <hjl@gnu.org>

* emultempl/pe.em (pe_enable_stdcall_fixup): Protect with
	DLL_SUPPORT.
	(strhash): Likewise.
	(compute_dll_image_base): Likewise.
	(pe_undef_found_sym): Likewise.
	(pe_undef_cdecl_match): Likewise.
	(gld_${EMULATION_NAME}_open_dynamic_archive): Mark the
	argument "arch" with ATTRIBUTE_UNUSED.
This commit is contained in:
H.J. Lu 2000-07-10 17:20:35 +00:00
parent 9a8cbb092b
commit 2ef53d6665
2 changed files with 22 additions and 5 deletions

View File

@ -1,3 +1,14 @@
2000-07-10 H.J. Lu <hjl@gnu.org>
* emultempl/pe.em (pe_enable_stdcall_fixup): Protect with
DLL_SUPPORT.
(strhash): Likewise.
(compute_dll_image_base): Likewise.
(pe_undef_found_sym): Likewise.
(pe_undef_cdecl_match): Likewise.
(gld_${EMULATION_NAME}_open_dynamic_archive): Mark the
argument "arch" with ATTRIBUTE_UNUSED.
2000-07-10 Alan Modra <alan@linuxcare.com.au> 2000-07-10 Alan Modra <alan@linuxcare.com.au>
* configure.tgt: Remove extraneous hppa*-*-linux-gnu*. * configure.tgt: Remove extraneous hppa*-*-linux-gnu*.
@ -57,14 +68,14 @@
2000-07-07 Charles Wilson <cwilson@ece.gatech.edu> 2000-07-07 Charles Wilson <cwilson@ece.gatech.edu>
* ld/emultempl/pe.em: institute the following search order for * emultempl/pe.em: institute the following search order for
dynamic libraries on pei386: libfoo.dll.a, foo.dll.a (import dynamic libraries on pei386: libfoo.dll.a, foo.dll.a (import
libs), libfoo.dll, foo.dll (link direct to dll). Fall back to libs), libfoo.dll, foo.dll (link direct to dll). Fall back to
static lib (libfoo.a) if none of the above are found. static lib (libfoo.a) if none of the above are found.
2000-07-07 Mumit Khan <khan@xraylith.wisc.edu> 2000-07-07 Mumit Khan <khan@xraylith.wisc.edu>
* ld/emultempl/pe.em (pe_enable_auto_image_base): New variable. * emultempl/pe.em (pe_enable_auto_image_base): New variable.
(longopts): New --{enable,disable}-auto-image-base options. (longopts): New --{enable,disable}-auto-image-base options.
(gld_${EMULATION_NAME}_list_options): Document. (gld_${EMULATION_NAME}_list_options): Document.
(gld_${EMULATION_NAME}_parse): Handle. (gld_${EMULATION_NAME}_parse): Handle.

View File

@ -114,8 +114,8 @@ static int support_old_code = 0;
static char * thumb_entry_symbol = NULL; static char * thumb_entry_symbol = NULL;
static lang_assignment_statement_type *image_base_statement = 0; static lang_assignment_statement_type *image_base_statement = 0;
static int pe_enable_stdcall_fixup = -1; /* 0=disable 1=enable */
#ifdef DLL_SUPPORT #ifdef DLL_SUPPORT
static int pe_enable_stdcall_fixup = -1; /* 0=disable 1=enable */
static char *pe_out_def_filename = NULL; static char *pe_out_def_filename = NULL;
static char *pe_implib_filename = NULL; static char *pe_implib_filename = NULL;
static int pe_enable_auto_image_base = 0; static int pe_enable_auto_image_base = 0;
@ -560,6 +560,7 @@ gld_${EMULATION_NAME}_parse_args(argc, argv)
} }
#ifdef DLL_SUPPORT
static unsigned long static unsigned long
strhash (const char *str) strhash (const char *str)
{ {
@ -590,6 +591,7 @@ compute_dll_image_base (const char *ofile)
unsigned long hash = strhash (ofile); unsigned long hash = strhash (ofile);
return 0x60000000 | ((hash << 16) & 0x0FFC0000); return 0x60000000 | ((hash << 16) & 0x0FFC0000);
} }
#endif
/* Assign values to the special symbols before the linker script is /* Assign values to the special symbols before the linker script is
read. */ read. */
@ -607,8 +609,12 @@ gld_${EMULATION_NAME}_set_symbols ()
if (link_info.relocateable) if (link_info.relocateable)
init[IMAGEBASEOFF].value = 0; init[IMAGEBASEOFF].value = 0;
else if (init[DLLOFF].value || link_info.shared) else if (init[DLLOFF].value || link_info.shared)
#ifdef DLL_SUPPORT
init[IMAGEBASEOFF].value = (pe_enable_auto_image_base) ? init[IMAGEBASEOFF].value = (pe_enable_auto_image_base) ?
compute_dll_image_base (output_filename) : NT_DLL_IMAGE_BASE; compute_dll_image_base (output_filename) : NT_DLL_IMAGE_BASE;
#else
init[IMAGEBASEOFF].value = NT_DLL_IMAGE_BASE;
#endif
else else
init[IMAGEBASEOFF].value = NT_EXE_IMAGE_BASE; init[IMAGEBASEOFF].value = NT_EXE_IMAGE_BASE;
} }
@ -673,6 +679,7 @@ gld_${EMULATION_NAME}_after_parse ()
ldlang_add_undef (entry_symbol); ldlang_add_undef (entry_symbol);
} }
#ifdef DLL_SUPPORT
static struct bfd_link_hash_entry *pe_undef_found_sym; static struct bfd_link_hash_entry *pe_undef_found_sym;
static boolean static boolean
@ -691,7 +698,6 @@ pe_undef_cdecl_match (h, string)
return true; return true;
} }
#ifdef DLL_SUPPORT
static void static void
pe_fixup_stdcalls () pe_fixup_stdcalls ()
{ {
@ -1355,7 +1361,7 @@ gld_${EMULATION_NAME}_place_orphan (file, s)
static boolean static boolean
gld_${EMULATION_NAME}_open_dynamic_archive (arch, search, entry) gld_${EMULATION_NAME}_open_dynamic_archive (arch, search, entry)
const char * arch; const char * arch ATTRIBUTE_UNUSED;
search_dirs_type * search; search_dirs_type * search;
lang_input_statement_type * entry; lang_input_statement_type * entry;
{ {