* [Ada] Build support units for 128-bit integer types on 64-bit platforms
@ 2020-10-22 12:12 Pierre-Marie de Rodat
2020-10-23 8:11 ` Andreas Schwab
2020-11-18 11:36 ` Matthias Klose
0 siblings, 2 replies; 10+ messages in thread
From: Pierre-Marie de Rodat @ 2020-10-22 12:12 UTC (permalink / raw)
To: gcc-patches; +Cc: Eric Botcazou
[-- Attachment #1: Type: text/plain, Size: 340 bytes --]
This enables the build of the support units for 128-bit integer types
in the full runtime of 64-bit platforms.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* Makefile.rtl (64-bit platforms): Add GNATRTL_128BIT_PAIRS to
the LIBGNAT_TARGET_PAIRS list and also GNATRTL_128BIT_OBJS to
the EXTRA_GNATRTL_NONTASKING_OBJS list.
[-- Attachment #2: patch.diff --]
[-- Type: text/x-diff, Size: 18809 bytes --]
diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl
--- a/gcc/ada/Makefile.rtl
+++ b/gcc/ada/Makefile.rtl
@@ -1060,6 +1060,11 @@ ifeq ($(strip $(filter-out powerpc% wrs vxworks vxworksspe vxworks7% vxworks7spe
EXTRA_GNATRTL_NONTASKING_OBJS+=s-stchop.o
endif
+ ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),)
+ LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
+ endif
+
TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
ifeq ($(strip $(filter-out rtp,$(THREAD_KIND))),)
@@ -1263,20 +1268,7 @@ endif
# x86/x86_64 VxWorks
ifeq ($(strip $(filter-out %86 x86_64 wrs vxworks vxworks7%,$(target_cpu) $(target_vendor) $(target_os))),)
- EH_MECHANISM=-gcc
-
- VX=$(strip $(if $(filter vxworks7%, $(target_os)), vxworks7, vxworks))
- SVX=system-$(VX)
-
- ifeq ($(strip $(filter-out x86_64, $(target_cpu))),)
- X86CPU=x86_64
- LIBGNAT_TARGET_PAIRS=$(X86_64_TARGET_PAIRS)
- else
- X86CPU=x86
- LIBGNAT_TARGET_PAIRS=$(X86_TARGET_PAIRS)
- endif
-
- LIBGNAT_TARGET_PAIRS+= \
+ LIBGNAT_TARGET_PAIRS= \
a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
i-vxwork.ads<libgnat/i-vxwork__x86.ads \
s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
@@ -1298,8 +1290,23 @@ ifeq ($(strip $(filter-out %86 x86_64 wrs vxworks vxworks7%,$(target_cpu) $(targ
g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
$(ATOMICS_TARGET_PAIRS)
+ VX=$(strip $(if $(filter vxworks7%, $(target_os)), vxworks7, vxworks))
+ SVX=system-$(VX)
+
+ ifeq ($(strip $(filter-out x86_64, $(target_cpu))),)
+ X86CPU=x86_64
+ LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
+ LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
+ else
+ X86CPU=x86
+ LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
+ endif
+
TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
+ EH_MECHANISM=-gcc
+
# The CPU setting for VxSim varies with the
# host (Windows or Linux)
# target (VxWorks6 or VxWorks7)
@@ -1379,7 +1386,7 @@ ifeq ($(strip $(filter-out %86 x86_64 wrs vxworks vxworks7%,$(target_cpu) $(targ
endif
endif
- EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o
+ EXTRA_GNATRTL_NONTASKING_OBJS += i-vxwork.o i-vxwoio.o
endif
endif
@@ -1403,12 +1410,37 @@ endif
# ARM and Aarch64 VxWorks
ifeq ($(strip $(filter-out aarch64 arm% coff wrs vx%,$(target_cpu) $(target_vendor) $(target_os))),)
+ LIBGNAT_TARGET_PAIRS = \
+ a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
+ a-naliop.ads<libgnat/a-naliop__nolibm.ads \
+ a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \
+ a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \
+ s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
+ s-interr.adb<libgnarl/s-interr__vxworks.adb \
+ s-intman.ads<libgnarl/s-intman__vxworks.ads \
+ s-intman.adb<libgnarl/s-intman__vxworks.adb \
+ s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
+ s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
+ s-osprim.adb<libgnat/s-osprim__vxworks.adb \
+ s-parame.ads<libgnat/s-parame__vxworks.ads \
+ s-parame.adb<libgnat/s-parame__vxworks.adb \
+ s-stchop.ads<libgnat/s-stchop__limit.ads \
+ s-stchop.adb<libgnat/s-stchop__vxworks.adb \
+ s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
+ s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
+ s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
+ g-socthi.ads<libgnat/g-socthi__vxworks.ads \
+ g-socthi.adb<libgnat/g-socthi__vxworks.adb \
+ g-stsifd.adb<libgnat/g-stsifd__sockets.adb
+
ifeq ($(strip $(filter-out aarch64, $(target_cpu))),)
ARCH_STR=aarch64
VX=vxworks7
EH_MECHANISM=-gcc
SIGTRAMP_OBJ=sigtramp-vxworks.o
- LIBGNAT_TARGET_PAIRS += a-nallfl.ads<libgnat/a-nallfl__wraplf.ads
+ LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) \
+ a-nallfl.ads<libgnat/a-nallfl__wraplf.ads
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
else
ifeq ($(strip $(filter-out arm%, $(target_cpu))),)
ARCH_STR=arm
@@ -1426,31 +1458,9 @@ ifeq ($(strip $(filter-out aarch64 arm% coff wrs vx%,$(target_cpu) $(target_vend
endif
endif
- SVX=system-$(VX)
+ LIBGNAT_TARGET_PAIRS += s-vxwork.ads<libgnarl/s-vxwork__$(ARCH_STR).ads
- LIBGNAT_TARGET_PAIRS = \
- a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
- a-naliop.ads<libgnat/a-naliop__nolibm.ads \
- a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \
- a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \
- s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
- s-interr.adb<libgnarl/s-interr__vxworks.adb \
- s-intman.ads<libgnarl/s-intman__vxworks.ads \
- s-intman.adb<libgnarl/s-intman__vxworks.adb \
- s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
- s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
- s-osprim.adb<libgnat/s-osprim__vxworks.adb \
- s-parame.ads<libgnat/s-parame__vxworks.ads \
- s-parame.adb<libgnat/s-parame__vxworks.adb \
- s-stchop.ads<libgnat/s-stchop__limit.ads \
- s-stchop.adb<libgnat/s-stchop__vxworks.adb \
- s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
- s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
- s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
- s-vxwork.ads<libgnarl/s-vxwork__$(ARCH_STR).ads \
- g-socthi.ads<libgnat/g-socthi__vxworks.ads \
- g-socthi.adb<libgnat/g-socthi__vxworks.adb \
- g-stsifd.adb<libgnat/g-stsifd__sockets.adb
+ SVX=system-$(VX)
TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
@@ -1495,9 +1505,8 @@ ifeq ($(strip $(filter-out aarch64 arm% coff wrs vx%,$(target_cpu) $(target_vend
endif
endif
- EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o \
- s-stchop.o
- EXTRA_GNATRTL_TASKING_OBJS=i-vxinco.o s-vxwork.o s-vxwext.o
+ EXTRA_GNATRTL_NONTASKING_OBJS += i-vxwork.o i-vxwoio.o s-stchop.o
+ EXTRA_GNATRTL_TASKING_OBJS += i-vxinco.o s-vxwork.o s-vxwext.o
EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
@@ -1560,10 +1569,12 @@ ifeq ($(strip $(filter-out aarch64 %qnx,$(target_cpu) $(target_os))),)
g-soliop.ads<libgnat/g-soliop__qnx.ads \
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
+ $(GNATRTL_128BIT_PAIRS) \
system.ads<libgnat/system-qnx-aarch64.ads
TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
+ EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
EXTRA_GNATRTL_TASKING_OBJS=s-qnx.o
EXTRA_LIBGNAT_OBJS+=sigtramp-qnx.o
EXTRA_LIBGNAT_SRCS+=sigtramp.h
@@ -1576,7 +1587,7 @@ ifeq ($(strip $(filter-out aarch64 %qnx,$(target_cpu) $(target_os))),)
LIBRARY_VERSION := $(LIB_VERSION)
endif
-# Sparc Solaris
+# SPARC Solaris
ifeq ($(strip $(filter-out sparc% sun solaris%,$(target_cpu) $(target_vendor) $(target_os))),)
LIBGNAT_TARGET_PAIRS = \
a-intnam.ads<libgnarl/a-intnam__solaris.ads \
@@ -1600,6 +1611,18 @@ ifeq ($(strip $(filter-out sparc% sun solaris%,$(target_cpu) $(target_vendor) $(
EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
+ ifeq ($(strip $(filter-out sparc64 sparcv9,$(target_cpu))),)
+ ifneq ($(strip $(MULTISUBDIR)),/sparcv8plus)
+ LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
+ endif
+ else
+ ifeq ($(strip $(MULTISUBDIR)),/sparcv9)
+ LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
+ endif
+ endif
+
EH_MECHANISM=-gcc
THREADSLIB = -lposix4 -lthread
MISCLIB = -lposix4 -lnsl -lsocket
@@ -1609,7 +1632,7 @@ ifeq ($(strip $(filter-out sparc% sun solaris%,$(target_cpu) $(target_vendor) $(
LIBRARY_VERSION := $(LIB_VERSION)
endif
-# x86 and x86-64 solaris
+# x86 and x86-64 Solaris
ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(target_cpu) $(target_os))),)
LIBGNAT_TARGET_PAIRS_COMMON = \
a-intnam.ads<libgnarl/a-intnam__solaris.ads \
@@ -1633,6 +1656,8 @@ ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(target_cpu) $(target_os))),)
ifeq ($(strip $(MULTISUBDIR)),/amd64)
LIBGNAT_TARGET_PAIRS = \
$(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_64_TARGET_PAIRS)
+ LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
else
LIBGNAT_TARGET_PAIRS = \
$(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_TARGET_PAIRS)
@@ -1644,6 +1669,8 @@ ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(target_cpu) $(target_os))),)
else
LIBGNAT_TARGET_PAIRS = \
$(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_64_TARGET_PAIRS)
+ LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
endif
endif
@@ -1679,6 +1706,8 @@ ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),)
ifeq ($(strip $(MULTISUBDIR)),/64)
LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
+ LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
else
LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
endif
@@ -1776,8 +1805,13 @@ ifeq ($(strip $(filter-out x86_64 kfreebsd%,$(target_cpu) $(target_os))),)
s-taprop.adb<libgnarl/s-taprop__posix.adb \
s-taspri.ads<libgnarl/s-taspri__posix.ads \
s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
+ $(ATOMICS_TARGET_PAIRS) \
+ $(X86_64_TARGET_PAIRS) \
+ $(GNATRTL_128BIT_PAIRS) \
system.ads<libgnat/system-freebsd.ads
+ EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
+
TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
EH_MECHANISM=-gcc
@@ -1803,8 +1837,11 @@ ifeq ($(strip $(filter-out %aarch64 freebsd%,$(target_cpu) $(target_os))),)
s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
+ $(GNATRTL_128BIT_PAIRS) \
system.ads<libgnat/system-freebsd.ads
+ EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
+
GNATLIB_SHARED = gnatlib-shared-dual
EH_MECHANISM=-gcc
@@ -1860,12 +1897,14 @@ ifeq ($(strip $(filter-out %86_64 freebsd%,$(target_cpu) $(target_os))),)
$(TRASYM_DWARF_UNIX_PAIRS) \
$(ATOMICS_TARGET_PAIRS) \
$(X86_64_TARGET_PAIRS) \
+ $(GNATRTL_128BIT_PAIRS) \
system.ads<libgnat/system-freebsd.ads
GNATLIB_SHARED = gnatlib-shared-dual
EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
EH_MECHANISM=-gcc
THREADSLIB= -lpthread
@@ -1889,11 +1928,13 @@ ifeq ($(strip $(filter-out %86_64 dragonfly%,$(target_cpu) $(target_os))),)
s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
$(ATOMICS_TARGET_PAIRS) \
$(X86_64_TARGET_PAIRS) \
+ $(GNATRTL_128BIT_PAIRS) \
system.ads<libgnat/system-dragonfly-x86_64.ads
GNATLIB_SHARED = gnatlib-shared-dual
- EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
+ EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
EH_MECHANISM=-gcc
THREADSLIB= -lpthread
@@ -1919,6 +1960,18 @@ ifeq ($(strip $(filter-out s390% linux%,$(target_cpu) $(target_os))),)
s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
system.ads<libgnat/system-linux-s390.ads
+ ifeq ($(strip $(filter-out s390x,$(target_cpu))),)
+ ifneq ($(strip $(MULTISUBDIR)),/32)
+ LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
+ endif
+ else
+ ifeq ($(strip $(MULTISUBDIR)),/64)
+ LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
+ endif
+ endif
+
TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
@@ -2208,7 +2261,7 @@ endif
# PowerPC and e500v2 Linux
ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
- LIBGNAT_TARGET_PAIRS_COMMON = \
+ LIBGNAT_TARGET_PAIRS = \
a-exetim.adb<libgnarl/a-exetim__posix.adb \
a-exetim.ads<libgnarl/a-exetim__default.ads \
a-intnam.ads<libgnarl/a-intnam__linux.ads \
@@ -2220,21 +2273,30 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
s-linux.ads<libgnarl/s-linux.ads \
s-osinte.adb<libgnarl/s-osinte__posix.adb \
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
+ s-mudido.adb<libgnarl/s-mudido__affinity.adb \
+ s-osinte.ads<libgnarl/s-osinte__linux.ads \
+ s-osprim.adb<libgnat/s-osprim__posix.adb \
+ s-taprop.adb<libgnarl/s-taprop__linux.adb \
+ s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
+ s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
+ s-taspri.ads<libgnarl/s-taspri__posix.ads \
$(TRASYM_DWARF_UNIX_PAIRS) \
s-tsmona.adb<libgnat/s-tsmona__linux.adb \
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
system.ads<libgnat/system-linux-ppc.ads
- LIBGNAT_TARGET_PAIRS = \
- $(LIBGNAT_TARGET_PAIRS_COMMON) \
- s-mudido.adb<libgnarl/s-mudido__affinity.adb \
- s-osinte.ads<libgnarl/s-osinte__linux.ads \
- s-osprim.adb<libgnat/s-osprim__posix.adb \
- s-taprop.adb<libgnarl/s-taprop__linux.adb \
- s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
- s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
- s-taspri.ads<libgnarl/s-taspri__posix.ads
+ ifeq ($(strip $(filter-out powerpc64,$(target_cpu))),)
+ ifneq ($(strip $(MULTISUBDIR)),/32)
+ LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
+ endif
+ else
+ ifeq ($(strip $(MULTISUBDIR)),/64)
+ LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
+ endif
+ endif
TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
@@ -2301,10 +2363,12 @@ ifeq ($(strip $(filter-out aarch64% linux%,$(target_cpu) $(target_os))),)
s-taspri.ads<libgnarl/s-taspri__posix.ads \
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
+ $(GNATRTL_128BIT_PAIRS) \
system.ads<libgnat/system-linux-arm.ads
TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
+ EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
EH_MECHANISM=-gcc
THREADSLIB=-lpthread -lrt
@@ -2313,7 +2377,7 @@ ifeq ($(strip $(filter-out aarch64% linux%,$(target_cpu) $(target_os))),)
LIBRARY_VERSION := $(LIB_VERSION)
endif
-# Sparc Linux
+# SPARC Linux
ifeq ($(strip $(filter-out sparc% linux%,$(target_cpu) $(target_os))),)
LIBGNAT_TARGET_PAIRS = \
a-intnam.ads<libgnarl/a-intnam__linux.ads \
@@ -2330,6 +2394,18 @@ ifeq ($(strip $(filter-out sparc% linux%,$(target_cpu) $(target_os))),)
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
system.ads<libgnat/system-linux-sparc.ads
+ ifeq ($(strip $(filter-out sparc64 sparcv9,$(target_cpu))),)
+ ifneq ($(strip $(MULTISUBDIR)),/32)
+ LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
+ endif
+ else
+ ifeq ($(strip $(MULTISUBDIR)),/64)
+ LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
+ endif
+ endif
+
TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
@@ -2447,11 +2523,13 @@ ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
s-tsmona.adb<libgnat/s-tsmona__linux.adb \
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
+ $(GNATRTL_128BIT_PAIRS) \
system.ads<libgnat/system-linux-ia64.ads
TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJ
EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
EH_MECHANISM=-gcc
THREADSLIB=-lpthread -lrt
@@ -2476,9 +2554,11 @@ ifeq ($(strip $(filter-out ia64% hp hpux%,$(target_cpu) $(target_vendor) $(targe
$(TRASYM_DWARF_UNIX_PAIRS) \
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
+ $(GNATRTL_128BIT_PAIRS) \
system.ads<libgnat/system-hpux-ia64.ads
EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
MISCLIB=
EH_MECHANISM=-gcc
@@ -2507,10 +2587,12 @@ ifeq ($(strip $(filter-out alpha% linux%,$(target_cpu) $(target_os))),)
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
+ $(GNATRTL_128BIT_PAIRS) \
system.ads<libgnat/system-linux-alpha.ads
TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
+ EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
EH_MECHANISM=-gcc
MISCLIB=
@@ -2614,6 +2696,18 @@ ifeq ($(strip $(filter-out riscv% linux%,$(target_cpu) $(target_os))),)
s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
system.ads<libgnat/system-linux-riscv.ads
+ ifeq ($(strip $(filter-out riscv64,$(target_cpu))),)
+ ifneq ($(strip $(MULTISUBDIR)),/lib32)
+ LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
+ endif
+ else
+ ifeq ($(strip $(MULTISUBDIR)),/lib64)
+ LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
+ endif
+ endif
+
TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
@@ -2647,11 +2741,13 @@ ifeq ($(strip $(filter-out darwin%,$(target_os))),)
ifeq ($(strip $(MULTISUBDIR)),/x86_64)
SO_OPTS += -m64
LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
+ LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
else
LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
endif
- EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
+ EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
endif
ifeq ($(strip $(filter-out %x86_64,$(target_cpu))),)
@@ -2668,9 +2764,11 @@ ifeq ($(strip $(filter-out darwin%,$(target_os))),)
LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
else
LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
+ LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
endif
- EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
+ EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
EXTRA_GNATRTL_TASKING_OBJS=a-exetim.o
endif
@@ -2704,8 +2802,10 @@ ifeq ($(strip $(filter-out darwin%,$(target_os))),)
s-intman.adb<libgnarl/s-intman__susv3.adb \
s-osprim.adb<libgnat/s-osprim__darwin.adb \
$(ATOMICS_TARGET_PAIRS) \
- $(ATOMICS_BUILTINS_TARGET_PAIRS)
+ $(ATOMICS_BUILTINS_TARGET_PAIRS) \
+ $(GNATRTL_128BIT_PAIRS)
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
EXTRA_LIBGNAT_OBJS+=sigtramp-ios.o
EXTRA_LIBGNAT_SRCS+=sigtramp.h
LIBGNAT_TARGET_PAIRS += \
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Ada] Build support units for 128-bit integer types on 64-bit platforms
2020-10-22 12:12 [Ada] Build support units for 128-bit integer types on 64-bit platforms Pierre-Marie de Rodat
@ 2020-10-23 8:11 ` Andreas Schwab
2020-10-23 16:18 ` Eric Botcazou
2020-11-18 11:36 ` Matthias Klose
1 sibling, 1 reply; 10+ messages in thread
From: Andreas Schwab @ 2020-10-23 8:11 UTC (permalink / raw)
To: Pierre-Marie de Rodat; +Cc: gcc-patches, Eric Botcazou
On Okt 22 2020, Pierre-Marie de Rodat wrote:
> This enables the build of the support units for 128-bit integer types
> in the full runtime of 64-bit platforms.
>
> Tested on x86_64-pc-linux-gnu, committed on trunk
>
> gcc/ada/
>
> * Makefile.rtl (64-bit platforms): Add GNATRTL_128BIT_PAIRS to
> the LIBGNAT_TARGET_PAIRS list and also GNATRTL_128BIT_OBJS to
> the EXTRA_GNATRTL_NONTASKING_OBJS list.
>
> diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl
> --- a/gcc/ada/Makefile.rtl
> +++ b/gcc/ada/Makefile.rtl
> @@ -1060,6 +1060,11 @@ ifeq ($(strip $(filter-out powerpc% wrs vxworks vxworksspe vxworks7% vxworks7spe
> EXTRA_GNATRTL_NONTASKING_OBJS+=s-stchop.o
> endif
>
> + ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),)
> + LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
> + EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
> + endif
> +
> TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
>
> ifeq ($(strip $(filter-out rtp,$(THREAD_KIND))),)
> @@ -1263,20 +1268,7 @@ endif
> # x86/x86_64 VxWorks
> ifeq ($(strip $(filter-out %86 x86_64 wrs vxworks vxworks7%,$(target_cpu) $(target_vendor) $(target_os))),)
>
> - EH_MECHANISM=-gcc
> -
> - VX=$(strip $(if $(filter vxworks7%, $(target_os)), vxworks7, vxworks))
> - SVX=system-$(VX)
> -
> - ifeq ($(strip $(filter-out x86_64, $(target_cpu))),)
> - X86CPU=x86_64
> - LIBGNAT_TARGET_PAIRS=$(X86_64_TARGET_PAIRS)
> - else
> - X86CPU=x86
> - LIBGNAT_TARGET_PAIRS=$(X86_TARGET_PAIRS)
> - endif
> -
> - LIBGNAT_TARGET_PAIRS+= \
> + LIBGNAT_TARGET_PAIRS= \
> a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
> i-vxwork.ads<libgnat/i-vxwork__x86.ads \
> s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
> @@ -1298,8 +1290,23 @@ ifeq ($(strip $(filter-out %86 x86_64 wrs vxworks vxworks7%,$(target_cpu) $(targ
> g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
> $(ATOMICS_TARGET_PAIRS)
>
> + VX=$(strip $(if $(filter vxworks7%, $(target_os)), vxworks7, vxworks))
> + SVX=system-$(VX)
> +
> + ifeq ($(strip $(filter-out x86_64, $(target_cpu))),)
> + X86CPU=x86_64
> + LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
> + LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
> + EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
> + else
> + X86CPU=x86
> + LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
> + endif
> +
> TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
>
> + EH_MECHANISM=-gcc
> +
> # The CPU setting for VxSim varies with the
> # host (Windows or Linux)
> # target (VxWorks6 or VxWorks7)
> @@ -1379,7 +1386,7 @@ ifeq ($(strip $(filter-out %86 x86_64 wrs vxworks vxworks7%,$(target_cpu) $(targ
> endif
> endif
>
> - EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o
> + EXTRA_GNATRTL_NONTASKING_OBJS += i-vxwork.o i-vxwoio.o
> endif
> endif
>
> @@ -1403,12 +1410,37 @@ endif
> # ARM and Aarch64 VxWorks
> ifeq ($(strip $(filter-out aarch64 arm% coff wrs vx%,$(target_cpu) $(target_vendor) $(target_os))),)
>
> + LIBGNAT_TARGET_PAIRS = \
> + a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
> + a-naliop.ads<libgnat/a-naliop__nolibm.ads \
> + a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \
> + a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \
> + s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
> + s-interr.adb<libgnarl/s-interr__vxworks.adb \
> + s-intman.ads<libgnarl/s-intman__vxworks.ads \
> + s-intman.adb<libgnarl/s-intman__vxworks.adb \
> + s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
> + s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
> + s-osprim.adb<libgnat/s-osprim__vxworks.adb \
> + s-parame.ads<libgnat/s-parame__vxworks.ads \
> + s-parame.adb<libgnat/s-parame__vxworks.adb \
> + s-stchop.ads<libgnat/s-stchop__limit.ads \
> + s-stchop.adb<libgnat/s-stchop__vxworks.adb \
> + s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
> + s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
> + s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
> + g-socthi.ads<libgnat/g-socthi__vxworks.ads \
> + g-socthi.adb<libgnat/g-socthi__vxworks.adb \
> + g-stsifd.adb<libgnat/g-stsifd__sockets.adb
> +
> ifeq ($(strip $(filter-out aarch64, $(target_cpu))),)
> ARCH_STR=aarch64
> VX=vxworks7
> EH_MECHANISM=-gcc
> SIGTRAMP_OBJ=sigtramp-vxworks.o
> - LIBGNAT_TARGET_PAIRS += a-nallfl.ads<libgnat/a-nallfl__wraplf.ads
> + LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) \
> + a-nallfl.ads<libgnat/a-nallfl__wraplf.ads
> + EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
> else
> ifeq ($(strip $(filter-out arm%, $(target_cpu))),)
> ARCH_STR=arm
> @@ -1426,31 +1458,9 @@ ifeq ($(strip $(filter-out aarch64 arm% coff wrs vx%,$(target_cpu) $(target_vend
> endif
> endif
>
> - SVX=system-$(VX)
> + LIBGNAT_TARGET_PAIRS += s-vxwork.ads<libgnarl/s-vxwork__$(ARCH_STR).ads
>
> - LIBGNAT_TARGET_PAIRS = \
> - a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
> - a-naliop.ads<libgnat/a-naliop__nolibm.ads \
> - a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \
> - a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \
> - s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
> - s-interr.adb<libgnarl/s-interr__vxworks.adb \
> - s-intman.ads<libgnarl/s-intman__vxworks.ads \
> - s-intman.adb<libgnarl/s-intman__vxworks.adb \
> - s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
> - s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
> - s-osprim.adb<libgnat/s-osprim__vxworks.adb \
> - s-parame.ads<libgnat/s-parame__vxworks.ads \
> - s-parame.adb<libgnat/s-parame__vxworks.adb \
> - s-stchop.ads<libgnat/s-stchop__limit.ads \
> - s-stchop.adb<libgnat/s-stchop__vxworks.adb \
> - s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
> - s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
> - s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
> - s-vxwork.ads<libgnarl/s-vxwork__$(ARCH_STR).ads \
> - g-socthi.ads<libgnat/g-socthi__vxworks.ads \
> - g-socthi.adb<libgnat/g-socthi__vxworks.adb \
> - g-stsifd.adb<libgnat/g-stsifd__sockets.adb
> + SVX=system-$(VX)
>
> TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
>
> @@ -1495,9 +1505,8 @@ ifeq ($(strip $(filter-out aarch64 arm% coff wrs vx%,$(target_cpu) $(target_vend
> endif
> endif
>
> - EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o \
> - s-stchop.o
> - EXTRA_GNATRTL_TASKING_OBJS=i-vxinco.o s-vxwork.o s-vxwext.o
> + EXTRA_GNATRTL_NONTASKING_OBJS += i-vxwork.o i-vxwoio.o s-stchop.o
> + EXTRA_GNATRTL_TASKING_OBJS += i-vxinco.o s-vxwork.o s-vxwext.o
>
> EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
>
> @@ -1560,10 +1569,12 @@ ifeq ($(strip $(filter-out aarch64 %qnx,$(target_cpu) $(target_os))),)
> g-soliop.ads<libgnat/g-soliop__qnx.ads \
> $(ATOMICS_TARGET_PAIRS) \
> $(ATOMICS_BUILTINS_TARGET_PAIRS) \
> + $(GNATRTL_128BIT_PAIRS) \
> system.ads<libgnat/system-qnx-aarch64.ads
>
> TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
>
> + EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
> EXTRA_GNATRTL_TASKING_OBJS=s-qnx.o
> EXTRA_LIBGNAT_OBJS+=sigtramp-qnx.o
> EXTRA_LIBGNAT_SRCS+=sigtramp.h
> @@ -1576,7 +1587,7 @@ ifeq ($(strip $(filter-out aarch64 %qnx,$(target_cpu) $(target_os))),)
> LIBRARY_VERSION := $(LIB_VERSION)
> endif
>
> -# Sparc Solaris
> +# SPARC Solaris
> ifeq ($(strip $(filter-out sparc% sun solaris%,$(target_cpu) $(target_vendor) $(target_os))),)
> LIBGNAT_TARGET_PAIRS = \
> a-intnam.ads<libgnarl/a-intnam__solaris.ads \
> @@ -1600,6 +1611,18 @@ ifeq ($(strip $(filter-out sparc% sun solaris%,$(target_cpu) $(target_vendor) $(
>
> EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
>
> + ifeq ($(strip $(filter-out sparc64 sparcv9,$(target_cpu))),)
> + ifneq ($(strip $(MULTISUBDIR)),/sparcv8plus)
> + LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
> + EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
> + endif
> + else
> + ifeq ($(strip $(MULTISUBDIR)),/sparcv9)
> + LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
> + EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
> + endif
> + endif
> +
> EH_MECHANISM=-gcc
> THREADSLIB = -lposix4 -lthread
> MISCLIB = -lposix4 -lnsl -lsocket
> @@ -1609,7 +1632,7 @@ ifeq ($(strip $(filter-out sparc% sun solaris%,$(target_cpu) $(target_vendor) $(
> LIBRARY_VERSION := $(LIB_VERSION)
> endif
>
> -# x86 and x86-64 solaris
> +# x86 and x86-64 Solaris
> ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(target_cpu) $(target_os))),)
> LIBGNAT_TARGET_PAIRS_COMMON = \
> a-intnam.ads<libgnarl/a-intnam__solaris.ads \
> @@ -1633,6 +1656,8 @@ ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(target_cpu) $(target_os))),)
> ifeq ($(strip $(MULTISUBDIR)),/amd64)
> LIBGNAT_TARGET_PAIRS = \
> $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_64_TARGET_PAIRS)
> + LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
> + EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
> else
> LIBGNAT_TARGET_PAIRS = \
> $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_TARGET_PAIRS)
> @@ -1644,6 +1669,8 @@ ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(target_cpu) $(target_os))),)
> else
> LIBGNAT_TARGET_PAIRS = \
> $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_64_TARGET_PAIRS)
> + LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
> + EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
> endif
> endif
>
> @@ -1679,6 +1706,8 @@ ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),)
>
> ifeq ($(strip $(MULTISUBDIR)),/64)
> LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
> + LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
> + EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
> else
> LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
> endif
> @@ -1776,8 +1805,13 @@ ifeq ($(strip $(filter-out x86_64 kfreebsd%,$(target_cpu) $(target_os))),)
> s-taprop.adb<libgnarl/s-taprop__posix.adb \
> s-taspri.ads<libgnarl/s-taspri__posix.ads \
> s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
> + $(ATOMICS_TARGET_PAIRS) \
> + $(X86_64_TARGET_PAIRS) \
> + $(GNATRTL_128BIT_PAIRS) \
> system.ads<libgnat/system-freebsd.ads
>
> + EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
> +
> TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
>
> EH_MECHANISM=-gcc
> @@ -1803,8 +1837,11 @@ ifeq ($(strip $(filter-out %aarch64 freebsd%,$(target_cpu) $(target_os))),)
> s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
> $(ATOMICS_TARGET_PAIRS) \
> $(ATOMICS_BUILTINS_TARGET_PAIRS) \
> + $(GNATRTL_128BIT_PAIRS) \
> system.ads<libgnat/system-freebsd.ads
>
> + EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
> +
> GNATLIB_SHARED = gnatlib-shared-dual
>
> EH_MECHANISM=-gcc
> @@ -1860,12 +1897,14 @@ ifeq ($(strip $(filter-out %86_64 freebsd%,$(target_cpu) $(target_os))),)
> $(TRASYM_DWARF_UNIX_PAIRS) \
> $(ATOMICS_TARGET_PAIRS) \
> $(X86_64_TARGET_PAIRS) \
> + $(GNATRTL_128BIT_PAIRS) \
> system.ads<libgnat/system-freebsd.ads
>
> GNATLIB_SHARED = gnatlib-shared-dual
>
> EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
> EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
> + EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
>
> EH_MECHANISM=-gcc
> THREADSLIB= -lpthread
> @@ -1889,11 +1928,13 @@ ifeq ($(strip $(filter-out %86_64 dragonfly%,$(target_cpu) $(target_os))),)
> s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
> $(ATOMICS_TARGET_PAIRS) \
> $(X86_64_TARGET_PAIRS) \
> + $(GNATRTL_128BIT_PAIRS) \
> system.ads<libgnat/system-dragonfly-x86_64.ads
>
> GNATLIB_SHARED = gnatlib-shared-dual
>
> - EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
> + EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
> + EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
>
> EH_MECHANISM=-gcc
> THREADSLIB= -lpthread
> @@ -1919,6 +1960,18 @@ ifeq ($(strip $(filter-out s390% linux%,$(target_cpu) $(target_os))),)
> s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
> system.ads<libgnat/system-linux-s390.ads
>
> + ifeq ($(strip $(filter-out s390x,$(target_cpu))),)
> + ifneq ($(strip $(MULTISUBDIR)),/32)
> + LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
> + EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
> + endif
> + else
> + ifeq ($(strip $(MULTISUBDIR)),/64)
> + LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
> + EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
> + endif
> + endif
> +
> TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
>
> EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
> @@ -2208,7 +2261,7 @@ endif
>
> # PowerPC and e500v2 Linux
> ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
> - LIBGNAT_TARGET_PAIRS_COMMON = \
> + LIBGNAT_TARGET_PAIRS = \
> a-exetim.adb<libgnarl/a-exetim__posix.adb \
> a-exetim.ads<libgnarl/a-exetim__default.ads \
> a-intnam.ads<libgnarl/a-intnam__linux.ads \
> @@ -2220,21 +2273,30 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
> s-linux.ads<libgnarl/s-linux.ads \
> s-osinte.adb<libgnarl/s-osinte__posix.adb \
> s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
> + s-mudido.adb<libgnarl/s-mudido__affinity.adb \
> + s-osinte.ads<libgnarl/s-osinte__linux.ads \
> + s-osprim.adb<libgnat/s-osprim__posix.adb \
> + s-taprop.adb<libgnarl/s-taprop__linux.adb \
> + s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
> + s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
> + s-taspri.ads<libgnarl/s-taspri__posix.ads \
> $(TRASYM_DWARF_UNIX_PAIRS) \
> s-tsmona.adb<libgnat/s-tsmona__linux.adb \
> $(ATOMICS_TARGET_PAIRS) \
> $(ATOMICS_BUILTINS_TARGET_PAIRS) \
> system.ads<libgnat/system-linux-ppc.ads
>
> - LIBGNAT_TARGET_PAIRS = \
> - $(LIBGNAT_TARGET_PAIRS_COMMON) \
> - s-mudido.adb<libgnarl/s-mudido__affinity.adb \
> - s-osinte.ads<libgnarl/s-osinte__linux.ads \
> - s-osprim.adb<libgnat/s-osprim__posix.adb \
> - s-taprop.adb<libgnarl/s-taprop__linux.adb \
> - s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
> - s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
> - s-taspri.ads<libgnarl/s-taspri__posix.ads
> + ifeq ($(strip $(filter-out powerpc64,$(target_cpu))),)
> + ifneq ($(strip $(MULTISUBDIR)),/32)
> + LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
> + EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
> + endif
> + else
> + ifeq ($(strip $(MULTISUBDIR)),/64)
> + LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
> + EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
> + endif
> + endif
>
> TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
>
> @@ -2301,10 +2363,12 @@ ifeq ($(strip $(filter-out aarch64% linux%,$(target_cpu) $(target_os))),)
> s-taspri.ads<libgnarl/s-taspri__posix.ads \
> $(ATOMICS_TARGET_PAIRS) \
> $(ATOMICS_BUILTINS_TARGET_PAIRS) \
> + $(GNATRTL_128BIT_PAIRS) \
> system.ads<libgnat/system-linux-arm.ads
>
> TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
>
> + EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
> EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
> EH_MECHANISM=-gcc
> THREADSLIB=-lpthread -lrt
> @@ -2313,7 +2377,7 @@ ifeq ($(strip $(filter-out aarch64% linux%,$(target_cpu) $(target_os))),)
> LIBRARY_VERSION := $(LIB_VERSION)
> endif
>
> -# Sparc Linux
> +# SPARC Linux
> ifeq ($(strip $(filter-out sparc% linux%,$(target_cpu) $(target_os))),)
> LIBGNAT_TARGET_PAIRS = \
> a-intnam.ads<libgnarl/a-intnam__linux.ads \
> @@ -2330,6 +2394,18 @@ ifeq ($(strip $(filter-out sparc% linux%,$(target_cpu) $(target_os))),)
> s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
> system.ads<libgnat/system-linux-sparc.ads
>
> + ifeq ($(strip $(filter-out sparc64 sparcv9,$(target_cpu))),)
> + ifneq ($(strip $(MULTISUBDIR)),/32)
> + LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
> + EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
> + endif
> + else
> + ifeq ($(strip $(MULTISUBDIR)),/64)
> + LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
> + EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
> + endif
> + endif
> +
> TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
>
> EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
> @@ -2447,11 +2523,13 @@ ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
> s-tsmona.adb<libgnat/s-tsmona__linux.adb \
> $(ATOMICS_TARGET_PAIRS) \
> $(ATOMICS_BUILTINS_TARGET_PAIRS) \
> + $(GNATRTL_128BIT_PAIRS) \
> system.ads<libgnat/system-linux-ia64.ads
>
> TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
>
> EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
> + EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJ
> EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
> EH_MECHANISM=-gcc
> THREADSLIB=-lpthread -lrt
/usr/local/gcc/gcc-20201023/gcc/ada/Makefile.rtl:2834: *** unterminated variable reference. Stop.
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1
"And now for something completely different."
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Ada] Build support units for 128-bit integer types on 64-bit platforms
2020-10-23 8:11 ` Andreas Schwab
@ 2020-10-23 16:18 ` Eric Botcazou
2020-10-23 17:14 ` Andreas Schwab
0 siblings, 1 reply; 10+ messages in thread
From: Eric Botcazou @ 2020-10-23 16:18 UTC (permalink / raw)
To: Andreas Schwab; +Cc: Pierre-Marie de Rodat, gcc-patches
[-- Attachment #1: Type: text/plain, Size: 192 bytes --]
> /usr/local/gcc/gcc-20201023/gcc/ada/Makefile.rtl:2834: *** unterminated
> variable reference. Stop.
Sorry about that, tentatively fixed by the attached patch, installed.
--
Eric Botcazou
[-- Attachment #2: p.diff --]
[-- Type: text/x-patch, Size: 574 bytes --]
diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl
index 7a0c05b423d..f91085dd404 100644
--- a/gcc/ada/Makefile.rtl
+++ b/gcc/ada/Makefile.rtl
@@ -2533,7 +2533,7 @@ ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
- EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJ
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJ)
EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
EH_MECHANISM=-gcc
THREADSLIB=-lpthread -lrt
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Ada] Build support units for 128-bit integer types on 64-bit platforms
2020-10-23 16:18 ` Eric Botcazou
@ 2020-10-23 17:14 ` Andreas Schwab
2020-10-23 17:20 ` Eric Botcazou
0 siblings, 1 reply; 10+ messages in thread
From: Andreas Schwab @ 2020-10-23 17:14 UTC (permalink / raw)
To: Eric Botcazou; +Cc: gcc-patches
On Okt 23 2020, Eric Botcazou wrote:
> diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl
> index 7a0c05b423d..f91085dd404 100644
> --- a/gcc/ada/Makefile.rtl
> +++ b/gcc/ada/Makefile.rtl
> @@ -2533,7 +2533,7 @@ ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
> TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
>
> EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
> - EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJ
> + EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJ)
That variable doesn't exist.
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1
"And now for something completely different."
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Ada] Build support units for 128-bit integer types on 64-bit platforms
2020-10-23 17:14 ` Andreas Schwab
@ 2020-10-23 17:20 ` Eric Botcazou
0 siblings, 0 replies; 10+ messages in thread
From: Eric Botcazou @ 2020-10-23 17:20 UTC (permalink / raw)
To: Andreas Schwab; +Cc: gcc-patches
[-- Attachment #1: Type: text/plain, Size: 85 bytes --]
> That variable doesn't exist.
Bummer. Attached patch installed.
--
Eric Botcazou
[-- Attachment #2: p.diff --]
[-- Type: text/x-patch, Size: 576 bytes --]
diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl
index 39b458781a8..7b5b3344af7 100644
--- a/gcc/ada/Makefile.rtl
+++ b/gcc/ada/Makefile.rtl
@@ -2543,7 +2543,7 @@ ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
- EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJ)
+ EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
EH_MECHANISM=-gcc
THREADSLIB=-lpthread -lrt
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Ada] Build support units for 128-bit integer types on 64-bit platforms
2020-10-22 12:12 [Ada] Build support units for 128-bit integer types on 64-bit platforms Pierre-Marie de Rodat
2020-10-23 8:11 ` Andreas Schwab
@ 2020-11-18 11:36 ` Matthias Klose
2020-11-18 12:11 ` Eric Botcazou
1 sibling, 1 reply; 10+ messages in thread
From: Matthias Klose @ 2020-11-18 11:36 UTC (permalink / raw)
To: Pierre-Marie de Rodat, gcc-patches; +Cc: Eric Botcazou
On 10/22/20 2:12 PM, Pierre-Marie de Rodat wrote:
> This enables the build of the support units for 128-bit integer types
> in the full runtime of 64-bit platforms.
>
> Tested on x86_64-pc-linux-gnu, committed on trunk
>
> gcc/ada/
>
> * Makefile.rtl (64-bit platforms): Add GNATRTL_128BIT_PAIRS to
> the LIBGNAT_TARGET_PAIRS list and also GNATRTL_128BIT_OBJS to
> the EXTRA_GNATRTL_NONTASKING_OBJS list.
>
that broke the build of an ada cross compiler targeting powerpc64le-linux-gnu.
target_cpu is powerpc64le which is not matched by the Makefile logic.
Ok for the trunk?
PR ada/97859
* Makefile.rtl (powerpc% linux%): Also match powerpc64le cpu.
--- a/gcc/ada/Makefile.rtl
+++ b/gcc/ada/Makefile.rtl
@@ -2305,7 +2305,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu)
$(target_os))),)
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
system.ads<libgnat/system-linux-ppc.ads
- ifeq ($(strip $(filter-out powerpc64,$(target_cpu))),)
+ ifeq ($(strip $(filter-out powerpc64%,$(target_cpu))),)
ifneq ($(strip $(MULTISUBDIR)),/32)
LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Ada] Build support units for 128-bit integer types on 64-bit platforms
2020-11-18 11:36 ` Matthias Klose
@ 2020-11-18 12:11 ` Eric Botcazou
2020-11-20 20:57 ` Maciej W. Rozycki
0 siblings, 1 reply; 10+ messages in thread
From: Eric Botcazou @ 2020-11-18 12:11 UTC (permalink / raw)
To: Matthias Klose; +Cc: gcc-patches, Pierre-Marie de Rodat
> that broke the build of an ada cross compiler targeting
> powerpc64le-linux-gnu. target_cpu is powerpc64le which is not matched by
> the Makefile logic.
>
> Ok for the trunk?
>
> PR ada/97859
> * Makefile.rtl (powerpc% linux%): Also match powerpc64le cpu.
Yes, thanks.
--
Eric Botcazou
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Ada] Build support units for 128-bit integer types on 64-bit platforms
2020-11-18 12:11 ` Eric Botcazou
@ 2020-11-20 20:57 ` Maciej W. Rozycki
2020-12-03 11:40 ` Andreas Schwab
0 siblings, 1 reply; 10+ messages in thread
From: Maciej W. Rozycki @ 2020-11-20 20:57 UTC (permalink / raw)
To: Eric Botcazou; +Cc: Matthias Klose, gcc-patches
On Wed, 18 Nov 2020, Eric Botcazou wrote:
> > that broke the build of an ada cross compiler targeting
> > powerpc64le-linux-gnu. target_cpu is powerpc64le which is not matched by
> > the Makefile logic.
> >
> > Ok for the trunk?
> >
> > PR ada/97859
> > * Makefile.rtl (powerpc% linux%): Also match powerpc64le cpu.
>
> Yes, thanks.
For the record: in a native `powerpc64le-linux-gnu' build despite the
issue a functional compiler used to be built, except for the acats test
suite reporting a catastrophic failure:
=== acats support ===
Generating support files...**** Failed to compile impbit
make: [.../gcc/ada/gcc-interface/Make-lang.in:958: check-acats] Error 1 (ignored)
and then acats.log reporting:
.../gcc/gnatbind -x impbit.ali
error: "s-imgllli.ali" not found, "s-imgllli.ads" must be compiled
gnatmake: *** bind failed.
**** Failed to compile impbit
I noticed that in VAX verification and came up with the same fix, and was
about to post it (now that I completed the VAX effort and could catch up
with other stuff) when I noticed it has been addressed already.
Native `powerpc64le-linux-gnu' acats test results are now all-clean:
=== acats Summary ===
# of expected passes 2320
# of unexpected failures 0
(well, non-native acats verification sadly doesn't work anyway).
Maciej
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Ada] Build support units for 128-bit integer types on 64-bit platforms
2020-11-20 20:57 ` Maciej W. Rozycki
@ 2020-12-03 11:40 ` Andreas Schwab
2020-12-07 8:56 ` Maciej W. Rozycki
0 siblings, 1 reply; 10+ messages in thread
From: Andreas Schwab @ 2020-12-03 11:40 UTC (permalink / raw)
To: Maciej W. Rozycki; +Cc: Eric Botcazou, Matthias Klose, gcc-patches
On Nov 20 2020, Maciej W. Rozycki wrote:
> For the record: in a native `powerpc64le-linux-gnu' build despite the
> issue a functional compiler used to be built, except for the acats test
> suite reporting a catastrophic failure:
>
> === acats support ===
> Generating support files...**** Failed to compile impbit
> make: [.../gcc/ada/gcc-interface/Make-lang.in:958: check-acats] Error 1 (ignored)
>
> and then acats.log reporting:
>
> .../gcc/gnatbind -x impbit.ali
> error: "s-imgllli.ali" not found, "s-imgllli.ads" must be compiled
> gnatmake: *** bind failed.
> **** Failed to compile impbit
This means GNATRTL_128BIT_OBJS is missing from
EXTRA_GNATRTL_NONTASKING_OBJS.
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1
"And now for something completely different."
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Ada] Build support units for 128-bit integer types on 64-bit platforms
2020-12-03 11:40 ` Andreas Schwab
@ 2020-12-07 8:56 ` Maciej W. Rozycki
0 siblings, 0 replies; 10+ messages in thread
From: Maciej W. Rozycki @ 2020-12-07 8:56 UTC (permalink / raw)
To: Andreas Schwab; +Cc: Eric Botcazou, Matthias Klose, gcc-patches
On Thu, 3 Dec 2020, Andreas Schwab wrote:
> > .../gcc/gnatbind -x impbit.ali
> > error: "s-imgllli.ali" not found, "s-imgllli.ads" must be compiled
> > gnatmake: *** bind failed.
> > **** Failed to compile impbit
>
> This means GNATRTL_128BIT_OBJS is missing from
> EXTRA_GNATRTL_NONTASKING_OBJS.
Yep, I came to the same conclusion and that's what Matthias's commit
ba97b5326048 fixed.
Maciej
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2020-12-07 8:56 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-22 12:12 [Ada] Build support units for 128-bit integer types on 64-bit platforms Pierre-Marie de Rodat
2020-10-23 8:11 ` Andreas Schwab
2020-10-23 16:18 ` Eric Botcazou
2020-10-23 17:14 ` Andreas Schwab
2020-10-23 17:20 ` Eric Botcazou
2020-11-18 11:36 ` Matthias Klose
2020-11-18 12:11 ` Eric Botcazou
2020-11-20 20:57 ` Maciej W. Rozycki
2020-12-03 11:40 ` Andreas Schwab
2020-12-07 8:56 ` Maciej W. Rozycki
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).