From dfc07fc4b3c6305a2516c6f6f9d9314fbc77065e Mon Sep 17 00:00:00 2001
From: ktietz <ktietz@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 28 Mar 2011 11:07:00 +0000
Subject: [PATCH] 2011-03-28  Kai Tietz  <ktietz@redhat.com>

        * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native
        windows targets.
        (EH_MECHANISM): Make sure we use gcc's exception mechanism for all
        native windows target.
        * system-mingw.ads (System): Change ZCX_By_Default default to
        True.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171599 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ada/ChangeLog                 | 7 +++++++
 gcc/ada/gcc-interface/Makefile.in | 5 +++++
 gcc/ada/system-mingw.ads          | 2 +-
 3 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 8a489e074ce2..03eb1368e08b 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,5 +1,12 @@
 2011-03-28  Kai Tietz  <ktietz@redhat.com>
 
+	* gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native
+	windows targets.
+	(EH_MECHANISM): Make sure we use gcc's exception mechanism for all
+	native windows target.
+	* system-mingw.ads (System): Change ZCX_By_Default default to
+	True.
+
 	* raise-gcc.c (PERSONALITY_FUNCTION): Add prototype to
 	prevent warning.
 
diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in
index 71c00e2a813c..246b401c8a9c 100644
--- a/gcc/ada/gcc-interface/Makefile.in
+++ b/gcc/ada/gcc-interface/Makefile.in
@@ -1634,21 +1634,26 @@ ifeq ($(strip $(filter-out cygwin32% mingw32% pe,$(osys))),)
     s-osprim.adb<s-osprim-mingw.adb \
     s-taprop.adb<s-taprop-mingw.adb
 
+    EH_MECHANISM=-gcc
     ifeq ($(strip $(filter-out x86_64%,$(arch))),)
       ifeq ($(strip $(MULTISUBDIR)),/32)
 	LIBGNAT_TARGET_PAIRS += \
 	  system.ads<system-mingw.ads
+	SO_OPTS= -m32 -Wl,-soname,
       else
 	LIBGNAT_TARGET_PAIRS += \
 	  system.ads<system-mingw-x86_64.ads
+	SO_OPTS = -m64 -Wl,-soname,
       endif
     else
       ifeq ($(strip $(MULTISUBDIR)),/64)
 	LIBGNAT_TARGET_PAIRS += \
 	  system.ads<system-mingw-x86_64.ads
+	SO_OPTS = -m64 -Wl,-soname,
       else
 	LIBGNAT_TARGET_PAIRS += \
 	  system.ads<system-mingw.ads
+	SO_OPTS = -m32 -Wl,-soname,
       endif
     endif
 
diff --git a/gcc/ada/system-mingw.ads b/gcc/ada/system-mingw.ads
index 6a9131a30d5e..b9ab72407a27 100644
--- a/gcc/ada/system-mingw.ads
+++ b/gcc/ada/system-mingw.ads
@@ -139,7 +139,7 @@ private
    Always_Compatible_Rep     : constant Boolean := False;
    Suppress_Standard_Library : constant Boolean := False;
    Use_Ada_Main_Program_Name : constant Boolean := False;
-   ZCX_By_Default            : constant Boolean := False;
+   ZCX_By_Default            : constant Boolean := True;
    GCC_ZCX_Support           : constant Boolean := True;
 
    ---------------------------
-- 
GitLab