diff options
-rw-r--r-- | ld/ChangeLog | 5 | ||||
-rw-r--r-- | ld/emultempl/pe.em | 10 | ||||
-rw-r--r-- | ld/ld.texinfo | 8 |
3 files changed, 22 insertions, 1 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index eef4ca8..2c93588 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2013-08-22 Christian Franke <franke@computer.org> + + * emultempl/pe.em: Add --disable-large-address-aware option. + * ld.texinfo (--disable-large-address-aware): Add documentation. + 2013-08-14 Clemens Lang <clemens.lang@fau.de> * ldexp.c: Add LOG2CEIL() builtin function to linker script language diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em index f702f60..4df7753 100644 --- a/ld/emultempl/pe.em +++ b/ld/emultempl/pe.em @@ -241,8 +241,10 @@ fragment <<EOF (OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC + 1) #define OPTION_LARGE_ADDRESS_AWARE \ (OPTION_DLL_DISABLE_RUNTIME_PSEUDO_RELOC + 1) +#define OPTION_DISABLE_LARGE_ADDRESS_AWARE \ + (OPTION_LARGE_ADDRESS_AWARE + 1) #define OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V1 \ - (OPTION_LARGE_ADDRESS_AWARE + 1) + (OPTION_DISABLE_LARGE_ADDRESS_AWARE + 1) #define OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V2 \ (OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V1 + 1) #define OPTION_EXCLUDE_MODULES_FOR_IMPLIB \ @@ -332,6 +334,7 @@ gld${EMULATION_NAME}_add_options {"enable-runtime-pseudo-reloc-v2", no_argument, NULL, OPTION_DLL_ENABLE_RUNTIME_PSEUDO_RELOC_V2}, #endif {"large-address-aware", no_argument, NULL, OPTION_LARGE_ADDRESS_AWARE}, + {"disable-large-address-aware", no_argument, NULL, OPTION_DISABLE_LARGE_ADDRESS_AWARE}, {"enable-long-section-names", no_argument, NULL, OPTION_ENABLE_LONG_SECTION_NAMES}, {"disable-long-section-names", no_argument, NULL, OPTION_DISABLE_LONG_SECTION_NAMES}, {"dynamicbase",no_argument, NULL, OPTION_DYNAMIC_BASE}, @@ -471,6 +474,8 @@ gld_${EMULATION_NAME}_list_options (FILE *file) #endif fprintf (file, _(" --large-address-aware Executable supports virtual addresses\n\ greater than 2 gigabytes\n")); + fprintf (file, _(" --disable-large-address-aware Executable does not support virtual\n\ + addresses greater than 2 gigabytes\n")); fprintf (file, _(" --enable-long-section-names Use long COFF section names even in\n\ executable image files\n")); fprintf (file, _(" --disable-long-section-names Never use long COFF section names, even\n\ @@ -827,6 +832,9 @@ gld${EMULATION_NAME}_handle_option (int optc) case OPTION_LARGE_ADDRESS_AWARE: real_flags |= IMAGE_FILE_LARGE_ADDRESS_AWARE; break; + case OPTION_DISABLE_LARGE_ADDRESS_AWARE: + real_flags &= ~ IMAGE_FILE_LARGE_ADDRESS_AWARE; + break; case OPTION_ENABLE_LONG_SECTION_NAMES: pe_use_coff_long_section_names = 1; break; diff --git a/ld/ld.texinfo b/ld/ld.texinfo index 00a0fa4..e124f9b 100644 --- a/ld/ld.texinfo +++ b/ld/ld.texinfo @@ -2348,6 +2348,14 @@ or /USERVA=@var{value} megabytes switch in the ``[operating systems]'' section of the BOOT.INI. Otherwise, this bit has no effect. [This option is specific to PE targeted ports of the linker] +@kindex --disable-large-address-aware +@item --disable-large-address-aware +Reverts the effect of a previous @samp{--large-address-aware} option. +This is useful if @samp{--large-address-aware} is always set by the compiler +driver (e.g. Cygwin gcc) and the executable does not support virtual +addresses greater than 2 gigabytes. +[This option is specific to PE targeted ports of the linker] + @kindex --major-image-version @item --major-image-version @var{value} Sets the major number of the ``image version''. Defaults to 1. |