1 # Makefile.rtl for GNU Ada Compiler (GNAT).
2 # Copyright (C) 2003-2024, Free Software Foundation, Inc.
4 #This file is part of GCC.
6 #GCC is free software; you can redistribute it and/or modify
7 #it under the terms of the GNU General Public License as published by
8 #the Free Software Foundation; either version 3, or (at your option)
11 #GCC is distributed in the hope that it will be useful,
12 #but WITHOUT ANY WARRANTY; without even the implied warranty of
13 #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 #GNU General Public License for more details.
16 #You should have received a copy of the GNU General Public License
17 #along with GCC; see the file COPYING3. If not see
18 #<http://www.gnu.org/licenses/>.
20 # This makefile fragment is included in the ada Makefile.
22 # Its purpose is to allow the separate maintenance of the list of
23 # GNATRTL objects and target pairs, which frequently changes.
29 # Objects needed only for tasking
30 GNATRTL_TASKING_OBJS= \
82 $(EXTRA_GNATRTL_TASKING_OBJS)
84 # Objects that require IEEE Float
85 GNATRTL_ALTIVEC_OBJS= \
94 # Objects needed for non-tasking
95 GNATRTL_NONTASKING_OBJS= \
822 $(GNATRTL_ALTIVEC_OBJS) \
823 $(GNATRTL_SOCKETS_OBJS) \
824 $(EXTRA_GNATRTL_NONTASKING_OBJS)
826 # LIBGNAT_TARGET_PAIRS is a list of pairs of filenames.
827 # The members of each pair must be separated by a '<' and no whitespace.
828 # Each pair must be separated by some amount of whitespace from the following
833 LIBGNAT_TARGET_PAIRS = \
834 a-intnam.ads<libgnarl/a-intnam__dummy.ads \
835 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
836 s-intman.adb<libgnarl/s-intman__dummy.adb \
837 s-osinte.ads<libgnarl/s-osinte__dummy.ads \
838 s-oslock.ads<libgnat/s-oslock__dummy.ads \
839 s-osprim.adb<libgnat/s-osprim__posix.adb \
840 s-taprop.adb<libgnarl/s-taprop__dummy.adb \
841 s-taspri.ads<libgnarl/s-taspri__dummy.ads
843 # When using the GCC exception handling mechanism, we need to use an
844 # alternate body for a-exexpr.adb (a-exexpr-gcc.adb)
848 # Compilation options for the GCC-SJLJ RTS. This may be augmented for
849 # target specific contexts, e.g. to add -fno-omit-frame-pointer for backtrace
851 GNATLIBCFLAGS_FOR_GCCSJLJ=-fsjlj
853 # Default shared object option. Note that we rely on the fact that the "soname"
854 # option will always be present and last in this flag, so that we can have
855 # $(SO_OPTS)libgnat-x.xx
857 SO_OPTS = -Wl,-soname,
859 # Default gnatlib-shared target.
860 # By default, equivalent to gnatlib.
861 # Set to gnatlib-shared-default, gnatlib-shared-dual, or a platform specific
862 # target when supported.
863 GNATLIB_SHARED = gnatlib
865 # By default, build socket support units. On platforms that do not support
866 # sockets, reset this variable to empty and add DUMMY_SOCKETS_TARGET_PAIRS
867 # to LIBGNAT_TARGET_PAIRS.
869 GNATRTL_SOCKETS_OBJS = g-soccon$(objext) g-socket$(objext) g-socthi$(objext) \
870 g-soliop$(objext) g-sothco$(objext) g-socpol$(objext) g-spogwa$(objext)
872 DUMMY_SOCKETS_TARGET_PAIRS = \
873 g-socket.adb<libgnat/g-socket__dummy.adb \
874 g-socket.ads<libgnat/g-socket__dummy.ads \
875 g-socthi.adb<libgnat/g-socthi__dummy.adb \
876 g-socthi.ads<libgnat/g-socthi__dummy.ads \
877 g-sothco.adb<libgnat/g-sothco__dummy.adb \
878 g-sothco.ads<libgnat/g-sothco__dummy.ads \
879 g-socpol.adb<libgnat/g-socpol__dummy.adb \
880 g-socpol.ads<libgnat/g-socpol__dummy.ads
882 # On platforms where atomic increment/decrement operations are supported,
883 # special version of Ada.Strings.Unbounded package can be used.
885 ATOMICS_TARGET_PAIRS = \
886 a-coinho.adb<libgnat/a-coinho__shared.adb \
887 a-coinho.ads<libgnat/a-coinho__shared.ads \
888 a-stunau.adb<libgnat/a-stunau__shared.adb \
889 a-suteio.adb<libgnat/a-suteio__shared.adb \
890 a-strunb.ads<libgnat/a-strunb__shared.ads \
891 a-strunb.adb<libgnat/a-strunb__shared.adb \
892 a-stwiun.adb<libgnat/a-stwiun__shared.adb \
893 a-stwiun.ads<libgnat/a-stwiun__shared.ads \
894 a-swunau.adb<libgnat/a-swunau__shared.adb \
895 a-swuwti.adb<libgnat/a-swuwti__shared.adb \
896 a-stzunb.adb<libgnat/a-stzunb__shared.adb \
897 a-stzunb.ads<libgnat/a-stzunb__shared.ads \
898 a-szunau.adb<libgnat/a-szunau__shared.adb \
899 a-szuzti.adb<libgnat/a-szuzti__shared.adb
901 ATOMICS_BUILTINS_TARGET_PAIRS = \
902 s-atocou.adb<libgnat/s-atocou__builtin.adb
904 # Special version of units for x86 and x86-64 platforms
907 a-nuauco.ads<libgnat/a-nuauco__x86.ads \
908 s-atocou.adb<libgnat/s-atocou__builtin.adb
910 X86_64_TARGET_PAIRS = \
911 a-nuauco.ads<libgnat/a-nuauco__x86.ads \
912 s-atocou.adb<libgnat/s-atocou__builtin.adb
914 # Special version of units for platforms with SIMD math functions
916 SIMD_PATH_TARGET_PAIRS = \
917 a-nalofl.ads<libgnat/a-nalofl__simd.ads \
918 a-nuaufl.ads<libgnat/a-nuaufl__simd.ads
920 # Implementation of symbolic traceback based on DWARF
922 TRASYM_DWARF_UNIX_PAIRS = \
923 s-trasym.adb<libgnat/s-trasym__dwarf.adb \
924 s-mmosin.ads<libgnat/s-mmosin__unix.ads \
925 s-mmosin.adb<libgnat/s-mmosin__unix.adb \
926 s-mmauni.ads<libgnat/s-mmauni__long.ads
928 TRASYM_DWARF_MINGW_PAIRS = \
929 s-trasym.adb<libgnat/s-trasym__dwarf.adb \
930 s-mmosin.ads<libgnat/s-mmosin__mingw.ads \
931 s-mmosin.adb<libgnat/s-mmosin__mingw.adb
933 TRASYM_DWARF_COMMON_OBJS = \
939 TRASYM_DWARF_UNIX_OBJS = $(TRASYM_DWARF_COMMON_OBJS) s-mmauni$(objext)
941 TRASYM_DWARF_MINGW_OBJS = $(TRASYM_DWARF_COMMON_OBJS)
943 # Support for 128-bit types
945 GNATRTL_128BIT_PAIRS = \
946 a-decima.ads<libgnat/a-decima__128.ads \
947 a-tideio.adb<libgnat/a-tideio__128.adb \
948 a-tifiio.adb<libgnat/a-tifiio__128.adb \
949 a-tiinio.adb<libgnat/a-tiinio__128.adb \
950 a-timoio.adb<libgnat/a-timoio__128.adb \
951 a-wtdeio.adb<libgnat/a-wtdeio__128.adb \
952 a-wtfiio.adb<libgnat/a-wtfiio__128.adb \
953 a-wtinio.adb<libgnat/a-wtinio__128.adb \
954 a-wtmoio.adb<libgnat/a-wtmoio__128.adb \
955 a-ztdeio.adb<libgnat/a-ztdeio__128.adb \
956 a-ztfiio.adb<libgnat/a-ztfiio__128.adb \
957 a-ztinio.adb<libgnat/a-ztinio__128.adb \
958 a-ztmoio.adb<libgnat/a-ztmoio__128.adb \
959 i-cexten.ads<libgnat/i-cexten__128.ads \
960 s-scaval.ads<libgnat/s-scaval__128.ads \
961 s-scaval.adb<libgnat/s-scaval__128.adb
963 GNATRTL_128BIT_OBJS = \
1013 s-pack100$(objext) \
1014 s-pack101$(objext) \
1015 s-pack102$(objext) \
1016 s-pack103$(objext) \
1017 s-pack104$(objext) \
1018 s-pack105$(objext) \
1019 s-pack106$(objext) \
1020 s-pack107$(objext) \
1021 s-pack108$(objext) \
1022 s-pack109$(objext) \
1023 s-pack110$(objext) \
1024 s-pack111$(objext) \
1025 s-pack112$(objext) \
1026 s-pack113$(objext) \
1027 s-pack114$(objext) \
1028 s-pack115$(objext) \
1029 s-pack116$(objext) \
1030 s-pack117$(objext) \
1031 s-pack118$(objext) \
1032 s-pack119$(objext) \
1033 s-pack120$(objext) \
1034 s-pack121$(objext) \
1035 s-pack122$(objext) \
1036 s-pack123$(objext) \
1037 s-pack124$(objext) \
1038 s-pack125$(objext) \
1039 s-pack126$(objext) \
1040 s-pack127$(objext) \
1041 s-vade128$(objext) \
1042 s-vafi128$(objext) \
1043 s-valllli$(objext) \
1044 s-vallllu$(objext) \
1047 s-widllli$(objext) \
1050 # Shared library version
1051 LIB_VERSION = $(strip $(shell grep ' Library_Version :' $(GNAT_SRC)/gnatvsn.ads | sed -e 's/.*"\(.*\)".*/\1/'))
1053 # Additional object files from C source to be added to libgnat.
1056 # Additional C source files to be added to libgnat without corresponding
1057 # object file (#included files). This should include at least the GNAT
1058 # specific header files required to rebuild the runtime library from sources.
1061 # Additional object files from Ada sources to be added in libgnat
1062 EXTRA_GNATRTL_NONTASKING_OBJS=
1064 # Additional object files from Ada sources to be added in libgnarl
1065 EXTRA_GNATRTL_TASKING_OBJS=
1067 # Subsets of extra libgnat sources that always go together
1068 VX_SIGTRAMP_EXTRA_SRCS=sigtramp.h sigtramp-vxworks-target.h
1070 # Additional object files that should go in the same directory as libgnat,
1071 # aside the library itself. Typically useful for crtbegin/crtend kind of files.
1074 # GCC spec files to be installed in $(libsubdir), so --specs=<spec-filename>
1075 # finds them at runtime.
1078 # $(filter-out PATTERN...,TEXT) removes all PATTERN words from TEXT.
1079 # $(strip STRING) removes leading and trailing spaces from STRING.
1080 # If what's left is null then it's a match.
1082 # PowerPC VxWorks6 and VxWorks7
1083 ifeq ($(strip $(filter-out powerpc% wrs vxworks vxworks7%, $(target_cpu) $(target_vendor) $(target_os))),)
1085 ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),)
1091 VX=$(strip $(if $(filter vxworks7%, $(target_os)), vxworks7, vxworks))
1094 LIBGNAT_TARGET_PAIRS = \
1095 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1096 a-naliop.ads<libgnat/a-naliop__nolibm.ads \
1097 a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \
1098 a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \
1099 s-dorepr.adb<libgnat/s-dorepr__fma.adb \
1100 s-inmaop.adb<libgnarl/s-inmaop__hwint.adb \
1101 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1102 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1103 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1104 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1105 s-oslock.ads<libgnat/s-oslock__vxworks.ads \
1106 s-osprim.adb<libgnat/s-osprim__posix.adb \
1107 s-parame.ads<libgnat/s-parame__vxworks.ads \
1108 s-parame.adb<libgnat/s-parame__vxworks.adb \
1109 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1110 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1111 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1112 s-vxwork.ads<libgnarl/s-vxwork__ppc.ads \
1113 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1114 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1115 g-sopowa.adb<libgnat/g-sopowa__posix.adb \
1116 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
1117 $(ATOMICS_TARGET_PAIRS) \
1118 $(ATOMICS_BUILTINS_TARGET_PAIRS)
1120 ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),)
1121 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1122 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1125 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1129 # The rtp and kernel sections must be retained for the sake of ppc-vx6
1130 ifeq ($(strip $(filter-out rtp,$(THREAD_KIND))),)
1131 LIBGNAT_TARGET_PAIRS += \
1132 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1133 s-vxwext.adb<libgnarl/s-vxwext__rtp.adb \
1134 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-rtp.adb \
1135 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp.ads
1138 ifeq ($(strip $(filter-out rtp-smp,$(THREAD_KIND))),)
1139 LIBGNAT_TARGET_PAIRS += \
1140 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1141 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1142 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \
1143 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1144 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp-smp.ads
1146 EXTRA_LIBGNAT_OBJS+=affinity.o
1148 ifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),)
1149 LIBGNAT_TARGET_PAIRS += \
1150 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1151 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1152 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1153 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1154 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \
1155 system.ads<libgnat/$(SVX)-$(ARCH_STR)-kernel.ads
1157 EXTRA_LIBGNAT_OBJS+=affinity.o
1159 ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
1160 LIBGNAT_TARGET_PAIRS += \
1161 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1162 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb \
1163 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1164 s-vxwext.adb<libgnarl/s-vxwext__kernel.adb \
1165 system.ads<libgnat/$(SVX)-$(ARCH_STR)-kernel.ads
1167 RTSERR = $(error NO SUCH RUNTIME)
1170 EXTRA_GNATRTL_NONTASKING_OBJS+=i-vxwork.o i-vxwoio.o
1174 EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o
1175 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1177 EXTRA_GNATRTL_TASKING_OBJS += s-vxwork.o s-vxwext.o
1179 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1181 ifeq ($(strip $(filter-out vxworks7%, $(target_os))),)
1182 ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),)
1183 GCC_SPEC_FILES+=vxworks7-ppc64-rtp-base-link.spec
1185 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec
1188 GCC_SPEC_FILES+=vxworks-$(ARCH_STR)-link.spec
1189 GCC_SPEC_FILES+=vxworks-smp-$(ARCH_STR)-link.spec
1193 # x86/x86_64 VxWorks7
1194 ifeq ($(strip $(filter-out %86 x86_64 wrs vxworks7%, $(target_cpu) $(target_vendor) $(target_os))),)
1196 LIBGNAT_TARGET_PAIRS= \
1197 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1198 i-vxwork.ads<libgnat/i-vxwork__x86.ads \
1199 a-naliop.ads<libgnat/a-naliop__nolibm.ads \
1200 a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \
1201 a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \
1202 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1203 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1204 s-inmaop.adb<libgnarl/s-inmaop__hwint.adb \
1205 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1206 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1207 s-oslock.ads<libgnat/s-oslock__vxworks.ads \
1208 s-osprim.adb<libgnat/s-osprim__posix.adb \
1209 s-parame.ads<libgnat/s-parame__vxworks.ads \
1210 s-parame.adb<libgnat/s-parame__vxworks.adb \
1211 s-stchop.ads<libgnat/s-stchop__limit.ads \
1212 s-stchop.adb<libgnat/s-stchop__vxworks.adb \
1213 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1214 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1215 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1216 s-vxwork.ads<libgnarl/s-vxwork__x86.ads \
1217 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1218 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1219 g-sopowa.adb<libgnat/g-sopowa__posix.adb \
1220 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
1221 $(ATOMICS_TARGET_PAIRS)
1223 ifeq ($(strip $(filter-out x86_64, $(target_cpu))),)
1225 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
1226 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1227 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1230 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
1233 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1237 # The CPU setting for VxSim varies with the
1238 # host (Windows or Linux)
1239 # runtime (rtp or kernel)
1240 # -------------------------------------------------------------
1242 # Windows (host_os = mingw32)
1245 # Linux (host_os = linux-gnu)
1248 # -------------------------------------------------------------
1249 # It is overridden by VXSIM_CPU only in files init-vxsim.c and
1250 # sigtramp-vxworks-vxsim.c which contain functions determined at
1251 # runtime to be called if a program is running on VxSim vs real hardware
1252 # (due to differences in signal context for unwinding).
1254 ifeq ($(strip $(filter-out linux%,$(host_os))),)
1256 VXSIM_CPU = SIMLINUX
1262 GNATLIBCFLAGS_FOR_C := $(GNATLIBCFLAGS_FOR_C) -D__VXSIM_CPU__=$(VXSIM_CPU)
1264 ifeq ($(strip $(filter-out rtp-smp, $(THREAD_KIND))),)
1265 LIBGNAT_TARGET_PAIRS += \
1266 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1267 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1268 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \
1269 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1270 system.ads<libgnat/system-vxworks7-$(X86CPU)-rtp-smp.ads
1272 EXTRA_LIBGNAT_OBJS+=affinity.o
1274 ifeq ($(strip $(filter-out kernel-smp, $(THREAD_KIND))),)
1275 LIBGNAT_TARGET_PAIRS += \
1276 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1277 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1278 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1279 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1280 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \
1281 system.ads<libgnat/system-vxworks7-$(X86CPU)-kernel.ads
1283 EXTRA_LIBGNAT_OBJS+=affinity.o
1285 RTSERR = $(error NO SUCH RUNTIME)
1288 EXTRA_GNATRTL_NONTASKING_OBJS += i-vxwork.o i-vxwoio.o
1291 EXTRA_GNATRTL_NONTASKING_OBJS += s-stchop.o
1292 EXTRA_GNATRTL_TASKING_OBJS += s-vxwork.o s-vxwext.o
1294 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1296 EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o
1297 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1299 GCC_SPEC_FILES+=vxworks7-$(X86CPU)-rtp-base-link.spec
1302 # ARM and Aarch64 VxWorks7
1303 ifeq ($(strip $(filter-out aarch64 arm wrs vxworks7%, $(target_cpu) $(target_vendor) $(target_os))),)
1305 LIBGNAT_TARGET_PAIRS = \
1306 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1307 a-naliop.ads<libgnat/a-naliop__nolibm.ads \
1308 a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \
1309 a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \
1310 s-inmaop.adb<libgnarl/s-inmaop__hwint.adb \
1311 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1312 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1313 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1314 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1315 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1316 s-oslock.ads<libgnat/s-oslock__vxworks.ads \
1317 s-osprim.adb<libgnat/s-osprim__posix.adb \
1318 s-parame.ads<libgnat/s-parame__vxworks.ads \
1319 s-parame.adb<libgnat/s-parame__vxworks.adb \
1320 s-stchop.ads<libgnat/s-stchop__limit.ads \
1321 s-stchop.adb<libgnat/s-stchop__vxworks.adb \
1322 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1323 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1324 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1325 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1326 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1327 g-sopowa.adb<libgnat/g-sopowa__posix.adb \
1328 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
1329 $(ATOMICS_TARGET_PAIRS) \
1330 $(ATOMICS_BUILTINS_TARGET_PAIRS)
1332 ifeq ($(strip $(filter-out aarch64, $(target_cpu))),)
1335 SIGTRAMP_OBJ=sigtramp-vxworks.o
1336 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) \
1337 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1338 s-dorepr.adb<libgnat/s-dorepr__fma.adb
1339 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1343 SIGTRAMP_OBJ=sigtramp-armvxworks.o
1346 LIBGNAT_TARGET_PAIRS += s-vxwork.ads<libgnarl/s-vxwork__$(ARCH_STR).ads
1348 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1350 ifeq ($(strip $(filter-out rtp-smp,$(THREAD_KIND))),)
1351 LIBGNAT_TARGET_PAIRS += \
1352 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1353 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1354 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \
1355 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1356 system.ads<libgnat/system-vxworks7-$(ARCH_STR)-rtp-smp.ads
1358 EXTRA_LIBGNAT_OBJS+=affinity.o
1360 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1361 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1363 ifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),)
1364 LIBGNAT_TARGET_PAIRS += \
1365 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1366 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1367 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1368 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \
1369 system.ads<libgnat/system-vxworks7-$(ARCH_STR).ads
1371 EXTRA_LIBGNAT_OBJS+=affinity.o
1373 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1374 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1376 RTSERR = $(error NO SUCH RUNTIME)
1380 EXTRA_GNATRTL_NONTASKING_OBJS += i-vxwork.o i-vxwoio.o s-stchop.o
1381 EXTRA_GNATRTL_TASKING_OBJS += s-vxwork.o s-vxwext.o
1383 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1385 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec
1389 ifeq ($(strip $(filter-out arm% linux-androideabi,$(target_cpu) $(target_os))),)
1390 LIBGNAT_TARGET_PAIRS = \
1391 a-intnam.ads<libgnarl/a-intnam__linux.ads \
1392 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1393 s-intman.adb<libgnarl/s-intman__android.adb \
1394 s-linux.ads<libgnarl/s-linux__android.ads \
1395 s-osinte.adb<libgnarl/s-osinte__android.adb \
1396 s-osinte.ads<libgnarl/s-osinte__android.ads \
1397 s-oslock.ads<libgnat/s-oslock__posix.ads \
1398 s-osprim.adb<libgnat/s-osprim__posix.adb \
1399 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1400 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1401 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1402 $(ATOMICS_TARGET_PAIRS) \
1403 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1404 system.ads<libgnat/system-linux-arm.ads
1406 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1408 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
1409 EXTRA_LIBGNAT_OBJS+=sigtramp-armdroid.o
1410 EXTRA_LIBGNAT_SRCS+=sigtramp.h
1413 GNATLIB_SHARED = gnatlib-shared-dual
1414 LIBRARY_VERSION := $(LIB_VERSION)
1417 # ARM and AARCH64 QNX
1418 ifeq ($(strip $(filter-out arm aarch64 %qnx,$(target_cpu) $(target_os))),)
1419 LIBGNAT_TARGET_PAIRS = \
1420 a-intnam.ads<libgnarl/a-intnam__qnx.ads \
1421 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1422 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1423 s-intman.adb<libgnarl/s-intman__qnx.adb \
1424 s-osinte.adb<libgnarl/s-osinte__qnx.adb \
1425 s-osinte.ads<libgnarl/s-osinte__qnx.ads \
1426 s-oslock.ads<libgnat/s-oslock__posix.ads \
1427 s-osprim.adb<libgnat/s-osprim__posix.adb \
1428 s-qnx.ads<libgnarl/s-qnx.ads \
1429 s-taprop.adb<libgnarl/s-taprop__qnx.adb \
1430 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1431 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1432 g-soliop.ads<libgnat/g-soliop__qnx.ads \
1433 s-parame.adb<libgnat/s-parame__qnx.adb \
1434 $(ATOMICS_TARGET_PAIRS) \
1435 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1436 system.ads<libgnat/system-qnx-arm.ads
1438 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1440 EXTRA_GNATRTL_TASKING_OBJS=s-qnx.o
1441 ifeq ($(strip $(filter-out arm%, $(target_cpu))),)
1443 SIGTRAMP_OBJ=sigtramp-arm-qnx.o
1446 SIGTRAMP_OBJ=sigtramp-qnx.o
1447 # "fma*" instructions not available for ARM fpu=vfpv3
1448 # but not an issue on AARCH64.
1449 LIBGNAT_TARGET_PAIRS += \
1450 s-dorepr.adb<libgnat/s-dorepr__fma.adb
1451 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1452 EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
1454 GNATLIB_SHARED = gnatlib-shared-dual
1455 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1456 EXTRA_LIBGNAT_SRCS+=sigtramp.h
1458 SO_OPTS= -shared-libgcc -Wl,-soname,
1461 LIBRARY_VERSION := $(LIB_VERSION)
1465 ifeq ($(strip $(filter-out sparc% sun solaris%,$(target_cpu) $(target_vendor) $(target_os))),)
1466 LIBGNAT_TARGET_PAIRS = \
1467 a-intnam.ads<libgnarl/a-intnam__solaris.ads \
1468 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1469 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1470 s-intman.adb<libgnarl/s-intman__solaris.adb \
1471 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1472 s-osinte.adb<libgnarl/s-osinte__solaris.adb \
1473 s-osinte.ads<libgnarl/s-osinte__solaris.ads \
1474 s-oslock.ads<libgnat/s-oslock__solaris.ads \
1475 s-osprim.adb<libgnat/s-osprim__solaris.adb \
1476 s-taprop.adb<libgnarl/s-taprop__solaris.adb \
1477 s-tasinf.adb<libgnarl/s-tasinf__solaris.adb \
1478 s-tasinf.ads<libgnarl/s-tasinf__solaris.ads \
1479 s-taspri.ads<libgnarl/s-taspri__solaris.ads \
1480 s-tpopsp.adb<libgnarl/s-tpopsp__solaris.adb \
1481 g-soliop.ads<libgnat/g-soliop__solaris.ads \
1482 $(TRASYM_DWARF_UNIX_PAIRS) \
1483 $(ATOMICS_TARGET_PAIRS) \
1484 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1485 system.ads<libgnat/system-solaris-sparc.ads
1487 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1489 ifeq ($(strip $(filter-out sparc64 sparcv9,$(target_cpu))),)
1490 ifneq ($(strip $(MULTISUBDIR)),/sparcv8plus)
1491 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1492 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1495 ifeq ($(strip $(MULTISUBDIR)),/sparcv9)
1496 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1497 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1502 MISCLIB = -lnsl -lsocket
1504 GNATLIB_SHARED = gnatlib-shared-dual
1506 LIBRARY_VERSION := $(LIB_VERSION)
1509 # x86 and x86-64 Solaris
1510 ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(target_cpu) $(target_os))),)
1511 LIBGNAT_TARGET_PAIRS_COMMON = \
1512 a-intnam.ads<libgnarl/a-intnam__solaris.ads \
1513 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1514 s-intman.adb<libgnarl/s-intman__solaris.adb \
1515 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1516 s-osinte.adb<libgnarl/s-osinte__solaris.adb \
1517 s-osinte.ads<libgnarl/s-osinte__solaris.ads \
1518 s-oslock.ads<libgnat/s-oslock__solaris.ads \
1519 s-osprim.adb<libgnat/s-osprim__solaris.adb \
1520 s-taprop.adb<libgnarl/s-taprop__solaris.adb \
1521 s-tasinf.adb<libgnarl/s-tasinf__solaris.adb \
1522 s-tasinf.ads<libgnarl/s-tasinf__solaris.ads \
1523 s-taspri.ads<libgnarl/s-taspri__solaris.ads \
1524 s-tpopsp.adb<libgnarl/s-tpopsp__solaris.adb \
1525 g-soliop.ads<libgnat/g-soliop__solaris.ads \
1526 $(TRASYM_DWARF_UNIX_PAIRS) \
1527 $(ATOMICS_TARGET_PAIRS) \
1528 system.ads<libgnat/system-solaris-x86.ads
1530 ifeq ($(strip $(filter-out %86 solaris2%,$(target_cpu) $(target_os))),)
1531 ifeq ($(strip $(MULTISUBDIR)),/amd64)
1532 LIBGNAT_TARGET_PAIRS = \
1533 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_64_TARGET_PAIRS)
1534 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1535 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1537 LIBGNAT_TARGET_PAIRS = \
1538 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_TARGET_PAIRS)
1541 ifeq ($(strip $(MULTISUBDIR)),/32)
1542 LIBGNAT_TARGET_PAIRS = \
1543 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_TARGET_PAIRS)
1545 LIBGNAT_TARGET_PAIRS = \
1546 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_64_TARGET_PAIRS)
1547 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1548 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1552 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1553 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1556 MISCLIB = -lnsl -lsocket
1558 GNATLIB_SHARED = gnatlib-shared-dual
1560 LIBRARY_VERSION := $(LIB_VERSION)
1564 ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),)
1565 LIBGNAT_TARGET_PAIRS = \
1566 a-intnam.ads<libgnarl/a-intnam__linux.ads \
1567 a-synbar.adb<libgnarl/a-synbar__posix.adb \
1568 a-synbar.ads<libgnarl/a-synbar__posix.ads \
1569 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1570 s-intman.adb<libgnarl/s-intman__posix.adb \
1571 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
1572 $(TRASYM_DWARF_UNIX_PAIRS) \
1573 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
1574 a-exetim.adb<libgnarl/a-exetim__posix.adb \
1575 a-exetim.ads<libgnarl/a-exetim__default.ads \
1576 s-linux.ads<libgnarl/s-linux.ads \
1577 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1578 $(ATOMICS_TARGET_PAIRS) \
1579 system.ads<libgnat/system-linux-x86.ads
1581 ifeq ($(strip $(MULTISUBDIR)),/64)
1582 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
1583 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1584 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1586 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
1589 LIBGNAT_TARGET_PAIRS += \
1590 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1591 s-osinte.ads<libgnarl/s-osinte__linux.ads \
1592 s-oslock.ads<libgnat/s-oslock__posix.ads \
1593 s-osprim.adb<libgnat/s-osprim__posix.adb \
1594 s-taprop.adb<libgnarl/s-taprop__linux.adb \
1595 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
1596 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
1597 s-taspri.ads<libgnarl/s-taspri__posix.ads
1600 THREADSLIB = -lpthread -lrt
1601 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1602 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1603 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
1605 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1607 GNATLIB_SHARED = gnatlib-shared-dual
1610 LIBRARY_VERSION := $(LIB_VERSION)
1612 GNATLIBCFLAGS_FOR_GCCSJLJ+=-fno-omit-frame-pointer -momit-leaf-frame-pointer
1616 ifeq ($(strip $(filter-out %86 kfreebsd%,$(target_cpu) $(target_os))),)
1617 LIBGNAT_TARGET_PAIRS = \
1618 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1619 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1620 s-intman.adb<libgnarl/s-intman__posix.adb \
1621 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1622 s-osinte.ads<libgnarl/s-osinte__kfreebsd-gnu.ads \
1623 s-oslock.ads<libgnat/s-oslock__posix.ads \
1624 s-osprim.adb<libgnat/s-osprim__posix.adb \
1625 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1626 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1627 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1628 $(TRASYM_DWARF_UNIX_PAIRS) \
1629 $(ATOMICS_TARGET_PAIRS) \
1630 $(X86_TARGET_PAIRS) \
1631 system.ads<libgnat/system-freebsd.ads
1633 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1635 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1636 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1639 THREADSLIB = -lpthread
1640 GNATLIB_SHARED = gnatlib-shared-dual
1642 LIBRARY_VERSION := $(LIB_VERSION)
1646 # i[3456]86-pc-gnu i.e. GNU Hurd
1647 ifeq ($(strip $(filter-out %86 pc gnu,$(target_cpu) $(target_vendor) $(target_os))),)
1648 LIBGNAT_TARGET_PAIRS = \
1649 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1650 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1651 s-intman.adb<libgnarl/s-intman__posix.adb \
1652 s-osinte.adb<libgnarl/s-osinte__gnu.adb \
1653 s-osinte.ads<libgnarl/s-osinte__gnu.ads \
1654 s-oslock.ads<libgnat/s-oslock__posix.ads \
1655 s-osprim.adb<libgnat/s-osprim__posix.adb \
1656 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1657 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1658 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1659 $(ATOMICS_TARGET_PAIRS) \
1660 $(X86_TARGET_PAIRS) \
1661 system.ads<libgnat/system-freebsd.ads
1663 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1665 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
1668 THREADSLIB = -lpthread
1669 GNATLIB_SHARED = gnatlib-shared-dual
1671 LIBRARY_VERSION := $(LIB_VERSION)
1675 ifeq ($(strip $(filter-out x86_64 kfreebsd%,$(target_cpu) $(target_os))),)
1676 LIBGNAT_TARGET_PAIRS = \
1677 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1678 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1679 s-intman.adb<libgnarl/s-intman__posix.adb \
1680 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1681 s-osinte.ads<libgnarl/s-osinte__kfreebsd-gnu.ads \
1682 s-oslock.ads<libgnat/s-oslock__posix.ads \
1683 s-osprim.adb<libgnat/s-osprim__posix.adb \
1684 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1685 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1686 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1687 $(ATOMICS_TARGET_PAIRS) \
1688 $(X86_64_TARGET_PAIRS) \
1689 $(GNATRTL_128BIT_PAIRS) \
1690 system.ads<libgnat/system-freebsd.ads
1692 EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
1694 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1697 THREADSLIB = -lpthread
1698 GNATLIB_SHARED = gnatlib-shared-dual
1700 LIBRARY_VERSION := $(LIB_VERSION)
1704 ifeq ($(strip $(filter-out %aarch64 freebsd%,$(target_cpu) $(target_os))),)
1705 LIBGNAT_TARGET_PAIRS = \
1706 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1707 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1708 s-dorepr.adb<libgnat/s-dorepr__fma.adb \
1709 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1710 s-intman.adb<libgnarl/s-intman__posix.adb \
1711 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1712 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1713 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1714 s-oslock.ads<libgnat/s-oslock__posix.ads \
1715 s-osprim.adb<libgnat/s-osprim__posix.adb \
1716 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1717 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1718 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1719 $(ATOMICS_TARGET_PAIRS) \
1720 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1721 $(GNATRTL_128BIT_PAIRS) \
1722 system.ads<libgnat/system-freebsd.ads
1724 EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
1726 GNATLIB_SHARED = gnatlib-shared-dual
1729 THREADSLIB= -lpthread
1731 LIBRARY_VERSION := $(LIB_VERSION)
1736 ifeq ($(strip $(filter-out %86 freebsd%,$(target_cpu) $(target_os))),)
1737 LIBGNAT_TARGET_PAIRS = \
1738 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1739 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1740 s-intman.adb<libgnarl/s-intman__posix.adb \
1741 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1742 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1743 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1744 s-oslock.ads<libgnat/s-oslock__posix.ads \
1745 s-osprim.adb<libgnat/s-osprim__posix.adb \
1746 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1747 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1748 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1749 $(TRASYM_DWARF_UNIX_PAIRS) \
1750 $(ATOMICS_TARGET_PAIRS) \
1751 $(X86_TARGET_PAIRS) \
1752 system.ads<libgnat/system-freebsd.ads
1754 GNATLIB_SHARED = gnatlib-shared-dual
1756 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1757 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1760 THREADSLIB= -lpthread
1762 LIBRARY_VERSION := $(LIB_VERSION)
1767 ifeq ($(strip $(filter-out %86_64 freebsd%,$(target_cpu) $(target_os))),)
1768 LIBGNAT_TARGET_PAIRS = \
1769 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1770 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1771 s-intman.adb<libgnarl/s-intman__posix.adb \
1772 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1773 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1774 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1775 s-oslock.ads<libgnat/s-oslock__posix.ads \
1776 s-osprim.adb<libgnat/s-osprim__posix.adb \
1777 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1778 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1779 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1780 $(TRASYM_DWARF_UNIX_PAIRS) \
1781 $(ATOMICS_TARGET_PAIRS) \
1782 $(X86_64_TARGET_PAIRS) \
1783 $(GNATRTL_128BIT_PAIRS) \
1784 system.ads<libgnat/system-freebsd.ads
1786 GNATLIB_SHARED = gnatlib-shared-dual
1788 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1789 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1790 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1793 THREADSLIB= -lpthread
1795 LIBRARY_VERSION := $(LIB_VERSION)
1800 ifeq ($(strip $(filter-out %86_64 dragonfly%,$(target_cpu) $(target_os))),)
1801 LIBGNAT_TARGET_PAIRS = \
1802 a-intnam.ads<libgnarl/a-intnam__dragonfly.ads \
1803 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1804 s-intman.adb<libgnarl/s-intman__posix.adb \
1805 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1806 s-osinte.adb<libgnarl/s-osinte__dragonfly.adb \
1807 s-osinte.ads<libgnarl/s-osinte__dragonfly.ads \
1808 s-oslock.ads<libgnat/s-oslock__posix.ads \
1809 s-osprim.adb<libgnat/s-osprim__posix.adb \
1810 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1811 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1812 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1813 $(ATOMICS_TARGET_PAIRS) \
1814 $(X86_64_TARGET_PAIRS) \
1815 $(GNATRTL_128BIT_PAIRS) \
1816 system.ads<libgnat/system-dragonfly-x86_64.ads
1818 GNATLIB_SHARED = gnatlib-shared-dual
1820 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1821 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1824 THREADSLIB= -lpthread
1826 LIBRARY_VERSION := $(LIB_VERSION)
1831 ifeq ($(strip $(filter-out s390% linux%,$(target_cpu) $(target_os))),)
1832 LIBGNAT_TARGET_PAIRS = \
1833 a-intnam.ads<libgnarl/a-intnam__linux.ads \
1834 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1835 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1836 s-intman.adb<libgnarl/s-intman__posix.adb \
1837 s-linux.ads<libgnarl/s-linux.ads \
1838 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1839 s-osinte.ads<libgnarl/s-osinte__linux.ads \
1840 s-oslock.ads<libgnat/s-oslock__posix.ads \
1841 s-osprim.adb<libgnat/s-osprim__posix.adb \
1842 s-taprop.adb<libgnarl/s-taprop__linux.adb \
1843 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
1844 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
1845 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
1846 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1847 system.ads<libgnat/system-linux-s390.ads
1849 ifeq ($(strip $(filter-out s390x,$(target_cpu))),)
1850 ifneq ($(strip $(MULTISUBDIR)),/32)
1851 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1852 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1855 ifeq ($(strip $(MULTISUBDIR)),/64)
1856 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1857 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1861 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1863 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
1865 THREADSLIB = -lpthread
1866 GNATLIB_SHARED = gnatlib-shared-dual
1867 LIBRARY_VERSION := $(LIB_VERSION)
1871 ifeq ($(strip $(filter-out hppa% hp hpux10%,$(target_cpu) $(target_vendor) $(target_os))),)
1872 LIBGNAT_TARGET_PAIRS = \
1873 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
1874 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1875 s-interr.adb<libgnarl/s-interr__sigaction.adb \
1876 s-intman.adb<libgnarl/s-intman__posix.adb \
1877 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1878 s-osinte.adb<libgnarl/s-osinte__hpux-dce.adb \
1879 s-osinte.ads<libgnarl/s-osinte__hpux-dce.ads \
1880 s-parame.ads<libgnat/s-parame__hpux.ads \
1881 s-oslock.ads<libgnat/s-oslock__posix.ads \
1882 s-osprim.adb<libgnat/s-osprim__posix.adb \
1883 s-taprop.adb<libgnarl/s-taprop__hpux-dce.adb \
1884 s-taspri.ads<libgnarl/s-taspri__hpux-dce.ads \
1885 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1886 system.ads<libgnat/system-hpux.ads
1892 ifeq ($(strip $(filter-out hppa% hp hpux11%,$(target_cpu) $(target_vendor) $(target_os))),)
1893 LIBGNAT_TARGET_PAIRS = \
1894 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
1895 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1896 s-intman.adb<libgnarl/s-intman__posix.adb \
1897 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1898 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1899 s-osinte.ads<libgnarl/s-osinte__hpux.ads \
1900 s-parame.ads<libgnat/s-parame__hpux.ads \
1901 s-oslock.ads<libgnat/s-oslock__posix.ads \
1902 s-osprim.adb<libgnat/s-osprim__posix.adb \
1903 s-traceb.adb<libgnat/s-traceb__hpux.adb \
1904 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1905 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1906 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1907 system.ads<libgnat/system-hpux.ads
1910 TGT_LIB = /usr/lib/libcl.a
1911 THREADSLIB = -lpthread
1915 GNATLIB_SHARED = gnatlib-shared-dual
1916 LIBRARY_VERSION := $(LIB_VERSION)
1920 ifeq ($(strip $(filter-out ibm aix%,$(target_vendor) $(target_os))),)
1921 LIBGNAT_TARGET_PAIRS = \
1922 a-intnam.ads<libgnarl/a-intnam__aix.ads \
1923 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1924 s-intman.adb<libgnarl/s-intman__posix.adb \
1925 s-osinte.adb<libgnarl/s-osinte__aix.adb \
1926 s-osinte.ads<libgnarl/s-osinte__aix.ads \
1927 s-oslock.ads<libgnat/s-oslock__posix.ads \
1928 s-osprim.adb<libgnat/s-osprim__posix.adb \
1929 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1930 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1931 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1932 $(TRASYM_DWARF_UNIX_PAIRS) \
1933 $(ATOMICS_TARGET_PAIRS) \
1934 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1935 system.ads<libgnat/system-aix.ads
1937 ifneq ($(target_os),)
1938 ifeq ($(findstring ppc64, \
1939 $(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) \
1940 -print-multi-os-directory)), \
1942 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-aix.adb
1944 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1948 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1950 THREADSLIB = -lpthreads
1956 # LynxOS 178 and LynxOS 178 Elf
1957 ifeq ($(strip $(filter-out lynxos178%,$(target_os))),)
1958 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1960 LIBGNAT_TARGET_PAIRS = \
1961 a-intnam.ads<libgnarl/a-intnam__lynxos.ads \
1962 a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \
1963 a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \
1964 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1965 g-soliop.ads<libgnat/g-soliop__lynxos.ads \
1966 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1967 s-intman.adb<libgnarl/s-intman__lynxos.adb \
1968 s-osinte.adb<libgnarl/s-osinte__lynxos178.adb \
1969 s-oslock.ads<libgnat/s-oslock__posix.ads \
1970 s-osprim.ads<libgnat/s-osprim__lynxos.ads \
1971 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1972 s-taspri.ads<libgnarl/s-taspri__lynxos.ads \
1973 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb
1975 ifeq ($(strip $(filter-out powerpc%, $(target_cpu))),)
1976 LIBGNAT_TARGET_PAIRS += system.ads<libgnat/system-lynxos178-ppc.ads
1978 ifeq ($(strip $(filter-out %86, $(target_cpu))),)
1979 LIBGNAT_TARGET_PAIRS += system.ads<libgnat/system-lynxos178-x86.ads
1982 ifeq ($(strip $(filter-out lynxos178e,$(target_os))),)
1983 LIBGNAT_TARGET_PAIRS += \
1984 s-parame.ads<libgnat/s-parame__posix2008.ads \
1985 s-osinte.ads<libgnarl/s-osinte__lynxos178e.ads \
1986 s-osprim.adb<libgnat/s-osprim__posix2008.adb \
1987 s-tracon.adb<hie/s-tracon__ppc-eabi.adb
1994 ifeq ($(strip $(filter-out rtems%,$(target_os))),)
1995 LIBGNAT_TARGET_PAIRS = \
1996 system.ads<libgnat/system-rtems.ads \
1997 a-intnam.ads<libgnarl/a-intnam__rtems.ads \
1998 s-inmaop.adb<libgnarl/s-inmaop__hwint.adb \
1999 s-intman.adb<libgnarl/s-intman__rtems.adb \
2000 s-intman.ads<libgnarl/s-intman__rtems.ads \
2001 s-osinte.adb<libgnarl/s-osinte__rtems.adb \
2002 s-osinte.ads<libgnarl/s-osinte__rtems.ads \
2003 s-oslock.ads<libgnat/s-oslock__posix.ads \
2004 s-osprim.adb<libgnat/s-osprim__rtems.adb \
2005 s-parame.adb<libgnat/s-parame__rtems.adb \
2006 s-parame.ads<libgnat/s-parame__posix2008.ads \
2007 s-taprop.adb<libgnarl/s-taprop__rtems.adb \
2008 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2009 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2010 s-interr.adb<libgnarl/s-interr__hwint.adb
2012 EXTRA_GNATRTL_NONTASKING_OBJS += s-stchop.o
2014 ifeq ($(strip $(filter-out arm%, $(target_cpu))),)
2020 ifeq ($(strip $(filter-out aarch64%,$(target_cpu))),)
2021 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2022 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2025 ifeq ($(strip $(filter-out aarch64% riscv%,$(target_cpu))),)
2026 LIBGNAT_TARGET_PAIRS += a-nallfl.ads<libgnat/a-nallfl__wraplf.ads
2029 # Target CPUs that support atomic primitives
2030 ifeq ($(strip $(filter-out aarch64%,$(target_cpu))),)
2031 LIBGNAT_TARGET_PAIRS += \
2032 $(ATOMICS_TARGET_PAIRS) \
2033 $(ATOMICS_BUILTINS_TARGET_PAIRS)
2038 ifeq ($(strip $(filter-out powerpc% %86 sysgo pikeos,$(target_cpu) $(target_vendor) $(target_os)))),)
2039 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
2042 # *-elf, *-eabi, or *-eabispe
2043 ifeq ($(strip $(filter-out elf eabi eabispe,$(target_os))),)
2044 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
2047 ifeq ($(strip $(filter-out %djgpp,$(target_os))),)
2048 GNATRTL_SOCKETS_OBJS =
2050 LIBGNAT_TARGET_PAIRS = \
2051 a-intnam.ads<libgnarl/a-intnam__dummy.ads \
2052 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
2053 s-intman.adb<libgnarl/s-intman__dummy.adb \
2054 s-osinte.ads<libgnarl/s-osinte__dummy.ads \
2055 s-osprim.adb<libgnat/s-osprim__unix.adb \
2056 s-taprop.adb<libgnarl/s-taprop__dummy.adb \
2057 s-taspri.ads<libgnarl/s-taspri__dummy.ads \
2058 system.ads<libgnat/system-djgpp.ads \
2059 $(DUMMY_SOCKETS_TARGET_PAIRS)
2065 ifeq ($(strip $(filter-out cygwin% mingw32% pe,$(target_os))),)
2066 # Cygwin provides a full Posix environment, and so we use the default
2067 # versions g-socthi rather than the Windows-specific MinGW version.
2068 # Ideally we would use all the default versions for Cygwin and none
2069 # of the MinGW versions, but for historical reasons the Cygwin port
2070 # has always been a CygMing frankenhybrid and it is a long-term project
2071 # to disentangle them.
2072 ifeq ($(strip $(filter-out cygwin%,$(target_os))),)
2073 LIBGNAT_TARGET_PAIRS = \
2074 g-socthi.ads<libgnat/g-socthi.ads \
2075 g-socthi.adb<libgnat/g-socthi.adb
2077 LIBGNAT_TARGET_PAIRS = \
2078 g-socthi.ads<libgnat/g-socthi__mingw.ads \
2079 g-socthi.adb<libgnat/g-socthi__mingw.adb \
2080 g-sopowa.adb<libgnat/g-sopowa__mingw.adb
2082 LIBGNAT_TARGET_PAIRS += \
2083 a-dirval.adb<libgnat/a-dirval__mingw.adb \
2084 s-gloloc.adb<libgnat/s-gloloc__mingw.adb \
2085 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
2086 s-taspri.ads<libgnarl/s-taspri__mingw.ads \
2087 s-tasinf.adb<libgnarl/s-tasinf__mingw.adb \
2088 s-tasinf.ads<libgnarl/s-tasinf__mingw.ads \
2089 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
2090 g-soliop.ads<libgnat/g-soliop__mingw.ads \
2091 $(ATOMICS_TARGET_PAIRS) \
2092 system.ads<libgnat/system-mingw.ads
2094 LIBGNAT_TARGET_PAIRS += \
2095 a-exetim.adb<libgnarl/a-exetim__mingw.adb \
2096 a-exetim.ads<libgnarl/a-exetim__mingw.ads \
2097 a-intnam.ads<libgnarl/a-intnam__mingw.ads \
2098 g-sercom.adb<libgnat/g-sercom__mingw.adb \
2099 $(TRASYM_DWARF_MINGW_PAIRS) \
2100 s-tsmona.adb<libgnat/s-tsmona__mingw.adb \
2101 s-interr.adb<libgnarl/s-interr__sigaction.adb \
2102 s-intman.adb<libgnarl/s-intman__mingw.adb \
2103 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2104 s-osinte.ads<libgnarl/s-osinte__mingw.ads \
2105 s-oslock.ads<libgnat/s-oslock__mingw.ads \
2106 s-osprim.adb<libgnat/s-osprim__mingw.adb \
2107 s-taprop.adb<libgnarl/s-taprop__mingw.adb
2109 ifeq ($(strip $(filter-out x86_64%,$(target_cpu))),)
2110 ifeq ($(strip $(MULTISUBDIR)),/32)
2111 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2112 SO_OPTS= -m32 -Wl,-soname,
2114 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS) $(GNATRTL_128BIT_PAIRS)
2115 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2116 SO_OPTS = -m64 -Wl,-soname,
2119 ifeq ($(strip $(MULTISUBDIR)),/64)
2120 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS) $(GNATRTL_128BIT_PAIRS)
2121 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2122 SO_OPTS = -m64 -Wl,-soname,
2124 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2125 SO_OPTS = -m32 -Wl,-soname,
2129 EXTRA_GNATRTL_NONTASKING_OBJS += \
2130 s-win32.o s-winext.o g-regist.o g-sse.o g-ssvety.o
2131 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_MINGW_OBJS)
2132 EXTRA_GNATRTL_TASKING_OBJS = a-exetim.o
2133 EXTRA_LIBGNAT_SRCS+=mingw32.h
2136 # ??? This will be replaced by gnatlib-shared-dual-win32 when GNAT
2137 # auto-import support for array/record will be done.
2138 GNATLIB_SHARED = gnatlib-shared-win32
2142 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
2145 EXTRA_GNATTOOLS = ../../gnatdll$(exeext)
2146 EXTRA_GNATMAKE_OBJS = mdll.o mdll-utl.o mdll-fil.o
2148 LIBRARY_VERSION := $(LIB_VERSION)
2152 ifeq ($(strip $(filter-out loongarch% linux%,$(target_cpu) $(target_os))),)
2153 LIBGNAT_TARGET_PAIRS = \
2154 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2155 a-exetim.ads<libgnarl/a-exetim__default.ads \
2156 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2157 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2158 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2159 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2160 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2161 s-intman.adb<libgnarl/s-intman__posix.adb \
2162 s-linux.ads<libgnarl/s-linux__loongarch.ads \
2163 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2164 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2165 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2166 s-oslock.ads<libgnat/s-oslock__posix.ads \
2167 s-osprim.adb<libgnat/s-osprim__posix.adb \
2168 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2169 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2170 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2171 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2172 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2173 g-sercom.adb<libgnat/g-sercom__linux.adb \
2174 $(TRASYM_DWARF_UNIX_PAIRS) \
2175 $(GNATRTL_128BIT_PAIRS) \
2176 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2177 $(ATOMICS_TARGET_PAIRS) \
2178 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2179 system.ads<libgnat/system-linux-loongarch.ads
2181 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2183 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2184 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2185 EXTRA_GNATRTL_TASKING_OBJS = s-linux.o a-exetim.o
2188 THREADSLIB = -lpthread
2190 GNATLIB_SHARED = gnatlib-shared-dual
2192 LIBRARY_VERSION := $(LIB_VERSION)
2193 # Temporarily disable strict alignment -- for some reason, it causes
2194 # infinite loops during stack unwinding (libgcc) and indefinite hang
2195 # in some futex system calls.
2196 GNATLIBCFLAGS += -mno-strict-align
2197 GNATLIBCFLAGS_FOR_C += -mno-strict-align
2202 ifeq ($(strip $(filter-out mips% linux%,$(target_cpu) $(target_os))),)
2203 LIBGNAT_TARGET_PAIRS = \
2204 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2205 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2206 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2207 s-intman.adb<libgnarl/s-intman__posix.adb \
2208 s-linux.ads<libgnarl/s-linux__mips.ads \
2209 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2210 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2211 s-oslock.ads<libgnat/s-oslock__posix.ads \
2212 s-osprim.adb<libgnat/s-osprim__posix.adb \
2213 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2214 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2215 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2216 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2217 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2218 system.ads<libgnat/system-linux-mips.ads
2220 ifeq ($(strip $(filter-out mips64% mipsisa64%,$(target_cpu))),)
2221 ifneq ($(strip $(MULTISUBDIR)),/32)
2222 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2223 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2226 ifneq ($(strip $(filter /64 /n32,$(MULTISUBDIR))),)
2227 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2228 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2232 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2234 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2236 THREADSLIB = -lpthread
2237 GNATLIB_SHARED = gnatlib-shared-dual
2239 LIBRARY_VERSION := $(LIB_VERSION)
2242 # PowerPC and e500v2 Linux
2243 ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
2244 LIBGNAT_TARGET_PAIRS = \
2245 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2246 a-exetim.ads<libgnarl/a-exetim__default.ads \
2247 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2248 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2249 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2250 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2251 s-dorepr.adb<libgnat/s-dorepr__fma.adb \
2252 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2253 s-intman.adb<libgnarl/s-intman__posix.adb \
2254 s-linux.ads<libgnarl/s-linux.ads \
2255 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2256 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2257 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2258 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2259 s-oslock.ads<libgnat/s-oslock__posix.ads \
2260 s-osprim.adb<libgnat/s-osprim__posix.adb \
2261 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2262 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2263 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2264 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2265 $(TRASYM_DWARF_UNIX_PAIRS) \
2266 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2267 $(ATOMICS_TARGET_PAIRS) \
2268 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2269 system.ads<libgnat/system-linux-ppc.ads
2271 ifeq ($(strip $(filter-out powerpc64%,$(target_cpu))),)
2272 ifeq ($(strip $(MULTISUBDIR)),/32)
2273 LIBGNAT_TARGET_PAIRS += s-atopri.ads<libgnat/s-atopri__32.ads
2275 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2276 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2279 ifeq ($(strip $(MULTISUBDIR)),/64)
2280 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2281 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2283 LIBGNAT_TARGET_PAIRS += s-atopri.ads<libgnat/s-atopri__32.ads
2287 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2289 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2290 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2293 THREADSLIB = -lpthread -lrt
2294 GNATLIB_SHARED = gnatlib-shared-dual
2297 LIBRARY_VERSION := $(LIB_VERSION)
2300 # ARM linux, GNU eabi
2301 ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),)
2302 LIBGNAT_TARGET_PAIRS = \
2303 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2304 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2305 s-intman.adb<libgnarl/s-intman__posix.adb \
2306 s-linux.ads<libgnarl/s-linux.ads \
2307 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2308 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2309 s-oslock.ads<libgnat/s-oslock__posix.ads \
2310 s-osprim.adb<libgnat/s-osprim__posix.adb \
2311 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2312 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2313 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2314 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2315 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2316 $(TRASYM_DWARF_UNIX_PAIRS) \
2317 $(ATOMICS_TARGET_PAIRS) \
2318 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2319 system.ads<libgnat/system-linux-arm.ads
2321 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2323 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2324 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2326 THREADSLIB = -lpthread
2327 GNATLIB_SHARED = gnatlib-shared-dual
2329 LIBRARY_VERSION := $(LIB_VERSION)
2333 ifeq ($(strip $(filter-out aarch64% linux%,$(target_cpu) $(target_os))),)
2334 LIBGNAT_TARGET_PAIRS = \
2335 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2336 a-exetim.ads<libgnarl/a-exetim__default.ads \
2337 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2338 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2339 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2340 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2341 s-dorepr.adb<libgnat/s-dorepr__fma.adb \
2342 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2343 s-intman.adb<libgnarl/s-intman__posix.adb \
2344 s-linux.ads<libgnarl/s-linux.ads \
2345 $(TRASYM_DWARF_UNIX_PAIRS) \
2346 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2347 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2348 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2349 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2350 s-oslock.ads<libgnat/s-oslock__posix.ads \
2351 s-osprim.adb<libgnat/s-osprim__posix.adb \
2352 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2353 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2354 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2355 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2356 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2357 $(ATOMICS_TARGET_PAIRS) \
2358 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2359 $(GNATRTL_128BIT_PAIRS) \
2360 system.ads<libgnat/system-linux-arm.ads
2362 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2364 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) \
2365 $(TRASYM_DWARF_UNIX_OBJS)
2366 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2368 THREADSLIB=-lpthread -lrt
2369 GNATLIB_SHARED=gnatlib-shared-dual
2372 LIBRARY_VERSION := $(LIB_VERSION)
2376 ifeq ($(strip $(filter-out sparc% linux%,$(target_cpu) $(target_os))),)
2377 LIBGNAT_TARGET_PAIRS = \
2378 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2379 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2380 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2381 s-intman.adb<libgnarl/s-intman__posix.adb \
2382 s-linux.ads<libgnarl/s-linux__sparc.ads \
2383 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2384 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2385 s-oslock.ads<libgnat/s-oslock__posix.ads \
2386 s-osprim.adb<libgnat/s-osprim__posix.adb \
2387 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2388 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2389 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2390 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2391 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2392 system.ads<libgnat/system-linux-sparc.ads
2394 ifeq ($(strip $(filter-out sparc64 sparcv9,$(target_cpu))),)
2395 ifeq ($(strip $(MULTISUBDIR)),/32)
2396 LIBGNAT_TARGET_PAIRS += s-atopri.ads<libgnat/s-atopri__32.ads
2398 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2399 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2402 ifeq ($(strip $(MULTISUBDIR)),/64)
2403 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2404 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2406 LIBGNAT_TARGET_PAIRS += s-atopri.ads<libgnat/s-atopri__32.ads
2410 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2412 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2414 THREADSLIB = -lpthread
2415 GNATLIB_SHARED = gnatlib-shared-dual
2417 LIBRARY_VERSION := $(LIB_VERSION)
2421 ifeq ($(strip $(filter-out hppa% linux%,$(target_cpu) $(target_os))),)
2422 LIBGNAT_TARGET_PAIRS = \
2423 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2424 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2425 s-intman.adb<libgnarl/s-intman__posix.adb \
2426 s-linux.ads<libgnarl/s-linux__hppa.ads \
2427 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2428 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2429 s-oslock.ads<libgnat/s-oslock__posix.ads \
2430 s-osprim.adb<libgnat/s-osprim__posix.adb \
2431 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2432 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2433 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2434 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2435 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2436 system.ads<libgnat/system-linux-hppa.ads
2438 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2440 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2442 THREADSLIB = -lpthread
2443 GNATLIB_SHARED = gnatlib-shared-dual
2445 LIBRARY_VERSION := $(LIB_VERSION)
2449 ifeq ($(strip $(filter-out m68k% linux%,$(target_cpu) $(target_os))),)
2450 LIBGNAT_TARGET_PAIRS = \
2451 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2452 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2453 s-intman.adb<libgnarl/s-intman__posix.adb \
2454 s-linux.ads<libgnarl/s-linux.ads \
2455 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2456 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2457 s-oslock.ads<libgnat/s-oslock__posix.ads \
2458 s-osprim.adb<libgnat/s-osprim__posix.adb \
2459 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2460 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2461 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2462 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2463 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2464 system.ads<libgnat/system-linux-m68k.ads
2466 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2468 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2470 THREADSLIB = -lpthread
2471 GNATLIB_SHARED = gnatlib-shared-dual
2473 LIBRARY_VERSION := $(LIB_VERSION)
2477 ifeq ($(strip $(filter-out sh4% linux%,$(target_cpu) $(target_os))),)
2478 LIBGNAT_TARGET_PAIRS = \
2479 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2480 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2481 s-intman.adb<libgnarl/s-intman__posix.adb \
2482 s-linux.ads<libgnarl/s-linux.ads \
2483 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2484 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2485 s-oslock.ads<libgnat/s-oslock__posix.ads \
2486 s-osprim.adb<libgnat/s-osprim__posix.adb \
2487 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2488 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2489 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2490 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2491 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2492 system.ads<libgnat/system-linux-sh4.ads
2494 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-linux.adb
2496 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2499 THREADSLIB = -lpthread
2500 GNATLIB_SHARED = gnatlib-shared-dual
2502 LIBRARY_VERSION := $(LIB_VERSION)
2506 ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
2507 LIBGNAT_TARGET_PAIRS = \
2508 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2509 a-exetim.ads<libgnarl/a-exetim__default.ads \
2510 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2511 a-nuauco.ads<libgnat/a-nuauco__x86.ads \
2512 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2513 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2514 s-dorepr.adb<libgnat/s-dorepr__fma.adb \
2515 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2516 s-intman.adb<libgnarl/s-intman__posix.adb \
2517 s-linux.ads<libgnarl/s-linux.ads \
2518 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2519 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2520 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2521 s-oslock.ads<libgnat/s-oslock__posix.ads \
2522 s-osprim.adb<libgnat/s-osprim__posix.adb \
2523 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2524 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2525 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2526 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2527 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2528 $(TRASYM_DWARF_UNIX_PAIRS) \
2529 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2530 $(ATOMICS_TARGET_PAIRS) \
2531 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2532 $(GNATRTL_128BIT_PAIRS) \
2533 system.ads<libgnat/system-linux-ia64.ads
2535 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2537 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2538 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2539 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2541 THREADSLIB=-lpthread -lrt
2542 GNATLIB_SHARED=gnatlib-shared-dual
2545 LIBRARY_VERSION := $(LIB_VERSION)
2549 ifeq ($(strip $(filter-out ia64% hp hpux%,$(target_cpu) $(target_vendor) $(target_os))),)
2550 LIBGNAT_TARGET_PAIRS = \
2551 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
2552 s-dorepr.adb<libgnat/s-dorepr__fma.adb \
2553 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2554 s-intman.adb<libgnarl/s-intman__posix.adb \
2555 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2556 s-osinte.ads<libgnarl/s-osinte__hpux.ads \
2557 s-oslock.ads<libgnat/s-oslock__posix.ads \
2558 s-osprim.adb<libgnat/s-osprim__posix.adb \
2559 s-taprop.adb<libgnarl/s-taprop__posix.adb \
2560 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2561 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2562 $(TRASYM_DWARF_UNIX_PAIRS) \
2563 $(ATOMICS_TARGET_PAIRS) \
2564 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2565 $(GNATRTL_128BIT_PAIRS) \
2566 system.ads<libgnat/system-hpux-ia64.ads
2568 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2569 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2573 THREADSLIB=-lpthread
2574 GNATLIB_SHARED=gnatlib-shared-dual
2578 LIBRARY_VERSION := $(LIB_VERSION)
2582 ifeq ($(strip $(filter-out alpha% linux%,$(target_cpu) $(target_os))),)
2583 LIBGNAT_TARGET_PAIRS = \
2584 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2585 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2586 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2587 s-intman.adb<libgnarl/s-intman__posix.adb \
2588 s-linux.ads<libgnarl/s-linux__alpha.ads \
2589 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2590 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2591 s-oslock.ads<libgnat/s-oslock__posix.ads \
2592 s-osprim.adb<libgnat/s-osprim__posix.adb \
2593 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2594 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2595 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2596 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2597 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2598 $(ATOMICS_TARGET_PAIRS) \
2599 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2600 $(GNATRTL_128BIT_PAIRS) \
2601 system.ads<libgnat/system-linux-alpha.ads
2603 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2605 EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
2606 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2609 THREADSLIB=-lpthread
2610 GNATLIB_SHARED=gnatlib-shared-dual
2611 LIBRARY_VERSION := $(LIB_VERSION)
2615 ifeq ($(strip $(filter-out %x86_64 linux%,$(target_cpu) $(target_os))),)
2616 LIBGNAT_TARGET_PAIRS = \
2617 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2618 a-exetim.ads<libgnarl/a-exetim__default.ads \
2619 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2620 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2621 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2622 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2623 s-intman.adb<libgnarl/s-intman__posix.adb \
2624 s-linux.ads<libgnarl/s-linux.ads \
2625 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2626 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2627 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2628 s-oslock.ads<libgnat/s-oslock__posix.ads \
2629 s-osprim.adb<libgnat/s-osprim__posix.adb \
2630 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2631 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2632 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2633 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2634 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2635 $(TRASYM_DWARF_UNIX_PAIRS) \
2636 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2637 $(ATOMICS_TARGET_PAIRS) \
2638 $(X86_64_TARGET_PAIRS) \
2639 $(SIMD_PATH_TARGET_PAIRS) \
2640 $(GNATRTL_128BIT_PAIRS) \
2641 system.ads<libgnat/system-linux-x86.ads
2643 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2645 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
2646 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2647 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2648 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2651 THREADSLIB=-lpthread -lrt
2653 GNATLIB_SHARED=gnatlib-shared-dual
2655 LIBRARY_VERSION := $(LIB_VERSION)
2657 GNATLIBCFLAGS_FOR_GCCSJLJ+=-fno-omit-frame-pointer -momit-leaf-frame-pointer
2660 ifeq ($(strip $(filter-out %x32 linux%,$(target_cpu) $(target_os))),)
2661 LIBGNAT_TARGET_PAIRS = \
2662 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2663 a-exetim.ads<libgnarl/a-exetim__default.ads \
2664 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2665 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2666 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2667 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2668 s-intman.adb<libgnarl/s-intman__posix.adb \
2669 s-linux.ads<libgnarl/s-linux__x32.ads \
2670 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2671 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2672 s-osinte.adb<libgnarl/s-osinte__x32.adb \
2673 s-oslock.ads<libgnat/s-oslock__posix.ads \
2674 s-osprim.adb<libgnat/s-osprim__x32.adb \
2675 s-parame.ads<libgnat/s-parame__posix2008.ads \
2676 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2677 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2678 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2679 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2680 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2681 $(TRASYM_DWARF_UNIX_PAIRS) \
2682 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2683 $(ATOMICS_TARGET_PAIRS) \
2684 $(X86_64_TARGET_PAIRS) \
2685 $(SIMD_PATH_TARGET_PAIRS) \
2686 $(GNATRTL_128BIT_PAIRS) \
2687 system.ads<libgnat/system-linux-x86.ads
2689 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2691 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
2692 EXTRA_GNATRTL_NONTASKING_OBJS+=$(TRASYM_DWARF_UNIX_OBJS)
2693 EXTRA_GNATRTL_NONTASKING_OBJS+=$(GNATRTL_128BIT_OBJS)
2694 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2696 THREADSLIB=-lpthread -lrt
2697 GNATLIB_SHARED=gnatlib-shared-dual
2699 LIBRARY_VERSION := $(LIB_VERSION)
2703 ifeq ($(strip $(filter-out riscv% linux%,$(target_cpu) $(target_os))),)
2704 LIBGNAT_TARGET_PAIRS = \
2705 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2706 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2707 s-dorepr.adb<libgnat/s-dorepr__fma.adb \
2708 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2709 s-intman.adb<libgnarl/s-intman__posix.adb \
2710 s-linux.ads<libgnarl/s-linux__riscv.ads \
2711 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2712 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2713 s-oslock.ads<libgnat/s-oslock__posix.ads \
2714 s-osprim.adb<libgnat/s-osprim__posix.adb \
2715 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2716 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2717 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2718 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2719 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2720 system.ads<libgnat/system-linux-riscv.ads
2722 ifeq ($(strip $(filter-out riscv64,$(target_cpu))),)
2723 ifneq ($(strip $(MULTISUBDIR)),/lib32)
2724 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2725 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2728 ifeq ($(strip $(MULTISUBDIR)),/lib64)
2729 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2730 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2734 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2736 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2738 THREADSLIB = -lpthread
2739 GNATLIB_SHARED = gnatlib-shared-dual
2741 LIBRARY_VERSION := $(LIB_VERSION)
2745 ifeq ($(strip $(filter-out darwin%,$(target_os))),)
2746 SO_OPTS = -shared-libgcc
2747 LIBGNAT_TARGET_PAIRS = \
2748 a-intnam.ads<libgnarl/a-intnam__darwin.ads \
2749 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2750 s-osinte.adb<libgnarl/s-osinte__darwin.adb \
2751 s-osinte.ads<libgnarl/s-osinte__darwin.ads \
2752 s-oslock.ads<libgnat/s-oslock__posix.ads \
2753 s-taprop.adb<libgnarl/s-taprop__posix.adb \
2754 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2755 g-sercom.adb<libgnat/g-sercom__linux.adb \
2756 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb
2758 ifeq ($(strip $(filter-out %86,$(target_cpu))),)
2759 LIBGNAT_TARGET_PAIRS += \
2760 s-intman.adb<libgnarl/s-intman__susv3.adb \
2761 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2762 $(ATOMICS_TARGET_PAIRS) \
2763 system.ads<libgnat/system-darwin-x86.ads
2765 ifeq ($(strip $(MULTISUBDIR)),/x86_64)
2767 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2768 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2769 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2771 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2774 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
2777 ifeq ($(strip $(filter-out %x86_64,$(target_cpu))),)
2778 LIBGNAT_TARGET_PAIRS += \
2779 s-intman.adb<libgnarl/s-intman__susv3.adb \
2780 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2781 a-exetim.ads<libgnarl/a-exetim__default.ads \
2782 a-exetim.adb<libgnarl/a-exetim__darwin.adb \
2783 $(ATOMICS_TARGET_PAIRS) \
2784 system.ads<libgnat/system-darwin-x86.ads
2786 ifeq ($(strip $(MULTISUBDIR)),/i386)
2788 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2790 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2791 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2792 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2795 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
2796 EXTRA_GNATRTL_TASKING_OBJS=a-exetim.o
2799 ifeq ($(strip $(filter-out powerpc%,$(target_cpu))),)
2800 LIBGNAT_TARGET_PAIRS += \
2801 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2802 s-intman.adb<libgnarl/s-intman__posix.adb \
2803 s-osprim.adb<libgnat/s-osprim__posix.adb \
2804 $(ATOMICS_TARGET_PAIRS) \
2805 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2806 system.ads<libgnat/system-darwin-ppc.ads
2808 ifeq ($(strip $(filter-out powerpc64,$(target_cpu))),)
2809 ifneq ($(strip $(MULTISUBDIR)),/ppc)
2810 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2811 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2816 ifeq ($(strip $(MULTISUBDIR)),/ppc64)
2818 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2819 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2824 ifeq ($(strip $(filter-out arm,$(target_cpu))),)
2825 LIBGNAT_TARGET_PAIRS += \
2826 s-intman.adb<libgnarl/s-intman__susv3.adb \
2827 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2828 $(ATOMICS_TARGET_PAIRS) \
2829 $(ATOMICS_BUILTINS_TARGET_PAIRS)
2831 LIBGNAT_TARGET_PAIRS += \
2832 system.ads<libgnat/system-darwin-arm.ads
2835 ifeq ($(strip $(filter-out arm64 aarch64,$(target_cpu))),)
2836 LIBGNAT_TARGET_PAIRS += \
2837 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2838 s-intman.adb<libgnarl/s-intman__susv3.adb \
2839 s-dorepr.adb<libgnat/s-dorepr__fma.adb \
2840 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2841 $(ATOMICS_TARGET_PAIRS) \
2842 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2843 $(GNATRTL_128BIT_PAIRS)
2845 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2846 EXTRA_LIBGNAT_OBJS+=sigtramp-ios.o
2847 EXTRA_LIBGNAT_SRCS+=sigtramp.h
2848 LIBGNAT_TARGET_PAIRS += \
2849 system.ads<libgnat/system-darwin-arm.ads
2852 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-darwin.adb
2855 GNATLIB_SHARED = gnatlib-shared-darwin
2857 LIBRARY_VERSION := $(LIB_VERSION)
2859 GCC_LINK_FLAGS=-static-libstdc++
2862 ifeq ($(EH_MECHANISM),-gcc)
2863 LIBGNAT_TARGET_PAIRS += \
2864 s-excmac.ads<libgnat/s-excmac__gcc.ads \
2865 s-excmac.adb<libgnat/s-excmac__gcc.adb
2866 EXTRA_LIBGNAT_OBJS+=raise-gcc.o
2867 EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o
2870 ifeq ($(EH_MECHANISM),-arm)
2871 LIBGNAT_TARGET_PAIRS += \
2872 s-excmac.ads<libgnat/s-excmac__arm.ads \
2873 s-excmac.adb<libgnat/s-excmac__arm.adb
2874 EXTRA_LIBGNAT_OBJS+=raise-gcc.o
2875 EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o
2878 ifeq ($(strip $(filter-out linux%,$(target_os))),)
2879 LIBGNAT_TARGET_PAIRS += \
2880 g-sercom.adb<libgnat/g-sercom__linux.adb
2883 # Turn on shared gnatlib for specific vx7r2 targets for RTP runtimes. Once
2884 # all targets are ported the target_cpu selector can be removed.
2885 ifeq ($(strip $(filter-out vxworks7r2 powerpc64 x86_64 aarch64 rtp rtp-smp, $(target_os) $(target_cpu) $(THREAD_KIND))),)
2886 GNATLIB_SHARED = gnatlib-shared-dual
2887 LIBRARY_VERSION := $(LIB_VERSION)
2890 LIBGNAT_TARGET_PAIRS += \
2891 interfac.ads<libgnat/interfac__2020.ads
2893 # LIBGNAT_SRCS is the list of all C files (including headers) of the runtime
2894 # library. LIBGNAT_OBJS is the list of object files for libgnat.
2895 # thread.c is special as put into GNATRTL_TASKING_OBJS
2896 LIBGNAT_OBJS = adadecode.o adaint.o argv.o aux-io.o \
2897 cal.o cio.o cstreams.o ctrl_c.o \
2898 env.o errno.o exit.o expect.o final.o rtfinal.o rtinit.o \
2899 init.o initialize.o locales.o mkdir.o \
2900 raise.o seh_init.o socket.o sysdep.o \
2901 targext.o terminals.o tracebak.o \
2902 $(EXTRA_LIBGNAT_OBJS)
2904 # NOTE ??? - when the -I option for compiling Ada code is made to work,
2905 # the library installation will change and there will be a
2906 # GNAT_RTL_SRCS. Right now we count on being able to build GNATRTL_OBJS
2907 # from ADA_INCLUDE_SRCS.
2909 LIBGNAT_SRCS = $(patsubst %.o,%.c,$(LIBGNAT_OBJS)) \
2910 adadecode.h adaint.h env.h gsocket.h raise.h standard.ads.h \
2911 runtime.h $(EXTRA_LIBGNAT_SRCS)
2913 # memtrack.o is special as not put into libgnat.
2914 GNATRTL_OBJS = $(GNATRTL_NONTASKING_OBJS) $(GNATRTL_TASKING_OBJS) \
2917 # Run time source files
2918 # Note that libgnat contains a significant number of files. In orde to avoid
2919 # command line length limitations the source regexp has been split for that
2922 libgnat/ada.ads libgnat/calendar.ads libgnat/directio.ads libgnat/gnat.ads libgnat/interfac.ads libgnat/ioexcept.ads \
2923 libgnat/machcode.ads libgnat/text_io.ads libgnat/unchconv.ads libgnat/unchdeal.ads \
2924 libgnat/sequenio.ads libgnat/memtrack.adb \
2926 libgnat/a-[a-o]*.adb libgnat/a-[a-o]*.ads \
2927 libgnat/a-[p-z]*.adb libgnat/a-[p-z]*.ads \
2928 libgnat/g-[a-o]*.adb libgnat/g-[a-o]*.ads \
2929 libgnat/g-[p-z]*.adb libgnat/g-[p-z]*.ads \
2930 libgnat/s-[a-o]*.adb libgnat/s-[a-o]*.ads \
2931 libgnat/s-[p-z]*.adb libgnat/s-[p-z]*.ads \
2932 libgnat/i-[a-o]*.adb libgnat/i-[a-o]*.ads \
2933 libgnat/i-[p-z]*.adb libgnat/i-[p-z]*.ads \
2934 libgnarl/[agis]-[a-z]*.ad[sb]
2937 # Files that are in ADA_INCLUDE_SRCS but not in all configurations.
2938 # They will be removed from the run time if not used.
2940 g-allein.ads g-alleve.adb g-alleve.ads g-altcon.adb g-altcon.ads \
2941 g-altive.ads g-alveop.adb g-alveop.ads g-alvety.ads g-alvevi.ads \
2942 g-intpri.ads g-regist.adb g-regist.ads g-sse.ads g-ssvety.ads \
2943 i-vxwoio.adb i-vxwoio.ads i-vxwork.ads \
2944 s-linux.ads s-vxwext.adb s-vxwext.ads s-win32.ads s-winext.ads \
2945 s-stchop.ads s-stchop.adb \
2946 s-strcom.adb s-strcom.ads s-thread.ads \
2949 # ADA_EXCLUDE_SRCS without the sources used by the target
2950 ADA_EXCLUDE_FILES=$(filter-out \
2951 $(patsubst %$(objext),%.ads,$(GNATRTL_OBJS)) \
2952 $(patsubst %$(objext),%.adb,$(GNATRTL_OBJS)), \
2953 $(ADA_EXCLUDE_SRCS))
2956 rts-err: ; $(RTSERR)
2958 setup-rts: rts-err force
2961 $(CHMOD) u+w $(RTSDIR)
2962 # Copy target independent sources
2963 $(foreach f,$(ADA_INCLUDE_SRCS) $(LIBGNAT_SRCS) libgnarl/thread.c, \
2964 $(LN_S) $(GNAT_SRC)/$(f) $(RTSDIR) ;) true
2965 # Remove files not used
2966 $(RM) $(patsubst %,$(RTSDIR)/%,$(ADA_EXCLUDE_FILES))
2967 # Remove files to be replaced by target dependent sources
2968 $(RM) $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \
2969 $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR))))
2970 for f in $(RTSDIR)/*-*__*.ads $(RTSDIR)/*-*__*.adb; do \
2973 # Copy new target dependent sources
2974 $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \
2975 $(LN_S) $(GNAT_SRC)/$(word 2,$(subst <, ,$(PAIR))) \
2976 $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR)));)
2977 # And finally generate libgnat.lst and libgnarl.lst
2979 $(foreach F,$(GNATRTL_TASKING_OBJS),$(subst $(objext),.ads,$(F))) \
2980 $(foreach F,$(GNATRTL_TASKING_OBJS),$(subst $(objext),.adb,$(F))); \
2982 if [ -f $(RTSDIR)/$$f ]; then echo $$f >> $(RTSDIR)/libgnarl.lst; fi \
2984 @echo thread.c >> $(RTSDIR)/libgnarl.lst
2986 $(foreach F,$(GNATRTL_NONTASKING_OBJS),$(subst $(objext),.ads,$(F))) \
2987 $(foreach F,$(GNATRTL_NONTASKING_OBJS),$(subst $(objext),.adb,$(F))); \
2989 if [ -f $(RTSDIR)/$$f ]; then echo $$f >> $(RTSDIR)/libgnat.lst; fi \
2991 # s-oscons.ads is generated later, so hardcode it here
2992 @echo s-oscons.ads >> $(RTSDIR)/libgnat.lst
2993 @for f in $(LIBGNAT_SRCS); do \
2994 echo $$f >> $(RTSDIR)/libgnat.lst; \
2997 # Special flags. It is recommended not to change the compilation flags
2998 # without a careful analysis of the consequences because (part of) the
2999 # runtime implements low-level support that is outside of the semantics
3000 # of the language and therefore needs to be treated differently from the
3001 # other units. For example, the part of the runtime implementing the
3002 # propagation of exceptions cannot itself be compiled with checks that
3003 # may give rise to exceptions, e.g. stack overflow checks.
3005 # Generate target-dependent info into a file named ada_target_properties.
3006 # This information is used by tools for static analysis: they need to know
3007 # the size of standard types for a given run-time library. This metadata
3008 # is meant to be saved at the root of the run-time directory.
3010 ADA_TARGET_PROPERTIES = -gnatet=ada_target_properties
3012 system.o: system.ads
3013 $(ADAC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< \
3014 $(ADA_TARGET_PROPERTIES) \
3017 # Force no sibling call optimization on s-traceb.o so the number of stack
3018 # frames to be skipped when computing a call chain is not modified by
3019 # optimization. We don't want inlining, either.
3021 s-traceb.o: s-traceb.adb s-traceb.ads
3022 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) \
3023 $(NO_INLINE_ADAFLAGS) $(NO_SIBLING_ADAFLAGS) $(ADA_INCLUDES) $< \
3026 # Compile s-tasdeb.o without optimization and with debug info so that it is
3027 # always possible to set conditional breakpoints on tasks.
3029 s-tasdeb.o: s-tasdeb.adb s-tasdeb.ads
3030 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O0 $(ADA_INCLUDES) \
3033 # Force no function reordering on a-except.o because of the exclusion bounds
3034 # mechanism (see the source file for more detailed information).
3035 # force debugging information on a-except.o so that it is always
3036 # possible to set conditional breakpoints on exceptions.
3037 # use -O1 otherwise gdb isn't able to get a full backtrace on mips targets.
3039 a-except.o: a-except.adb a-except.ads
3040 $(ADAC) -c $(ALL_ADAFLAGS) -O1 $(FORCE_DEBUG_ADAFLAGS) \
3041 $(NO_INLINE_ADAFLAGS) $(NO_REORDER_ADAFLAGS) $(ADA_INCLUDES) \
3044 # Compile s-excdeb.o without optimization and with debug info to let the
3045 # debugger set breakpoints and inspect subprogram parameters on exception
3048 s-excdeb.o: s-excdeb.adb s-excdeb.ads s-except.ads
3049 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O0 \
3050 $(ADA_INCLUDES) $< $(OUTPUT_OPTION)
3052 # Force debugging information on s-assert.o so that it is always
3053 # possible to set breakpoint on assert failures.
3055 s-assert.o: s-assert.adb s-assert.ads
3056 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \
3059 # Force debugging information on a-tags.o so that the debugger can find
3060 # the description of Ada.Tags.Type_Specific_Data.
3062 a-tags.o: a-tags.adb a-tags.ads
3063 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \
3066 # Force no sibling call optimization on s-memory.o to avoid turning the
3067 # tail recursion in Alloc into a loop that confuses branch prediction.
3069 s-memory.o: s-memory.adb s-memory.ads
3070 $(ADAC) -c $(ALL_ADAFLAGS) $(NO_SIBLING_ADAFLAGS) $(ADA_INCLUDES) \
3073 # Need to keep functions ordered on g-debpoo.o since labels are used to
3074 # exclude subprograms from traceback computation.
3076 g-debpoo.o: g-debpoo.adb g-debpoo.ads
3077 $(ADAC) -c $(ALL_ADAFLAGS) $(NO_REORDER_ADAFLAGS) $(ADA_INCLUDES) \