https://gcc.gnu.org/g:39bd80bee89d68be08d5b41ad71adfb2ec6cff05
commit r15-4136-g39bd80bee89d68be08d5b41ad71adfb2ec6cff05 Author: Olivier Hainque <hain...@adacore.com> Date: Fri Aug 16 17:12:13 2024 +0200 ada: Extend arm-android section of Makefile.rtl to aarch64 gcc/ada/ChangeLog: * Makefile.rtl: Extend arm-android section to aarch64, in a similar fashion as other arm/arch64 configurations. Introduce pair selection guards to prevent match of aarch64-linux-android on the regular aarch64-linux% cross as well. Diff: --- gcc/ada/Makefile.rtl | 228 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 223 insertions(+), 5 deletions(-) diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl index 1512c01f3f8c..9f4c6cd99dcd 100644 --- a/gcc/ada/Makefile.rtl +++ b/gcc/ada/Makefile.rtl @@ -1079,9 +1079,21 @@ GCC_SPEC_FILES= # $(strip STRING) removes leading and trailing spaces from STRING. # If what's left is null then it's a match. +# Setup to make sure at most one match gets selected, useful for android +# targets which are canonically configured with a linux-android target_os, +# which would match filtering patterns such as linux% intended to match +# only regular linux or linux64 variants. + +# The current set of selected pairs. A new match remains allowed +# as long as this isn't assigned a new value. +SELECTED_PAIRS=PAIRS_NONE + # PowerPC VxWorks6 and VxWorks7 +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out powerpc% wrs vxworks vxworks7%, $(target_cpu) $(target_vendor) $(target_os))),) + SELECTED_PAIRS=powerpc-vxworks + ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),) ARCH_STR=ppc64 else @@ -1189,10 +1201,14 @@ ifeq ($(strip $(filter-out powerpc% wrs vxworks vxworks7%, $(target_cpu) $(targe GCC_SPEC_FILES+=vxworks-smp-$(ARCH_STR)-link.spec endif endif +endif # x86/x86_64 VxWorks7 +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out %86 x86_64 wrs vxworks7%, $(target_cpu) $(target_vendor) $(target_os))),) + SELECTED_PAIRS=x86-vxworks7 + LIBGNAT_TARGET_PAIRS= \ a-intnam.ads<libgnarl/a-intnam__vxworks.ads \ i-vxwork.ads<libgnat/i-vxwork__x86.ads \ @@ -1298,10 +1314,14 @@ ifeq ($(strip $(filter-out %86 x86_64 wrs vxworks7%, $(target_cpu) $(target_vend GCC_SPEC_FILES+=vxworks7-$(X86CPU)-rtp-base-link.spec endif +endif # ARM and Aarch64 VxWorks7 +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out aarch64 arm wrs vxworks7%, $(target_cpu) $(target_vendor) $(target_os))),) + SELECTED_PAIRS=arm-vxworks7 + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__vxworks.ads \ a-naliop.ads<libgnat/a-naliop__nolibm.ads \ @@ -1384,9 +1404,12 @@ ifeq ($(strip $(filter-out aarch64 arm wrs vxworks7%, $(target_cpu) $(target_ven GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec endif +endif + +# ARM and AARCH64 Android +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) +ifeq ($(strip $(filter-out arm% aarch64 linux-android%,$(target_cpu) $(target_os))),) -# ARM android -ifeq ($(strip $(filter-out arm% linux-androideabi,$(target_cpu) $(target_os))),) LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__linux.ads \ s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ @@ -1406,16 +1429,40 @@ ifeq ($(strip $(filter-out arm% linux-androideabi,$(target_cpu) $(target_os))),) TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb EXTRA_GNATRTL_TASKING_OBJS=s-linux.o - EXTRA_LIBGNAT_OBJS+=sigtramp-armdroid.o + + # 32bit arm relies on a sigtramp for signal->exception propagation + # while aarch64 relies on kernel dwarf CFI. And as a 64bit target, + # aarch64 can also incorporate support for 128bit arithmetic. + + ifeq ($(strip $(filter-out arm%, $(target_cpu))),) + SELECTED_PAIRS=arm-android + + EH_MECHANISM=-arm + SIGTRAMP_OBJ=sigtramp-armdroid.o + else + SELECTED_PAIRS=aarch64-android + + EH_MECHANISM=-gcc + SIGTRAMP_OBJ= + + LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) + EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS) + endif + + EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ) EXTRA_LIBGNAT_SRCS+=sigtramp.h - EH_MECHANISM=-arm THREADSLIB = GNATLIB_SHARED = gnatlib-shared-dual LIBRARY_VERSION := $(LIB_VERSION) endif +endif # ARM and AARCH64 QNX +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out arm aarch64 %qnx,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=arm-qnx + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__qnx.ads \ a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \ @@ -1460,9 +1507,14 @@ ifeq ($(strip $(filter-out arm aarch64 %qnx,$(target_cpu) $(target_os))),) THREADSLIB= LIBRARY_VERSION := $(LIB_VERSION) endif +endif # SPARC Solaris +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out sparc% sun solaris%,$(target_cpu) $(target_vendor) $(target_os))),) + + SELECTED_PAIRS=sparc-solaris + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__solaris.ads \ a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \ @@ -1505,9 +1557,14 @@ ifeq ($(strip $(filter-out sparc% sun solaris%,$(target_cpu) $(target_vendor) $( GMEM_LIB = gmemlib LIBRARY_VERSION := $(LIB_VERSION) endif +endif # x86 and x86-64 Solaris +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=x86-solaris + LIBGNAT_TARGET_PAIRS_COMMON = \ a-intnam.ads<libgnarl/a-intnam__solaris.ads \ s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ @@ -1559,9 +1616,14 @@ ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(target_cpu) $(target_os))),) GMEM_LIB = gmemlib LIBRARY_VERSION := $(LIB_VERSION) endif +endif # x86 Linux +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=x86-linux + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__linux.ads \ a-synbar.adb<libgnarl/a-synbar__posix.adb \ @@ -1611,9 +1673,14 @@ ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),) GNATLIBCFLAGS_FOR_GCCSJLJ+=-fno-omit-frame-pointer -momit-leaf-frame-pointer endif +endif # x86 kfreebsd +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out %86 kfreebsd%,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=x86-kfreebsd + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__freebsd.ads \ s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ @@ -1642,9 +1709,14 @@ ifeq ($(strip $(filter-out %86 kfreebsd%,$(target_cpu) $(target_os))),) LIBRARY_VERSION := $(LIB_VERSION) MISCLIB = -lutil endif +endif # i[3456]86-pc-gnu i.e. GNU Hurd +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out %86 pc gnu,$(target_cpu) $(target_vendor) $(target_os))),) + + SELECTED_PAIRS=x86-gnuhurd + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__freebsd.ads \ s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ @@ -1670,9 +1742,14 @@ ifeq ($(strip $(filter-out %86 pc gnu,$(target_cpu) $(target_vendor) $(target_os GMEM_LIB = gmemlib LIBRARY_VERSION := $(LIB_VERSION) endif +endif # x86-64 kfreebsd +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out x86_64 kfreebsd%,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=x86_64-kfreebsd + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__freebsd.ads \ s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ @@ -1699,9 +1776,14 @@ ifeq ($(strip $(filter-out x86_64 kfreebsd%,$(target_cpu) $(target_os))),) GMEM_LIB = gmemlib LIBRARY_VERSION := $(LIB_VERSION) endif +endif # aarch64 FreeBSD +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out %aarch64 freebsd%,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=aarch64-freebsd + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__freebsd.ads \ a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \ @@ -1731,9 +1813,14 @@ ifeq ($(strip $(filter-out %aarch64 freebsd%,$(target_cpu) $(target_os))),) LIBRARY_VERSION := $(LIB_VERSION) MISCLIB = -lutil endif +endif # x86 FreeBSD +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out %86 freebsd%,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=x86-freebsd + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__freebsd.ads \ s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ @@ -1762,9 +1849,14 @@ ifeq ($(strip $(filter-out %86 freebsd%,$(target_cpu) $(target_os))),) LIBRARY_VERSION := $(LIB_VERSION) MISCLIB = -lutil endif +endif # x86-64 FreeBSD +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out %86_64 freebsd%,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=x86_64-freebsd + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__freebsd.ads \ s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ @@ -1795,9 +1887,14 @@ ifeq ($(strip $(filter-out %86_64 freebsd%,$(target_cpu) $(target_os))),) LIBRARY_VERSION := $(LIB_VERSION) MISCLIB = -lutil endif +endif # x86-64 DragonFly +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out %86_64 dragonfly%,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=x86_64-dragonfly + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__dragonfly.ads \ s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ @@ -1826,9 +1923,14 @@ ifeq ($(strip $(filter-out %86_64 dragonfly%,$(target_cpu) $(target_os))),) LIBRARY_VERSION := $(LIB_VERSION) MISCLIB = -lutil endif +endif # S390 Linux +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out s390% linux%,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=s390-linux + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__linux.ads \ a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \ @@ -1866,9 +1968,14 @@ ifeq ($(strip $(filter-out s390% linux%,$(target_cpu) $(target_os))),) GNATLIB_SHARED = gnatlib-shared-dual LIBRARY_VERSION := $(LIB_VERSION) endif +endif # HP/PA HP-UX 10 +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out hppa% hp hpux10%,$(target_cpu) $(target_vendor) $(target_os))),) + + SELECTED_PAIRS=hppa-hpux10 + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__hpux.ads \ s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ @@ -1887,9 +1994,14 @@ ifeq ($(strip $(filter-out hppa% hp hpux10%,$(target_cpu) $(target_vendor) $(tar EH_MECHANISM=-gcc endif +endif # HP/PA HP-UX 11 +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out hppa% hp hpux11%,$(target_cpu) $(target_vendor) $(target_os))),) + + SELECTED_PAIRS=hppa-hpux11 + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__hpux.ads \ s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ @@ -1915,9 +2027,14 @@ ifeq ($(strip $(filter-out hppa% hp hpux11%,$(target_cpu) $(target_vendor) $(tar GNATLIB_SHARED = gnatlib-shared-dual LIBRARY_VERSION := $(LIB_VERSION) endif +endif # IBM AIX +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out ibm aix%,$(target_vendor) $(target_os))),) + + SELECTED_PAIRS=ibm-aix + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__aix.ads \ s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ @@ -1952,9 +2069,14 @@ ifeq ($(strip $(filter-out ibm aix%,$(target_vendor) $(target_os))),) GMEM_LIB = gmemlib endif +endif # LynxOS 178 and LynxOS 178 Elf +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out lynxos178%,$(target_os))),) + + SELECTED_PAIRS=lynx178 + TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb LIBGNAT_TARGET_PAIRS = \ @@ -1989,9 +2111,14 @@ ifeq ($(strip $(filter-out lynxos178%,$(target_os))),) EH_MECHANISM=-gcc endif +endif # RTEMS +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out rtems%,$(target_os))),) + + SELECTED_PAIRS=rtems + LIBGNAT_TARGET_PAIRS = \ system.ads<libgnat/system-rtems.ads \ a-intnam.ads<libgnarl/a-intnam__rtems.ads \ @@ -2033,6 +2160,7 @@ ifeq ($(strip $(filter-out rtems%,$(target_os))),) $(ATOMICS_BUILTINS_TARGET_PAIRS) endif endif +endif # PikeOS ifeq ($(strip $(filter-out powerpc% %86 sysgo pikeos,$(target_cpu) $(target_vendor) $(target_os)))),) @@ -2044,7 +2172,11 @@ ifeq ($(strip $(filter-out elf eabi eabispe,$(target_os))),) TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb endif +# gjgpp +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out %djgpp,$(target_os))),) + + SELECTED_PAIRS=djgpp GNATRTL_SOCKETS_OBJS = LIBGNAT_TARGET_PAIRS = \ @@ -2060,9 +2192,14 @@ ifeq ($(strip $(filter-out %djgpp,$(target_os))),) EH_MECHANISM=-gcc endif +endif # Cygwin/Mingw32 +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out cygwin% mingw32% pe,$(target_os))),) + + SELECTED_PAIRS=cygming + # Cygwin provides a full Posix environment, and so we use the default # versions g-socthi rather than the Windows-specific MinGW version. # Ideally we would use all the default versions for Cygwin and none @@ -2147,9 +2284,14 @@ ifeq ($(strip $(filter-out cygwin% mingw32% pe,$(target_os))),) soext = .dll LIBRARY_VERSION := $(LIB_VERSION) endif +endif # LoongArch Linux +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out loongarch% linux%,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=loongarch-linux + LIBGNAT_TARGET_PAIRS = \ a-exetim.adb<libgnarl/a-exetim__posix.adb \ a-exetim.ads<libgnarl/a-exetim__default.ads \ @@ -2196,10 +2338,14 @@ ifeq ($(strip $(filter-out loongarch% linux%,$(target_cpu) $(target_os))),) GNATLIBCFLAGS += -mno-strict-align GNATLIBCFLAGS_FOR_C += -mno-strict-align endif - +endif # Mips Linux +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out mips% linux%,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=mips-linux + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__linux.ads \ a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \ @@ -2238,9 +2384,14 @@ ifeq ($(strip $(filter-out mips% linux%,$(target_cpu) $(target_os))),) GMEM_LIB = gmemlib LIBRARY_VERSION := $(LIB_VERSION) endif +endif # PowerPC and e500v2 Linux +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=powerpc-linux + LIBGNAT_TARGET_PAIRS = \ a-exetim.adb<libgnarl/a-exetim__posix.adb \ a-exetim.ads<libgnarl/a-exetim__default.ads \ @@ -2296,9 +2447,14 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),) GMEM_LIB = gmemlib LIBRARY_VERSION := $(LIB_VERSION) endif +endif # ARM linux, GNU eabi +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=arm-linux-gnueabi + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__linux.ads \ s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ @@ -2328,9 +2484,14 @@ ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),) GMEM_LIB = gmemlib LIBRARY_VERSION := $(LIB_VERSION) endif +endif # AArch64 Linux +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out aarch64% linux%,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=aarch64-linux + LIBGNAT_TARGET_PAIRS = \ a-exetim.adb<libgnarl/a-exetim__posix.adb \ a-exetim.ads<libgnarl/a-exetim__default.ads \ @@ -2371,9 +2532,14 @@ ifeq ($(strip $(filter-out aarch64% linux%,$(target_cpu) $(target_os))),) GMEM_LIB = gmemlib LIBRARY_VERSION := $(LIB_VERSION) endif +endif # SPARC Linux +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out sparc% linux%,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=sparc-linux + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__linux.ads \ a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \ @@ -2416,9 +2582,14 @@ ifeq ($(strip $(filter-out sparc% linux%,$(target_cpu) $(target_os))),) GMEM_LIB = gmemlib LIBRARY_VERSION := $(LIB_VERSION) endif +endif # HP/PA Linux +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out hppa% linux%,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=hppa-linux + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__linux.ads \ s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ @@ -2444,9 +2615,14 @@ ifeq ($(strip $(filter-out hppa% linux%,$(target_cpu) $(target_os))),) GMEM_LIB = gmemlib LIBRARY_VERSION := $(LIB_VERSION) endif +endif # M68K Linux +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out m68k% linux%,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=m68k-linux + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__linux.ads \ s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ @@ -2472,9 +2648,14 @@ ifeq ($(strip $(filter-out m68k% linux%,$(target_cpu) $(target_os))),) GMEM_LIB = gmemlib LIBRARY_VERSION := $(LIB_VERSION) endif +endif # SH4 Linux +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out sh4% linux%,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=sh4-linux + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__linux.ads \ s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ @@ -2501,9 +2682,14 @@ ifeq ($(strip $(filter-out sh4% linux%,$(target_cpu) $(target_os))),) GMEM_LIB = gmemlib LIBRARY_VERSION := $(LIB_VERSION) endif +endif # IA64 Linux +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=ia64-linux + LIBGNAT_TARGET_PAIRS = \ a-exetim.adb<libgnarl/a-exetim__posix.adb \ a-exetim.ads<libgnarl/a-exetim__default.ads \ @@ -2544,9 +2730,14 @@ ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),) GMEM_LIB = gmemlib LIBRARY_VERSION := $(LIB_VERSION) endif +endif # IA64 HP-UX +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out ia64% hp hpux%,$(target_cpu) $(target_vendor) $(target_os))),) + + SELECTED_PAIRS=ia64-hpux + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__hpux.ads \ s-dorepr.adb<libgnat/s-dorepr__fma.adb \ @@ -2577,9 +2768,14 @@ ifeq ($(strip $(filter-out ia64% hp hpux%,$(target_cpu) $(target_vendor) $(targe SO_OPTS = -Wl,+h, LIBRARY_VERSION := $(LIB_VERSION) endif +endif # Alpha Linux +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out alpha% linux%,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=alpha-linux + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__linux.ads \ a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \ @@ -2610,9 +2806,14 @@ ifeq ($(strip $(filter-out alpha% linux%,$(target_cpu) $(target_os))),) GNATLIB_SHARED=gnatlib-shared-dual LIBRARY_VERSION := $(LIB_VERSION) endif +endif # x86-64 Linux +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out %x86_64 linux%,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=x86_64-linux + LIBGNAT_TARGET_PAIRS = \ a-exetim.adb<libgnarl/a-exetim__posix.adb \ a-exetim.ads<libgnarl/a-exetim__default.ads \ @@ -2656,8 +2857,14 @@ ifeq ($(strip $(filter-out %x86_64 linux%,$(target_cpu) $(target_os))),) GNATLIBCFLAGS_FOR_GCCSJLJ+=-fno-omit-frame-pointer -momit-leaf-frame-pointer endif +endif +# x32-linux +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out %x32 linux%,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=x32-linux + LIBGNAT_TARGET_PAIRS = \ a-exetim.adb<libgnarl/a-exetim__posix.adb \ a-exetim.ads<libgnarl/a-exetim__default.ads \ @@ -2698,9 +2905,14 @@ ifeq ($(strip $(filter-out %x32 linux%,$(target_cpu) $(target_os))),) GMEM_LIB = gmemlib LIBRARY_VERSION := $(LIB_VERSION) endif +endif # RISC-V Linux +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out riscv% linux%,$(target_cpu) $(target_os))),) + + SELECTED_PAIRS=riscv-linux + LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__linux.ads \ a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \ @@ -2740,9 +2952,14 @@ ifeq ($(strip $(filter-out riscv% linux%,$(target_cpu) $(target_os))),) GMEM_LIB = gmemlib LIBRARY_VERSION := $(LIB_VERSION) endif +endif # Darwin (Mac OS X) +ifeq ($(SELECTED_PAIRS),PAIRS_NONE) ifeq ($(strip $(filter-out darwin%,$(target_os))),) + + SELECTED_PAIRS=darwin + SO_OPTS = -shared-libgcc LIBGNAT_TARGET_PAIRS = \ a-intnam.ads<libgnarl/a-intnam__darwin.ads \ @@ -2858,6 +3075,7 @@ ifeq ($(strip $(filter-out darwin%,$(target_os))),) soext = .dylib GCC_LINK_FLAGS=-static-libstdc++ endif +endif ifeq ($(EH_MECHANISM),-gcc) LIBGNAT_TARGET_PAIRS += \