https://gcc.gnu.org/g:9c6e75a6d1cc2858fc945266a5edb700edb44389

commit r15-894-g9c6e75a6d1cc2858fc945266a5edb700edb44389
Author: Eric Botcazou <ebotca...@adacore.com>
Date:   Wed May 29 12:06:32 2024 +0200

    Fix link failure of GNAT tools on 32-bit SPARC/Linux
    
    There is an incorrect binding to the 64-bit compare-and-exchange builtin.
    
    gcc/ada/
            PR ada/115270
            * Makefile.rtl (PowerPC/Linux): Use libgnat/s-atopri__32.ads for
            the 32-bit library.
            (SPARC/Linux): Likewise.

Diff:
---
 gcc/ada/Makefile.rtl | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl
index 570d0b2703d..0f5ebb87d73 100644
--- a/gcc/ada/Makefile.rtl
+++ b/gcc/ada/Makefile.rtl
@@ -2266,15 +2266,18 @@ ifeq ($(strip $(filter-out powerpc% 
linux%,$(target_cpu) $(target_os))),)
   system.ads<libgnat/system-linux-ppc.ads
 
   ifeq ($(strip $(filter-out powerpc64%,$(target_cpu))),)
-    ifneq ($(strip $(MULTISUBDIR)),/32)
+    ifeq ($(strip $(MULTISUBDIR)),/32)
+      LIBGNAT_TARGET_PAIRS += s-atopri.ads<libgnat/s-atopri__32.ads
+    else
       LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
       EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
     endif
   else
-    LIBGNAT_TARGET_PAIRS += s-atopri.ads<libgnat/s-atopri__32.ads
     ifeq ($(strip $(MULTISUBDIR)),/64)
       LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
       EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
+    else
+      LIBGNAT_TARGET_PAIRS += s-atopri.ads<libgnat/s-atopri__32.ads
     endif
   endif
 
@@ -2386,7 +2389,9 @@ ifeq ($(strip $(filter-out sparc% linux%,$(target_cpu) 
$(target_os))),)
   system.ads<libgnat/system-linux-sparc.ads
 
   ifeq ($(strip $(filter-out sparc64 sparcv9,$(target_cpu))),)
-    ifneq ($(strip $(MULTISUBDIR)),/32)
+    ifeq ($(strip $(MULTISUBDIR)),/32)
+      LIBGNAT_TARGET_PAIRS += s-atopri.ads<libgnat/s-atopri__32.ads
+    else
       LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
       EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
     endif
@@ -2394,6 +2399,8 @@ ifeq ($(strip $(filter-out sparc% linux%,$(target_cpu) 
$(target_os))),)
     ifeq ($(strip $(MULTISUBDIR)),/64)
       LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
       EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
+    else
+      LIBGNAT_TARGET_PAIRS += s-atopri.ads<libgnat/s-atopri__32.ads
     endif
   endif

Reply via email to