large-addr-aware for biarch non-w64 mingw32
authorAlexandre Oliva <oliva@adacore.com>
Fri, 9 Nov 2018 10:49:47 +0000 (10:49 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Fri, 9 Nov 2018 10:49:47 +0000 (10:49 +0000)
for  gcc/ChangeLog

* config/i386/mingw32.h (LINK_SPEC_LARGE_ADDR_AWARE): Adjust
        for non-w64 x86_64 biarch.

From-SVN: r265958

gcc/ChangeLog
gcc/config/i386/mingw32.h

index 46ab4e9..ec1ad17 100644 (file)
@@ -1,3 +1,8 @@
+2018-11-09  Alexandre Oliva <oliva@adacore.com>
+
+       * config/i386/mingw32.h (LINK_SPEC_LARGE_ADDR_AWARE): Adjust
+       for non-w64 x86_64 biarch.
+
 2018-11-09  Alexandre Oliva <aoliva@redhat.com>
 
        PR rtl-optimization/86438
index c9d8a7a..5759d8d 100644 (file)
@@ -114,11 +114,26 @@ along with GCC; see the file COPYING3.  If not see
 #define SUBTARGET_EXTRA_SPECS                                          \
   { "shared_libgcc_undefs", SHARED_LIBGCC_UNDEFS_SPEC }
 
-#if MINGW_DEFAULT_LARGE_ADDR_AWARE
+#if ! MINGW_DEFAULT_LARGE_ADDR_AWARE
+/* This is used without --enable-large-address-aware.  */
+# define LINK_SPEC_LARGE_ADDR_AWARE ""
+#elif ! TARGET_BI_ARCH
+/* This is used on i686-pc-mingw32 with --enable-large-address-aware.  */
 # define LINK_SPEC_LARGE_ADDR_AWARE \
   "%{!shared:%{!mdll:--large-address-aware}}"
+#elif TARGET_64BIT_DEFAULT
+/* This is used on x86_64-pc-mingw32 with --enable-large-address-aware.
+   ??? It probably doesn't work, because the linker emulation defaults
+   to i386pep, the 64-bit mode that does not support
+   --large-address-aware, and x86_64-pc-mingw32 does not override the
+   emulation to i386pe for -m32, unlike x86_64-w64-mingw32.  */
+# define LINK_SPEC_LARGE_ADDR_AWARE \
+  "%{!shared:%{!mdll:%{m32:--large-address-aware}}}"
 #else
-# define LINK_SPEC_LARGE_ADDR_AWARE ""
+/* This would only be used if someone introduced a biarch
+   configuration that defaulted to 32-bit.  */
+# define LINK_SPEC_LARGE_ADDR_AWARE \
+  "%{!shared:%{!mdll:%{!m64:--large-address-aware}}}"
 #endif
 
 #define LINK_SPEC "%{mwindows:--subsystem windows} \