summaryrefslogtreecommitdiffstats
path: root/ld/emultempl
diff options
context:
space:
mode:
authorKai Tietz <kai.tietz@onevision.com>2009-01-08 13:28:48 +0000
committerKai Tietz <kai.tietz@onevision.com>2009-01-08 13:28:48 +0000
commitce11ba6c9d65f4606431e5d73986ad87e3ee9583 (patch)
treec7999040c68c6e2e020088296ea0fe8526c67410 /ld/emultempl
parentdde0281261f8a2b4e89ec28a3b602d52ba97e9fd (diff)
downloadppe42-binutils-ce11ba6c9d65f4606431e5d73986ad87e3ee9583.tar.gz
ppe42-binutils-ce11ba6c9d65f4606431e5d73986ad87e3ee9583.zip
2009-01-08 Kai Tietz <kai.tietz@onevision.com>
* pe.em (OPTION_USE_NUL_PREFIXED_IMPORT_TABLES): New. (gld..._add_options): Add new option --use-nul-prefixed-import-tables. (gld..._handle_option): Likewise. * pep.em: Same as for pe.em. * ld.texinfo: Add new option documentation for --use-nul-prefixed-import-tables. * pe-dll.c (pe_use_nul_prefixed_import_tables): New. (make_head): Make prefix leading zero prefix element for idata$4 and idata$5 dependent to new flag. (make_import_fixup_entry): Remove idata4/5 prefix. * pe-dll.h (pe_use_nul_prefixed_import_tables): New. * pep-dll.c (pe_use_nul_prefixed_import_tables): New. * pep-dll.h (pep_use_nul_prefixed_import_tables): New. * NEWS: Add new option.
Diffstat (limited to 'ld/emultempl')
-rw-r--r--ld/emultempl/pe.em7
-rw-r--r--ld/emultempl/pep.em8
2 files changed, 14 insertions, 1 deletions
diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em
index 26a70a743a..d2d34adb95 100644
--- a/ld/emultempl/pe.em
+++ b/ld/emultempl/pe.em
@@ -209,6 +209,8 @@ gld_${EMULATION_NAME}_before_parse (void)
(OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V1 + 1)
#define OPTION_EXCLUDE_MODULES_FOR_IMPLIB \
(OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V2 + 1)
+#define OPTION_USE_NUL_PREFIXED_IMPORT_TABLES \
+ (OPTION_EXCLUDE_MODULES_FOR_IMPLIB + 1)
static void
gld${EMULATION_NAME}_add_options
@@ -234,6 +236,8 @@ gld${EMULATION_NAME}_add_options
{"subsystem", required_argument, NULL, OPTION_SUBSYSTEM},
{"support-old-code", no_argument, NULL, OPTION_SUPPORT_OLD_CODE},
{"thumb-entry", required_argument, NULL, OPTION_THUMB_ENTRY},
+ {"use-nul-prefixed-import-tables", no_argument, NULL,
+ OPTION_USE_NUL_PREFIXED_IMPORT_TABLES},
#ifdef DLL_SUPPORT
/* getopt allows abbreviations, so we do this to stop it from treating -o
as an abbreviation for this option */
@@ -596,6 +600,9 @@ gld${EMULATION_NAME}_handle_option (int optc)
case OPTION_THUMB_ENTRY:
thumb_entry_symbol = optarg;
break;
+ case OPTION_USE_NUL_PREFIXED_IMPORT_TABLES:
+ pe_use_nul_prefixed_import_tables = TRUE;
+ break;
#ifdef DLL_SUPPORT
case OPTION_OUT_DEF:
pe_out_def_filename = xstrdup (optarg);
diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em
index f921c1ec63..f6f802e12e 100644
--- a/ld/emultempl/pep.em
+++ b/ld/emultempl/pep.em
@@ -176,7 +176,8 @@ enum options
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_EXCLUDE_MODULES_FOR_IMPLIB,
+ OPTION_USE_NUL_PREFIXED_IMPORT_TABLES
};
static void
@@ -206,6 +207,8 @@ gld${EMULATION_NAME}_add_options
{"stack", required_argument, NULL, OPTION_STACK},
{"subsystem", required_argument, NULL, OPTION_SUBSYSTEM},
{"support-old-code", no_argument, NULL, OPTION_SUPPORT_OLD_CODE},
+ {"use-nul-prefixed-import-tables", no_argument, NULL,
+ OPTION_USE_NUL_PREFIXED_IMPORT_TABLES},
#ifdef DLL_SUPPORT
/* getopt allows abbreviations, so we do this to stop it
from treating -o as an abbreviation for this option. */
@@ -556,6 +559,9 @@ gld${EMULATION_NAME}_handle_option (int optc)
case OPTION_SUPPORT_OLD_CODE:
support_old_code = 1;
break;
+ case OPTION_USE_NUL_PREFIXED_IMPORT_TABLES:
+ pep_use_nul_prefixed_import_tables = TRUE;
+ break;
#ifdef DLL_SUPPORT
case OPTION_OUT_DEF:
pep_out_def_filename = xstrdup (optarg);
OpenPOWER on IntegriCloud