aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2024-05-29 12:06:32 +0200
committerEric Botcazou <ebotcazou@adacore.com>2024-05-29 12:09:56 +0200
commit9c6e75a6d1cc2858fc945266a5edb700edb44389 (patch)
tree9dded44b1837b62d80010f4f3d159a0d1803bedd /gcc
parent499d00127d39ba894b0f7216d73660b380bdc325 (diff)
downloadgcc-9c6e75a6d1cc2858fc945266a5edb700edb44389.zip
gcc-9c6e75a6d1cc2858fc945266a5edb700edb44389.tar.gz
gcc-9c6e75a6d1cc2858fc945266a5edb700edb44389.tar.bz2
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/Makefile.rtl13
1 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl
index 570d0b2..0f5ebb8 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