2010-05-25 Kai Tietz <kai.tietz@onevision.com>

* emultempl/pep.em (gld_${EMULATION_NAME}_before_parse): Enable by
        default auto_import.
        (gld${EMULATION_NAME}_handle_option): Warn about v1.
        (pep_find_data_imports): Remove superflous warnings about
        auto-import.
        (gld_${EMULATION_NAME}_get_script): Don't merge for auto-import
        and active pseudo-relocation-v2 rdata into data section.
This commit is contained in:
Kai Tietz 2010-05-25 10:03:01 +00:00
parent ca5f22031a
commit 6ec6c79c28
2 changed files with 9 additions and 23 deletions

View File

@ -1,5 +1,12 @@
2010-05-25 Kai Tietz <kai.tietz@onevision.com>
* emultempl/pep.em (gld_${EMULATION_NAME}_before_parse): Enable by
default auto_import.
(gld${EMULATION_NAME}_handle_option): Warn about v1.
(pep_find_data_imports): Remove superflous warnings about
auto-import.
(gld_${EMULATION_NAME}_get_script): Don't merge for auto-import
and active pseudo-relocation-v2 rdata into data section.
* emultempl/pe.em (default_merge_rdata): New shell variable.
(MERGE_RDATA_V2): New macro.
(gld_${EMULATION_NAME}_get_script): Adjust rule for auto-import

View File

@ -139,7 +139,7 @@ gld_${EMULATION_NAME}_before_parse (void)
#ifdef DLL_SUPPORT
config.dynamic_link = TRUE;
config.has_shared = 1;
link_info.pei386_auto_import = -1;
link_info.pei386_auto_import = 1;
link_info.pei386_runtime_pseudo_reloc = 2; /* Use by default version 2. */
#endif
}
@ -185,7 +185,6 @@ enum options
OPTION_EXCLUDE_LIBS,
OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC,
OPTION_DLL_DISABLE_RUNTIME_PSEUDO_RELOC,
OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V1,
OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V2,
OPTION_EXCLUDE_MODULES_FOR_IMPLIB,
OPTION_USE_NUL_PREFIXED_IMPORT_TABLES,
@ -263,7 +262,6 @@ gld${EMULATION_NAME}_add_options
{"enable-extra-pep-debug", no_argument, NULL, OPTION_ENABLE_EXTRA_PE_DEBUG},
{"enable-runtime-pseudo-reloc", no_argument, NULL, OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC},
{"disable-runtime-pseudo-reloc", no_argument, NULL, OPTION_DLL_DISABLE_RUNTIME_PSEUDO_RELOC},
{"enable-runtime-pseudo-reloc-v1", no_argument, NULL, OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V1},
{"enable-runtime-pseudo-reloc-v2", no_argument, NULL, OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V2},
#endif
{"enable-long-section-names", no_argument, NULL, OPTION_ENABLE_LONG_SECTION_NAMES},
@ -736,9 +734,6 @@ gld${EMULATION_NAME}_handle_option (int optc)
case OPTION_DLL_DISABLE_RUNTIME_PSEUDO_RELOC:
link_info.pei386_runtime_pseudo_reloc = 0;
break;
case OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V1:
link_info.pei386_runtime_pseudo_reloc = 1;
break;
case OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V2:
link_info.pei386_runtime_pseudo_reloc = 2;
break;
@ -1097,22 +1092,6 @@ pep_find_data_imports (void)
asymbol **symbols;
int nsyms, i;
if (link_info.pei386_auto_import == -1)
{
static bfd_boolean warned = FALSE;
info_msg (_("Info: resolving %s by linking to %s (auto-import)\n"),
undef->root.string, buf);
/* PR linker/4844. */
if (! warned)
{
warned = TRUE;
einfo (_("%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line.\n\
This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.\n"));
}
}
if (!bfd_generic_link_read_symbols (b))
{
einfo (_("%B%F: could not read symbols: %E\n"), b);
@ -1928,7 +1907,7 @@ sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c
echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c
sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c
if test -n "$GENERATE_AUTO_IMPORT_SCRIPT" ; then
echo ' ; else if (link_info.pei386_auto_import == 1) return' >> e${EMULATION_NAME}.c
echo ' ; else if (link_info.pei386_auto_import == 1 && link_info.pei386_runtime_pseudo_reloc != 2) return' >> e${EMULATION_NAME}.c
sed $sc ldscripts/${EMULATION_NAME}.xa >> e${EMULATION_NAME}.c
fi
echo ' ; else return' >> e${EMULATION_NAME}.c