1 # Makefile.rtl for GNU Ada Compiler (GNAT).
2 # Copyright (C) 2003-2021, 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= \
825 $(GNATRTL_ALTIVEC_OBJS) \
826 $(GNATRTL_SOCKETS_OBJS) \
827 $(EXTRA_GNATRTL_NONTASKING_OBJS)
829 # LIBGNAT_TARGET_PAIRS is a list of pairs of filenames.
830 # The members of each pair must be separated by a '<' and no whitespace.
831 # Each pair must be separated by some amount of whitespace from the following
836 LIBGNAT_TARGET_PAIRS = \
837 a-intnam.ads<libgnarl/a-intnam__dummy.ads \
838 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
839 s-intman.adb<libgnarl/s-intman__dummy.adb \
840 s-osinte.ads<libgnarl/s-osinte__dummy.ads \
841 s-osprim.adb<libgnat/s-osprim__posix.adb \
842 s-taprop.adb<libgnarl/s-taprop__dummy.adb \
843 s-taspri.ads<libgnarl/s-taspri__dummy.ads
845 # When using the GCC exception handling mechanism, we need to use an
846 # alternate body for a-exexpr.adb (a-exexpr-gcc.adb)
850 # Compilation options for the GCC-SJLJ RTS. This may be augmented for
851 # target specific contexts, e.g. to add -fno-omit-frame-pointer for backtrace
853 GNATLIBCFLAGS_FOR_GCCSJLJ=-fsjlj
855 # Default shared object option. Note that we rely on the fact that the "soname"
856 # option will always be present and last in this flag, so that we can have
857 # $(SO_OPTS)libgnat-x.xx
859 SO_OPTS = -Wl,-soname,
861 # Default gnatlib-shared target.
862 # By default, equivalent to gnatlib.
863 # Set to gnatlib-shared-default, gnatlib-shared-dual, or a platform specific
864 # target when supported.
865 GNATLIB_SHARED = gnatlib
867 # By default, build socket support units. On platforms that do not support
868 # sockets, reset this variable to empty and add DUMMY_SOCKETS_TARGET_PAIRS
869 # to LIBGNAT_TARGET_PAIRS.
871 GNATRTL_SOCKETS_OBJS = g-soccon$(objext) g-socket$(objext) g-socthi$(objext) \
872 g-soliop$(objext) g-sothco$(objext) g-socpol$(objext)
874 DUMMY_SOCKETS_TARGET_PAIRS = \
875 g-socket.adb<libgnat/g-socket__dummy.adb \
876 g-socket.ads<libgnat/g-socket__dummy.ads \
877 g-socthi.adb<libgnat/g-socthi__dummy.adb \
878 g-socthi.ads<libgnat/g-socthi__dummy.ads \
879 g-sothco.adb<libgnat/g-sothco__dummy.adb \
880 g-sothco.ads<libgnat/g-sothco__dummy.ads \
881 g-socpol.adb<libgnat/g-socpol__dummy.adb \
882 g-socpol.ads<libgnat/g-socpol__dummy.ads
884 # On platforms where atomic increment/decrement operations are supported,
885 # special version of Ada.Strings.Unbounded package can be used.
887 ATOMICS_TARGET_PAIRS = \
888 a-coinho.adb<libgnat/a-coinho__shared.adb \
889 a-coinho.ads<libgnat/a-coinho__shared.ads \
890 a-stunau.adb<libgnat/a-stunau__shared.adb \
891 a-suteio.adb<libgnat/a-suteio__shared.adb \
892 a-strunb.ads<libgnat/a-strunb__shared.ads \
893 a-strunb.adb<libgnat/a-strunb__shared.adb \
894 a-stwiun.adb<libgnat/a-stwiun__shared.adb \
895 a-stwiun.ads<libgnat/a-stwiun__shared.ads \
896 a-swunau.adb<libgnat/a-swunau__shared.adb \
897 a-swuwti.adb<libgnat/a-swuwti__shared.adb \
898 a-stzunb.adb<libgnat/a-stzunb__shared.adb \
899 a-stzunb.ads<libgnat/a-stzunb__shared.ads \
900 a-szunau.adb<libgnat/a-szunau__shared.adb \
901 a-szuzti.adb<libgnat/a-szuzti__shared.adb
903 ATOMICS_BUILTINS_TARGET_PAIRS = \
904 s-atocou.adb<libgnat/s-atocou__builtin.adb
906 # Special version of units for x86 and x86-64 platforms
909 a-nuauco.ads<libgnat/a-nuauco__x86.ads \
910 s-atocou.adb<libgnat/s-atocou__builtin.adb
912 X86_64_TARGET_PAIRS = \
913 a-nuauco.ads<libgnat/a-nuauco__x86.ads \
914 s-atocou.adb<libgnat/s-atocou__builtin.adb
916 # Special version of units for platforms with SIMD math functions
918 SIMD_PATH_TARGET_PAIRS = \
919 a-nalofl.ads<libgnat/a-nalofl__simd.ads \
920 a-nuaufl.ads<libgnat/a-nuaufl__simd.ads
922 # Implementation of symbolic traceback based on DWARF
924 TRASYM_DWARF_UNIX_PAIRS = \
925 s-trasym.adb<libgnat/s-trasym__dwarf.adb \
926 s-mmosin.ads<libgnat/s-mmosin__unix.ads \
927 s-mmosin.adb<libgnat/s-mmosin__unix.adb \
928 s-mmauni.ads<libgnat/s-mmauni__long.ads
930 TRASYM_DWARF_MINGW_PAIRS = \
931 s-trasym.adb<libgnat/s-trasym__dwarf.adb \
932 s-mmosin.ads<libgnat/s-mmosin__mingw.ads \
933 s-mmosin.adb<libgnat/s-mmosin__mingw.adb
935 TRASYM_DWARF_COMMON_OBJS = \
941 TRASYM_DWARF_UNIX_OBJS = $(TRASYM_DWARF_COMMON_OBJS) s-mmauni$(objext)
943 TRASYM_DWARF_MINGW_OBJS = $(TRASYM_DWARF_COMMON_OBJS)
945 # Support for 128-bit types
947 GNATRTL_128BIT_PAIRS = \
948 a-decima.ads<libgnat/a-decima__128.ads \
949 a-tideio.adb<libgnat/a-tideio__128.adb \
950 a-tifiio.adb<libgnat/a-tifiio__128.adb \
951 a-tiinio.adb<libgnat/a-tiinio__128.adb \
952 a-timoio.adb<libgnat/a-timoio__128.adb \
953 a-wtdeio.adb<libgnat/a-wtdeio__128.adb \
954 a-wtfiio.adb<libgnat/a-wtfiio__128.adb \
955 a-wtinio.adb<libgnat/a-wtinio__128.adb \
956 a-wtmoio.adb<libgnat/a-wtmoio__128.adb \
957 a-ztdeio.adb<libgnat/a-ztdeio__128.adb \
958 a-ztfiio.adb<libgnat/a-ztfiio__128.adb \
959 a-ztinio.adb<libgnat/a-ztinio__128.adb \
960 a-ztmoio.adb<libgnat/a-ztmoio__128.adb \
961 i-cexten.ads<libgnat/i-cexten__128.ads \
962 s-scaval.ads<libgnat/s-scaval__128.ads \
963 s-scaval.adb<libgnat/s-scaval__128.adb
965 GNATRTL_128BIT_OBJS = \
1015 s-pack100$(objext) \
1016 s-pack101$(objext) \
1017 s-pack102$(objext) \
1018 s-pack103$(objext) \
1019 s-pack104$(objext) \
1020 s-pack105$(objext) \
1021 s-pack106$(objext) \
1022 s-pack107$(objext) \
1023 s-pack108$(objext) \
1024 s-pack109$(objext) \
1025 s-pack110$(objext) \
1026 s-pack111$(objext) \
1027 s-pack112$(objext) \
1028 s-pack113$(objext) \
1029 s-pack114$(objext) \
1030 s-pack115$(objext) \
1031 s-pack116$(objext) \
1032 s-pack117$(objext) \
1033 s-pack118$(objext) \
1034 s-pack119$(objext) \
1035 s-pack120$(objext) \
1036 s-pack121$(objext) \
1037 s-pack122$(objext) \
1038 s-pack123$(objext) \
1039 s-pack124$(objext) \
1040 s-pack125$(objext) \
1041 s-pack126$(objext) \
1042 s-pack127$(objext) \
1043 s-vade128$(objext) \
1044 s-vafi128$(objext) \
1045 s-valllli$(objext) \
1046 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-osprim.adb<libgnat/s-osprim__posix.adb \
1106 s-parame.ads<libgnat/s-parame__vxworks.ads \
1107 s-parame.adb<libgnat/s-parame__vxworks.adb \
1108 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1109 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1110 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1111 s-vxwork.ads<libgnarl/s-vxwork__ppc.ads \
1112 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1113 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1114 g-sopowa.adb<libgnat/g-sopowa__posix.adb \
1115 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
1116 $(ATOMICS_TARGET_PAIRS) \
1117 $(ATOMICS_BUILTINS_TARGET_PAIRS)
1119 ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),)
1120 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1121 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1124 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1128 # The rtp and kernel sections must be retained for the sake of ppc-vx6
1129 ifeq ($(strip $(filter-out rtp,$(THREAD_KIND))),)
1130 LIBGNAT_TARGET_PAIRS += \
1131 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1132 s-vxwext.adb<libgnarl/s-vxwext__rtp.adb \
1133 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-rtp.adb \
1134 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp.ads
1137 ifeq ($(strip $(filter-out rtp-smp,$(THREAD_KIND))),)
1138 LIBGNAT_TARGET_PAIRS += \
1139 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1140 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1141 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \
1142 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1143 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp-smp.ads
1145 EXTRA_LIBGNAT_OBJS+=affinity.o
1147 ifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),)
1148 LIBGNAT_TARGET_PAIRS += \
1149 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1150 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1151 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1152 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1153 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \
1154 system.ads<libgnat/$(SVX)-$(ARCH_STR)-kernel.ads
1156 EXTRA_LIBGNAT_OBJS+=affinity.o
1158 ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
1159 LIBGNAT_TARGET_PAIRS += \
1160 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1161 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb \
1162 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1163 s-vxwext.adb<libgnarl/s-vxwext__kernel.adb \
1164 system.ads<libgnat/$(SVX)-$(ARCH_STR)-kernel.ads
1166 RTSERR = $(error NO SUCH RUNTIME)
1169 EXTRA_GNATRTL_NONTASKING_OBJS+=i-vxinco.o i-vxwork.o i-vxwoio.o
1173 EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o
1174 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1176 EXTRA_GNATRTL_TASKING_OBJS += s-vxwork.o s-vxwext.o
1178 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1180 ifeq ($(strip $(filter-out vxworks7%, $(target_os))),)
1181 ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),)
1182 GCC_SPEC_FILES+=vxworks7-ppc64-rtp-base-link.spec
1184 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec
1187 GCC_SPEC_FILES+=vxworks-$(ARCH_STR)-link.spec
1188 GCC_SPEC_FILES+=vxworks-smp-$(ARCH_STR)-link.spec
1192 # x86/x86_64 VxWorks7
1193 ifeq ($(strip $(filter-out %86 x86_64 wrs vxworks7%, $(target_cpu) $(target_vendor) $(target_os))),)
1195 LIBGNAT_TARGET_PAIRS= \
1196 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1197 i-vxwork.ads<libgnat/i-vxwork__x86.ads \
1198 a-naliop.ads<libgnat/a-naliop__nolibm.ads \
1199 a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \
1200 a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \
1201 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1202 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1203 s-inmaop.adb<libgnarl/s-inmaop__hwint.adb \
1204 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1205 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1206 s-osprim.adb<libgnat/s-osprim__posix.adb \
1207 s-parame.ads<libgnat/s-parame__vxworks.ads \
1208 s-parame.adb<libgnat/s-parame__vxworks.adb \
1209 s-stchop.ads<libgnat/s-stchop__limit.ads \
1210 s-stchop.adb<libgnat/s-stchop__vxworks.adb \
1211 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1212 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1213 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1214 s-vxwork.ads<libgnarl/s-vxwork__x86.ads \
1215 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1216 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1217 g-sopowa.adb<libgnat/g-sopowa__posix.adb \
1218 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
1219 $(ATOMICS_TARGET_PAIRS)
1221 ifeq ($(strip $(filter-out x86_64, $(target_cpu))),)
1223 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
1224 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1225 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1228 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
1231 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1235 # The CPU setting for VxSim varies with the
1236 # host (Windows or Linux)
1237 # runtime (rtp or kernel)
1238 # -------------------------------------------------------------
1240 # Windows (host_os = mingw32)
1243 # Linux (host_os = linux-gnu)
1246 # -------------------------------------------------------------
1247 # It is overridden by VXSIM_CPU only in files init-vxsim.c and
1248 # sigtramp-vxworks-vxsim.c which contain functions determined at
1249 # runtime to be called if a program is running on VxSim vs real hardware
1250 # (due to differences in signal context for unwinding).
1252 ifeq ($(strip $(filter-out linux%,$(host_os))),)
1254 VXSIM_CPU = SIMLINUX
1260 GNATLIBCFLAGS_FOR_C := $(GNATLIBCFLAGS_FOR_C) -D__VXSIM_CPU__=$(VXSIM_CPU)
1262 ifeq ($(strip $(filter-out rtp-smp, $(THREAD_KIND))),)
1263 LIBGNAT_TARGET_PAIRS += \
1264 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1265 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1266 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \
1267 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1268 system.ads<libgnat/system-vxworks7-$(X86CPU)-rtp-smp.ads
1270 EXTRA_LIBGNAT_OBJS+=affinity.o
1272 ifeq ($(strip $(filter-out kernel-smp, $(THREAD_KIND))),)
1273 LIBGNAT_TARGET_PAIRS += \
1274 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1275 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1276 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1277 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1278 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \
1279 system.ads<libgnat/system-vxworks7-$(X86CPU)-kernel.ads
1281 EXTRA_LIBGNAT_OBJS+=affinity.o
1283 RTSERR = $(error NO SUCH RUNTIME)
1286 EXTRA_GNATRTL_NONTASKING_OBJS += i-vxinco.o i-vxwork.o i-vxwoio.o
1289 EXTRA_GNATRTL_NONTASKING_OBJS += s-stchop.o
1290 EXTRA_GNATRTL_TASKING_OBJS += s-vxwork.o s-vxwext.o
1292 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1294 EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o
1295 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1297 GCC_SPEC_FILES+=vxworks7-$(X86CPU)-rtp-base-link.spec
1300 # ARM and Aarch64 VxWorks7
1301 ifeq ($(strip $(filter-out aarch64 arm wrs vxworks7%, $(target_cpu) $(target_vendor) $(target_os))),)
1303 LIBGNAT_TARGET_PAIRS = \
1304 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1305 a-naliop.ads<libgnat/a-naliop__nolibm.ads \
1306 a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \
1307 a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \
1308 s-inmaop.adb<libgnarl/s-inmaop__hwint.adb \
1309 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1310 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1311 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1312 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1313 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1314 s-osprim.adb<libgnat/s-osprim__posix.adb \
1315 s-parame.ads<libgnat/s-parame__vxworks.ads \
1316 s-parame.adb<libgnat/s-parame__vxworks.adb \
1317 s-stchop.ads<libgnat/s-stchop__limit.ads \
1318 s-stchop.adb<libgnat/s-stchop__vxworks.adb \
1319 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1320 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1321 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1322 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1323 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1324 g-sopowa.adb<libgnat/g-sopowa__posix.adb \
1325 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
1326 $(ATOMICS_TARGET_PAIRS) \
1327 $(ATOMICS_BUILTINS_TARGET_PAIRS)
1329 ifeq ($(strip $(filter-out aarch64, $(target_cpu))),)
1332 SIGTRAMP_OBJ=sigtramp-vxworks.o
1333 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) \
1334 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1335 s-dorepr.adb<libgnat/s-dorepr__fma.adb
1336 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1340 SIGTRAMP_OBJ=sigtramp-armvxworks.o
1343 LIBGNAT_TARGET_PAIRS += s-vxwork.ads<libgnarl/s-vxwork__$(ARCH_STR).ads
1345 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1347 ifeq ($(strip $(filter-out rtp-smp,$(THREAD_KIND))),)
1348 LIBGNAT_TARGET_PAIRS += \
1349 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1350 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1351 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \
1352 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1353 system.ads<libgnat/system-vxworks7-$(ARCH_STR)-rtp-smp.ads
1355 EXTRA_LIBGNAT_OBJS+=affinity.o
1357 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1358 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1360 ifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),)
1361 LIBGNAT_TARGET_PAIRS += \
1362 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1363 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1364 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1365 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \
1366 system.ads<libgnat/system-vxworks7-$(ARCH_STR).ads
1368 EXTRA_LIBGNAT_OBJS+=affinity.o
1370 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1371 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1373 RTSERR = $(error NO SUCH RUNTIME)
1377 EXTRA_GNATRTL_NONTASKING_OBJS += i-vxwork.o i-vxwoio.o s-stchop.o
1378 EXTRA_GNATRTL_TASKING_OBJS += i-vxinco.o s-vxwork.o s-vxwext.o
1380 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1382 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec
1386 ifeq ($(strip $(filter-out arm% linux-androideabi,$(target_cpu) $(target_os))),)
1387 LIBGNAT_TARGET_PAIRS = \
1388 a-intnam.ads<libgnarl/a-intnam__linux.ads \
1389 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1390 s-intman.adb<libgnarl/s-intman__android.adb \
1391 s-linux.ads<libgnarl/s-linux__android.ads \
1392 s-osinte.adb<libgnarl/s-osinte__android.adb \
1393 s-osinte.ads<libgnarl/s-osinte__android.ads \
1394 s-osprim.adb<libgnat/s-osprim__posix.adb \
1395 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1396 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1397 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1398 $(ATOMICS_TARGET_PAIRS) \
1399 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1400 system.ads<libgnat/system-linux-arm.ads
1402 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1404 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
1405 EXTRA_LIBGNAT_OBJS+=sigtramp-armdroid.o
1406 EXTRA_LIBGNAT_SRCS+=sigtramp.h
1409 GNATLIB_SHARED = gnatlib-shared-dual
1410 LIBRARY_VERSION := $(LIB_VERSION)
1413 # ARM and AARCH64 QNX
1414 ifeq ($(strip $(filter-out arm aarch64 %qnx,$(target_cpu) $(target_os))),)
1415 LIBGNAT_TARGET_PAIRS = \
1416 a-intnam.ads<libgnarl/a-intnam__qnx.ads \
1417 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1418 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1419 s-intman.adb<libgnarl/s-intman__qnx.adb \
1420 s-osinte.adb<libgnarl/s-osinte__qnx.adb \
1421 s-osinte.ads<libgnarl/s-osinte__qnx.ads \
1422 s-osprim.adb<libgnat/s-osprim__posix.adb \
1423 s-qnx.ads<libgnarl/s-qnx.ads \
1424 s-taprop.adb<libgnarl/s-taprop__qnx.adb \
1425 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1426 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1427 g-soliop.ads<libgnat/g-soliop__qnx.ads \
1428 $(ATOMICS_TARGET_PAIRS) \
1429 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1430 system.ads<libgnat/system-qnx-arm.ads
1432 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1434 EXTRA_GNATRTL_TASKING_OBJS=s-qnx.o
1435 ifeq ($(strip $(filter-out arm%, $(target_cpu))),)
1437 SIGTRAMP_OBJ=sigtramp-arm-qnx.o
1440 SIGTRAMP_OBJ=sigtramp-qnx.o
1441 # "fma*" instructions not available for ARM fpu=vfpv3
1442 # but not an issue on AARCH64.
1443 LIBGNAT_TARGET_PAIRS += \
1444 s-dorepr.adb<libgnat/s-dorepr__fma.adb
1445 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1446 EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
1448 GNATLIB_SHARED = gnatlib-shared-dual
1449 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1450 EXTRA_LIBGNAT_SRCS+=sigtramp.h
1452 SO_OPTS= -shared-libgcc -Wl,-soname,
1455 LIBRARY_VERSION := $(LIB_VERSION)
1459 ifeq ($(strip $(filter-out sparc% sun solaris%,$(target_cpu) $(target_vendor) $(target_os))),)
1460 LIBGNAT_TARGET_PAIRS = \
1461 a-intnam.ads<libgnarl/a-intnam__solaris.ads \
1462 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1463 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1464 s-intman.adb<libgnarl/s-intman__solaris.adb \
1465 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1466 s-osinte.adb<libgnarl/s-osinte__solaris.adb \
1467 s-osinte.ads<libgnarl/s-osinte__solaris.ads \
1468 s-osprim.adb<libgnat/s-osprim__solaris.adb \
1469 s-taprop.adb<libgnarl/s-taprop__solaris.adb \
1470 s-tasinf.adb<libgnarl/s-tasinf__solaris.adb \
1471 s-tasinf.ads<libgnarl/s-tasinf__solaris.ads \
1472 s-taspri.ads<libgnarl/s-taspri__solaris.ads \
1473 s-tpopsp.adb<libgnarl/s-tpopsp__solaris.adb \
1474 g-soliop.ads<libgnat/g-soliop__solaris.ads \
1475 $(TRASYM_DWARF_UNIX_PAIRS) \
1476 $(ATOMICS_TARGET_PAIRS) \
1477 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1478 system.ads<libgnat/system-solaris-sparc.ads
1480 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1482 ifeq ($(strip $(filter-out sparc64 sparcv9,$(target_cpu))),)
1483 ifneq ($(strip $(MULTISUBDIR)),/sparcv8plus)
1484 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1485 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1488 ifeq ($(strip $(MULTISUBDIR)),/sparcv9)
1489 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1490 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1495 MISCLIB = -lnsl -lsocket
1497 GNATLIB_SHARED = gnatlib-shared-dual
1499 LIBRARY_VERSION := $(LIB_VERSION)
1502 # x86 and x86-64 Solaris
1503 ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(target_cpu) $(target_os))),)
1504 LIBGNAT_TARGET_PAIRS_COMMON = \
1505 a-intnam.ads<libgnarl/a-intnam__solaris.ads \
1506 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1507 s-intman.adb<libgnarl/s-intman__solaris.adb \
1508 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1509 s-osinte.adb<libgnarl/s-osinte__solaris.adb \
1510 s-osinte.ads<libgnarl/s-osinte__solaris.ads \
1511 s-osprim.adb<libgnat/s-osprim__solaris.adb \
1512 s-taprop.adb<libgnarl/s-taprop__solaris.adb \
1513 s-tasinf.adb<libgnarl/s-tasinf__solaris.adb \
1514 s-tasinf.ads<libgnarl/s-tasinf__solaris.ads \
1515 s-taspri.ads<libgnarl/s-taspri__solaris.ads \
1516 s-tpopsp.adb<libgnarl/s-tpopsp__solaris.adb \
1517 g-soliop.ads<libgnat/g-soliop__solaris.ads \
1518 $(TRASYM_DWARF_UNIX_PAIRS) \
1519 $(ATOMICS_TARGET_PAIRS) \
1520 system.ads<libgnat/system-solaris-x86.ads
1522 ifeq ($(strip $(filter-out %86 solaris2%,$(target_cpu) $(target_os))),)
1523 ifeq ($(strip $(MULTISUBDIR)),/amd64)
1524 LIBGNAT_TARGET_PAIRS = \
1525 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_64_TARGET_PAIRS)
1526 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1527 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1529 LIBGNAT_TARGET_PAIRS = \
1530 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_TARGET_PAIRS)
1533 ifeq ($(strip $(MULTISUBDIR)),/32)
1534 LIBGNAT_TARGET_PAIRS = \
1535 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_TARGET_PAIRS)
1537 LIBGNAT_TARGET_PAIRS = \
1538 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_64_TARGET_PAIRS)
1539 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1540 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1544 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1545 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1548 MISCLIB = -lnsl -lsocket
1550 GNATLIB_SHARED = gnatlib-shared-dual
1552 LIBRARY_VERSION := $(LIB_VERSION)
1556 ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),)
1557 LIBGNAT_TARGET_PAIRS = \
1558 a-intnam.ads<libgnarl/a-intnam__linux.ads \
1559 a-synbar.adb<libgnarl/a-synbar__posix.adb \
1560 a-synbar.ads<libgnarl/a-synbar__posix.ads \
1561 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1562 s-intman.adb<libgnarl/s-intman__posix.adb \
1563 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
1564 $(TRASYM_DWARF_UNIX_PAIRS) \
1565 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
1566 a-exetim.adb<libgnarl/a-exetim__posix.adb \
1567 a-exetim.ads<libgnarl/a-exetim__default.ads \
1568 s-linux.ads<libgnarl/s-linux.ads \
1569 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1570 $(ATOMICS_TARGET_PAIRS) \
1571 system.ads<libgnat/system-linux-x86.ads
1573 ifeq ($(strip $(MULTISUBDIR)),/64)
1574 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
1575 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1576 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1578 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
1581 LIBGNAT_TARGET_PAIRS += \
1582 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1583 s-osinte.ads<libgnarl/s-osinte__linux.ads \
1584 s-osprim.adb<libgnat/s-osprim__posix.adb \
1585 s-taprop.adb<libgnarl/s-taprop__linux.adb \
1586 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
1587 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
1588 s-taspri.ads<libgnarl/s-taspri__posix.ads
1591 THREADSLIB = -lpthread -lrt
1592 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1593 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1594 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
1596 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1598 GNATLIB_SHARED = gnatlib-shared-dual
1601 LIBRARY_VERSION := $(LIB_VERSION)
1603 GNATLIBCFLAGS_FOR_GCCSJLJ+=-fno-omit-frame-pointer -momit-leaf-frame-pointer
1607 ifeq ($(strip $(filter-out %86 kfreebsd%,$(target_cpu) $(target_os))),)
1608 LIBGNAT_TARGET_PAIRS = \
1609 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1610 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1611 s-intman.adb<libgnarl/s-intman__posix.adb \
1612 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1613 s-osinte.ads<libgnarl/s-osinte__kfreebsd-gnu.ads \
1614 s-osprim.adb<libgnat/s-osprim__posix.adb \
1615 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1616 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1617 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1618 $(TRASYM_DWARF_UNIX_PAIRS) \
1619 $(ATOMICS_TARGET_PAIRS) \
1620 $(X86_TARGET_PAIRS) \
1621 system.ads<libgnat/system-freebsd.ads
1623 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1625 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1626 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1629 THREADSLIB = -lpthread
1630 GNATLIB_SHARED = gnatlib-shared-dual
1632 LIBRARY_VERSION := $(LIB_VERSION)
1636 # i[3456]86-pc-gnu i.e. GNU Hurd
1637 ifeq ($(strip $(filter-out %86 pc gnu,$(target_cpu) $(target_vendor) $(target_os))),)
1638 LIBGNAT_TARGET_PAIRS = \
1639 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1640 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1641 s-intman.adb<libgnarl/s-intman__posix.adb \
1642 s-osinte.adb<libgnarl/s-osinte__gnu.adb \
1643 s-osinte.ads<libgnarl/s-osinte__gnu.ads \
1644 s-osprim.adb<libgnat/s-osprim__posix.adb \
1645 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1646 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1647 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1648 $(ATOMICS_TARGET_PAIRS) \
1649 $(X86_TARGET_PAIRS) \
1650 system.ads<libgnat/system-freebsd.ads
1652 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1654 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
1657 THREADSLIB = -lpthread
1658 GNATLIB_SHARED = gnatlib-shared-dual
1660 LIBRARY_VERSION := $(LIB_VERSION)
1663 ifeq ($(strip $(filter-out x86_64 kfreebsd%,$(target_cpu) $(target_os))),)
1664 LIBGNAT_TARGET_PAIRS = \
1665 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1666 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1667 s-intman.adb<libgnarl/s-intman__posix.adb \
1668 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1669 s-osinte.ads<libgnarl/s-osinte__kfreebsd-gnu.ads \
1670 s-osprim.adb<libgnat/s-osprim__posix.adb \
1671 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1672 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1673 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1674 $(ATOMICS_TARGET_PAIRS) \
1675 $(X86_64_TARGET_PAIRS) \
1676 $(GNATRTL_128BIT_PAIRS) \
1677 system.ads<libgnat/system-freebsd.ads
1679 EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
1681 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1684 THREADSLIB = -lpthread
1685 GNATLIB_SHARED = gnatlib-shared-dual
1687 LIBRARY_VERSION := $(LIB_VERSION)
1691 ifeq ($(strip $(filter-out %aarch64 freebsd%,$(target_cpu) $(target_os))),)
1692 LIBGNAT_TARGET_PAIRS = \
1693 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1694 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1695 s-dorepr.adb<libgnat/s-dorepr__fma.adb \
1696 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1697 s-intman.adb<libgnarl/s-intman__posix.adb \
1698 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1699 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1700 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1701 s-osprim.adb<libgnat/s-osprim__posix.adb \
1702 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1703 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1704 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1705 $(ATOMICS_TARGET_PAIRS) \
1706 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1707 $(GNATRTL_128BIT_PAIRS) \
1708 system.ads<libgnat/system-freebsd.ads
1710 EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
1712 GNATLIB_SHARED = gnatlib-shared-dual
1715 THREADSLIB= -lpthread
1717 LIBRARY_VERSION := $(LIB_VERSION)
1722 ifeq ($(strip $(filter-out %86 freebsd%,$(target_cpu) $(target_os))),)
1723 LIBGNAT_TARGET_PAIRS = \
1724 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1725 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1726 s-intman.adb<libgnarl/s-intman__posix.adb \
1727 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1728 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1729 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1730 s-osprim.adb<libgnat/s-osprim__posix.adb \
1731 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1732 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1733 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1734 $(TRASYM_DWARF_UNIX_PAIRS) \
1735 $(ATOMICS_TARGET_PAIRS) \
1736 $(X86_TARGET_PAIRS) \
1737 system.ads<libgnat/system-freebsd.ads
1739 GNATLIB_SHARED = gnatlib-shared-dual
1741 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1742 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1745 THREADSLIB= -lpthread
1747 LIBRARY_VERSION := $(LIB_VERSION)
1752 ifeq ($(strip $(filter-out %86_64 freebsd%,$(target_cpu) $(target_os))),)
1753 LIBGNAT_TARGET_PAIRS = \
1754 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1755 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1756 s-intman.adb<libgnarl/s-intman__posix.adb \
1757 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1758 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1759 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1760 s-osprim.adb<libgnat/s-osprim__posix.adb \
1761 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1762 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1763 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1764 $(TRASYM_DWARF_UNIX_PAIRS) \
1765 $(ATOMICS_TARGET_PAIRS) \
1766 $(X86_64_TARGET_PAIRS) \
1767 $(GNATRTL_128BIT_PAIRS) \
1768 system.ads<libgnat/system-freebsd.ads
1770 GNATLIB_SHARED = gnatlib-shared-dual
1772 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1773 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1774 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1777 THREADSLIB= -lpthread
1779 LIBRARY_VERSION := $(LIB_VERSION)
1784 ifeq ($(strip $(filter-out %86_64 dragonfly%,$(target_cpu) $(target_os))),)
1785 LIBGNAT_TARGET_PAIRS = \
1786 a-intnam.ads<libgnarl/a-intnam__dragonfly.ads \
1787 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1788 s-intman.adb<libgnarl/s-intman__posix.adb \
1789 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1790 s-osinte.adb<libgnarl/s-osinte__dragonfly.adb \
1791 s-osinte.ads<libgnarl/s-osinte__dragonfly.ads \
1792 s-osprim.adb<libgnat/s-osprim__posix.adb \
1793 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1794 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1795 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1796 $(ATOMICS_TARGET_PAIRS) \
1797 $(X86_64_TARGET_PAIRS) \
1798 $(GNATRTL_128BIT_PAIRS) \
1799 system.ads<libgnat/system-dragonfly-x86_64.ads
1801 GNATLIB_SHARED = gnatlib-shared-dual
1803 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1804 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1807 THREADSLIB= -lpthread
1809 LIBRARY_VERSION := $(LIB_VERSION)
1814 ifeq ($(strip $(filter-out s390% linux%,$(target_cpu) $(target_os))),)
1815 LIBGNAT_TARGET_PAIRS = \
1816 a-intnam.ads<libgnarl/a-intnam__linux.ads \
1817 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1818 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1819 s-intman.adb<libgnarl/s-intman__posix.adb \
1820 s-linux.ads<libgnarl/s-linux.ads \
1821 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1822 s-osinte.ads<libgnarl/s-osinte__linux.ads \
1823 s-osprim.adb<libgnat/s-osprim__posix.adb \
1824 s-taprop.adb<libgnarl/s-taprop__linux.adb \
1825 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
1826 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
1827 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
1828 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1829 system.ads<libgnat/system-linux-s390.ads
1831 ifeq ($(strip $(filter-out s390x,$(target_cpu))),)
1832 ifneq ($(strip $(MULTISUBDIR)),/32)
1833 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1834 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1837 ifeq ($(strip $(MULTISUBDIR)),/64)
1838 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1839 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1843 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1845 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
1847 THREADSLIB = -lpthread
1848 GNATLIB_SHARED = gnatlib-shared-dual
1849 LIBRARY_VERSION := $(LIB_VERSION)
1853 ifeq ($(strip $(filter-out hppa% hp hpux10%,$(target_cpu) $(target_vendor) $(target_os))),)
1854 LIBGNAT_TARGET_PAIRS = \
1855 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
1856 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1857 s-interr.adb<libgnarl/s-interr__sigaction.adb \
1858 s-intman.adb<libgnarl/s-intman__posix.adb \
1859 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1860 s-osinte.adb<libgnarl/s-osinte__hpux-dce.adb \
1861 s-osinte.ads<libgnarl/s-osinte__hpux-dce.ads \
1862 s-parame.ads<libgnat/s-parame__hpux.ads \
1863 s-osprim.adb<libgnat/s-osprim__posix.adb \
1864 s-taprop.adb<libgnarl/s-taprop__hpux-dce.adb \
1865 s-taspri.ads<libgnarl/s-taspri__hpux-dce.ads \
1866 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1867 system.ads<libgnat/system-hpux.ads
1873 ifeq ($(strip $(filter-out hppa% hp hpux11%,$(target_cpu) $(target_vendor) $(target_os))),)
1874 LIBGNAT_TARGET_PAIRS = \
1875 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
1876 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1877 s-intman.adb<libgnarl/s-intman__posix.adb \
1878 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1879 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1880 s-osinte.ads<libgnarl/s-osinte__hpux.ads \
1881 s-parame.ads<libgnat/s-parame__hpux.ads \
1882 s-osprim.adb<libgnat/s-osprim__posix.adb \
1883 s-traceb.adb<libgnat/s-traceb__hpux.adb \
1884 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1885 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1886 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1887 system.ads<libgnat/system-hpux.ads
1890 TGT_LIB = /usr/lib/libcl.a
1891 THREADSLIB = -lpthread
1895 GNATLIB_SHARED = gnatlib-shared-dual
1896 LIBRARY_VERSION := $(LIB_VERSION)
1900 ifeq ($(strip $(filter-out ibm aix%,$(target_vendor) $(target_os))),)
1901 LIBGNAT_TARGET_PAIRS = \
1902 a-intnam.ads<libgnarl/a-intnam__aix.ads \
1903 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1904 s-intman.adb<libgnarl/s-intman__posix.adb \
1905 s-osinte.adb<libgnarl/s-osinte__aix.adb \
1906 s-osinte.ads<libgnarl/s-osinte__aix.ads \
1907 s-osprim.adb<libgnat/s-osprim__posix.adb \
1908 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1909 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1910 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1911 $(TRASYM_DWARF_UNIX_PAIRS) \
1912 $(ATOMICS_TARGET_PAIRS) \
1913 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1914 system.ads<libgnat/system-aix.ads
1916 ifneq ($(target_os),)
1917 ifeq ($(findstring ppc64, \
1918 $(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) \
1919 -print-multi-os-directory)), \
1921 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-aix.adb
1923 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1927 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1929 THREADSLIB = -lpthreads
1935 # LynxOS 178 and LynxOS 178 Elf
1936 ifeq ($(strip $(filter-out lynxos178%,$(target_os))),)
1937 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1939 LIBGNAT_TARGET_PAIRS = \
1940 a-intnam.ads<libgnarl/a-intnam__lynxos.ads \
1941 a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \
1942 a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \
1943 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1944 g-soliop.ads<libgnat/g-soliop__lynxos.ads \
1945 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1946 s-intman.adb<libgnarl/s-intman__lynxos.adb \
1947 s-osinte.adb<libgnarl/s-osinte__lynxos178.adb \
1948 s-osprim.ads<libgnat/s-osprim__lynxos.ads \
1949 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1950 s-taspri.ads<libgnarl/s-taspri__lynxos.ads \
1951 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb
1953 ifeq ($(strip $(filter-out powerpc%, $(target_cpu))),)
1954 LIBGNAT_TARGET_PAIRS += system.ads<libgnat/system-lynxos178-ppc.ads
1956 ifeq ($(strip $(filter-out %86, $(target_cpu))),)
1957 LIBGNAT_TARGET_PAIRS += system.ads<libgnat/system-lynxos178-x86.ads
1960 ifeq ($(strip $(filter-out lynxos178e,$(target_os))),)
1961 LIBGNAT_TARGET_PAIRS += \
1962 s-parame.ads<libgnat/s-parame__posix2008.ads \
1963 s-osinte.ads<libgnarl/s-osinte__lynxos178e.ads \
1964 s-osprim.adb<libgnat/s-osprim__posix2008.adb \
1965 s-tracon.adb<hie/s-tracon__ppc-eabi.adb
1972 ifeq ($(strip $(filter-out rtems%,$(target_os))),)
1973 LIBGNAT_TARGET_PAIRS = \
1974 system.ads<libgnat/system-rtems.ads \
1975 a-intnam.ads<libgnarl/a-intnam__rtems.ads \
1976 s-inmaop.adb<libgnarl/s-inmaop__hwint.adb \
1977 s-intman.adb<libgnarl/s-intman__rtems.adb \
1978 s-intman.ads<libgnarl/s-intman__rtems.ads \
1979 s-osinte.adb<libgnarl/s-osinte__rtems.adb \
1980 s-osinte.ads<libgnarl/s-osinte__rtems.ads \
1981 s-osprim.adb<libgnat/s-osprim__rtems.adb \
1982 s-parame.adb<libgnat/s-parame__rtems.adb \
1983 s-parame.ads<libgnat/s-parame__posix2008.ads \
1984 s-taprop.adb<libgnarl/s-taprop__rtems.adb \
1985 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1986 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
1987 s-interr.adb<libgnarl/s-interr__hwint.adb
1989 EXTRA_GNATRTL_NONTASKING_OBJS += s-stchop.o
1991 ifeq ($(strip $(filter-out arm%, $(target_cpu))),)
1997 ifeq ($(strip $(filter-out aarch64%,$(target_cpu))),)
1998 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1999 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2002 ifeq ($(strip $(filter-out aarch64% riscv%,$(target_cpu))),)
2003 LIBGNAT_TARGET_PAIRS += a-nallfl.ads<libgnat/a-nallfl__wraplf.ads
2006 # Target CPUs that support atomic primitives
2007 ifeq ($(strip $(filter-out aarch64%,$(target_cpu))),)
2008 LIBGNAT_TARGET_PAIRS += \
2009 $(ATOMICS_TARGET_PAIRS) \
2010 $(ATOMICS_BUILTINS_TARGET_PAIRS)
2015 ifeq ($(strip $(filter-out powerpc% %86 sysgo pikeos,$(target_cpu) $(target_vendor) $(target_os)))),)
2016 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
2019 # *-elf, *-eabi, or *-eabispe
2020 ifeq ($(strip $(filter-out elf eabi eabispe,$(target_os))),)
2021 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
2024 ifeq ($(strip $(filter-out %djgpp,$(target_os))),)
2025 GNATRTL_SOCKETS_OBJS =
2027 LIBGNAT_TARGET_PAIRS = \
2028 a-intnam.ads<libgnarl/a-intnam__dummy.ads \
2029 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
2030 s-intman.adb<libgnarl/s-intman__dummy.adb \
2031 s-osinte.ads<libgnarl/s-osinte__dummy.ads \
2032 s-osprim.adb<libgnat/s-osprim__unix.adb \
2033 s-taprop.adb<libgnarl/s-taprop__dummy.adb \
2034 s-taspri.ads<libgnarl/s-taspri__dummy.ads \
2035 system.ads<libgnat/system-djgpp.ads \
2036 $(DUMMY_SOCKETS_TARGET_PAIRS)
2042 ifeq ($(strip $(filter-out cygwin% mingw32% pe,$(target_os))),)
2043 # Cygwin provides a full Posix environment, and so we use the default
2044 # versions g-socthi rather than the Windows-specific MinGW version.
2045 # Ideally we would use all the default versions for Cygwin and none
2046 # of the MinGW versions, but for historical reasons the Cygwin port
2047 # has always been a CygMing frankenhybrid and it is a long-term project
2048 # to disentangle them.
2049 ifeq ($(strip $(filter-out cygwin%,$(target_os))),)
2050 LIBGNAT_TARGET_PAIRS = \
2051 g-socthi.ads<libgnat/g-socthi.ads \
2052 g-socthi.adb<libgnat/g-socthi.adb
2054 LIBGNAT_TARGET_PAIRS = \
2055 g-socthi.ads<libgnat/g-socthi__mingw.ads \
2056 g-socthi.adb<libgnat/g-socthi__mingw.adb \
2057 g-sopowa.adb<libgnat/g-sopowa__mingw.adb
2059 LIBGNAT_TARGET_PAIRS += \
2060 a-dirval.adb<libgnat/a-dirval__mingw.adb \
2061 s-gloloc.adb<libgnat/s-gloloc__mingw.adb \
2062 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
2063 s-taspri.ads<libgnarl/s-taspri__mingw.ads \
2064 s-tasinf.adb<libgnarl/s-tasinf__mingw.adb \
2065 s-tasinf.ads<libgnarl/s-tasinf__mingw.ads \
2066 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
2067 g-soliop.ads<libgnat/g-soliop__mingw.ads \
2068 $(ATOMICS_TARGET_PAIRS) \
2069 system.ads<libgnat/system-mingw.ads
2071 LIBGNAT_TARGET_PAIRS += \
2072 a-exetim.adb<libgnarl/a-exetim__mingw.adb \
2073 a-exetim.ads<libgnarl/a-exetim__mingw.ads \
2074 a-intnam.ads<libgnarl/a-intnam__mingw.ads \
2075 g-sercom.adb<libgnat/g-sercom__mingw.adb \
2076 $(TRASYM_DWARF_MINGW_PAIRS) \
2077 s-tsmona.adb<libgnat/s-tsmona__mingw.adb \
2078 s-interr.adb<libgnarl/s-interr__sigaction.adb \
2079 s-intman.adb<libgnarl/s-intman__mingw.adb \
2080 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2081 s-osinte.ads<libgnarl/s-osinte__mingw.ads \
2082 s-osprim.adb<libgnat/s-osprim__mingw.adb \
2083 s-taprop.adb<libgnarl/s-taprop__mingw.adb
2085 ifeq ($(strip $(filter-out x86_64%,$(target_cpu))),)
2086 ifeq ($(strip $(MULTISUBDIR)),/32)
2087 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2088 SO_OPTS= -m32 -Wl,-soname,
2090 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS) $(GNATRTL_128BIT_PAIRS)
2091 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2092 SO_OPTS = -m64 -Wl,-soname,
2095 ifeq ($(strip $(MULTISUBDIR)),/64)
2096 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS) $(GNATRTL_128BIT_PAIRS)
2097 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2098 SO_OPTS = -m64 -Wl,-soname,
2100 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2101 SO_OPTS = -m32 -Wl,-soname,
2105 EXTRA_GNATRTL_NONTASKING_OBJS += \
2106 s-win32.o s-winext.o g-regist.o g-sse.o g-ssvety.o
2107 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_MINGW_OBJS)
2108 EXTRA_GNATRTL_TASKING_OBJS = a-exetim.o
2109 EXTRA_LIBGNAT_SRCS+=mingw32.h
2112 # ??? This will be replaced by gnatlib-shared-dual-win32 when GNAT
2113 # auto-import support for array/record will be done.
2114 GNATLIB_SHARED = gnatlib-shared-win32
2118 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
2121 EXTRA_GNATTOOLS = ../../gnatdll$(exeext)
2122 EXTRA_GNATMAKE_OBJS = mdll.o mdll-utl.o mdll-fil.o
2124 LIBRARY_VERSION := $(LIB_VERSION)
2128 ifeq ($(strip $(filter-out mips% linux%,$(target_cpu) $(target_os))),)
2129 LIBGNAT_TARGET_PAIRS = \
2130 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2131 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2132 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2133 s-intman.adb<libgnarl/s-intman__posix.adb \
2134 s-linux.ads<libgnarl/s-linux__mips.ads \
2135 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2136 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2137 s-osprim.adb<libgnat/s-osprim__posix.adb \
2138 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2139 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2140 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2141 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2142 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2143 system.ads<libgnat/system-linux-mips.ads
2145 ifeq ($(strip $(filter-out mips64% mipsisa64%,$(target_cpu))),)
2146 ifneq ($(strip $(MULTISUBDIR)),/32)
2147 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2148 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2151 ifneq ($(strip $(filter /64 /n32,$(MULTISUBDIR))),)
2152 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2153 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2157 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2159 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2161 THREADSLIB = -lpthread
2162 GNATLIB_SHARED = gnatlib-shared-dual
2164 LIBRARY_VERSION := $(LIB_VERSION)
2167 # PowerPC and e500v2 Linux
2168 ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
2169 LIBGNAT_TARGET_PAIRS = \
2170 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2171 a-exetim.ads<libgnarl/a-exetim__default.ads \
2172 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2173 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2174 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2175 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2176 s-dorepr.adb<libgnat/s-dorepr__fma.adb \
2177 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2178 s-intman.adb<libgnarl/s-intman__posix.adb \
2179 s-linux.ads<libgnarl/s-linux.ads \
2180 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2181 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2182 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2183 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2184 s-osprim.adb<libgnat/s-osprim__posix.adb \
2185 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2186 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2187 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2188 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2189 $(TRASYM_DWARF_UNIX_PAIRS) \
2190 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2191 $(ATOMICS_TARGET_PAIRS) \
2192 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2193 system.ads<libgnat/system-linux-ppc.ads
2195 ifeq ($(strip $(filter-out powerpc64%,$(target_cpu))),)
2196 ifneq ($(strip $(MULTISUBDIR)),/32)
2197 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2198 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2201 ifeq ($(strip $(MULTISUBDIR)),/64)
2202 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2203 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2207 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2209 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2210 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2213 THREADSLIB = -lpthread -lrt
2214 GNATLIB_SHARED = gnatlib-shared-dual
2217 LIBRARY_VERSION := $(LIB_VERSION)
2220 # ARM linux, GNU eabi
2221 ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),)
2222 LIBGNAT_TARGET_PAIRS = \
2223 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2224 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2225 s-intman.adb<libgnarl/s-intman__posix.adb \
2226 s-linux.ads<libgnarl/s-linux.ads \
2227 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2228 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2229 s-osprim.adb<libgnat/s-osprim__posix.adb \
2230 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2231 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2232 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2233 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2234 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2235 $(TRASYM_DWARF_UNIX_PAIRS) \
2236 $(ATOMICS_TARGET_PAIRS) \
2237 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2238 system.ads<libgnat/system-linux-arm.ads
2240 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2242 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2243 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2245 THREADSLIB = -lpthread
2246 GNATLIB_SHARED = gnatlib-shared-dual
2248 LIBRARY_VERSION := $(LIB_VERSION)
2252 ifeq ($(strip $(filter-out aarch64% linux%,$(target_cpu) $(target_os))),)
2253 LIBGNAT_TARGET_PAIRS = \
2254 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2255 a-exetim.ads<libgnarl/a-exetim__default.ads \
2256 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2257 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2258 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2259 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2260 s-dorepr.adb<libgnat/s-dorepr__fma.adb \
2261 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2262 s-intman.adb<libgnarl/s-intman__posix.adb \
2263 s-linux.ads<libgnarl/s-linux.ads \
2264 $(TRASYM_DWARF_UNIX_PAIRS) \
2265 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2266 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2267 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2268 s-osprim.adb<libgnat/s-osprim__posix.adb \
2269 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2270 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2271 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2272 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2273 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2274 $(ATOMICS_TARGET_PAIRS) \
2275 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2276 $(GNATRTL_128BIT_PAIRS) \
2277 system.ads<libgnat/system-linux-arm.ads
2279 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2281 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) \
2282 $(TRASYM_DWARF_UNIX_OBJS)
2283 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2285 THREADSLIB=-lpthread -lrt
2286 GNATLIB_SHARED=gnatlib-shared-dual
2288 LIBRARY_VERSION := $(LIB_VERSION)
2292 ifeq ($(strip $(filter-out sparc% linux%,$(target_cpu) $(target_os))),)
2293 LIBGNAT_TARGET_PAIRS = \
2294 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2295 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2296 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2297 s-intman.adb<libgnarl/s-intman__posix.adb \
2298 s-linux.ads<libgnarl/s-linux__sparc.ads \
2299 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2300 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2301 s-osprim.adb<libgnat/s-osprim__posix.adb \
2302 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2303 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2304 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2305 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2306 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2307 system.ads<libgnat/system-linux-sparc.ads
2309 ifeq ($(strip $(filter-out sparc64 sparcv9,$(target_cpu))),)
2310 ifneq ($(strip $(MULTISUBDIR)),/32)
2311 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2312 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2315 ifeq ($(strip $(MULTISUBDIR)),/64)
2316 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2317 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2321 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2323 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2325 THREADSLIB = -lpthread
2326 GNATLIB_SHARED = gnatlib-shared-dual
2328 LIBRARY_VERSION := $(LIB_VERSION)
2332 ifeq ($(strip $(filter-out hppa% linux%,$(target_cpu) $(target_os))),)
2333 LIBGNAT_TARGET_PAIRS = \
2334 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2335 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2336 s-intman.adb<libgnarl/s-intman__posix.adb \
2337 s-linux.ads<libgnarl/s-linux__hppa.ads \
2338 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2339 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2340 s-osprim.adb<libgnat/s-osprim__posix.adb \
2341 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2342 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2343 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2344 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2345 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2346 system.ads<libgnat/system-linux-hppa.ads
2348 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2350 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2352 THREADSLIB = -lpthread
2353 GNATLIB_SHARED = gnatlib-shared-dual
2355 LIBRARY_VERSION := $(LIB_VERSION)
2359 ifeq ($(strip $(filter-out m68k% linux%,$(target_cpu) $(target_os))),)
2360 LIBGNAT_TARGET_PAIRS = \
2361 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2362 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2363 s-intman.adb<libgnarl/s-intman__posix.adb \
2364 s-linux.ads<libgnarl/s-linux.ads \
2365 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2366 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2367 s-osprim.adb<libgnat/s-osprim__posix.adb \
2368 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2369 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2370 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2371 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2372 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2373 system.ads<libgnat/system-linux-m68k.ads
2375 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2377 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2379 THREADSLIB = -lpthread
2380 GNATLIB_SHARED = gnatlib-shared-dual
2382 LIBRARY_VERSION := $(LIB_VERSION)
2386 ifeq ($(strip $(filter-out sh4% linux%,$(target_cpu) $(target_os))),)
2387 LIBGNAT_TARGET_PAIRS = \
2388 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2389 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2390 s-intman.adb<libgnarl/s-intman__posix.adb \
2391 s-linux.ads<libgnarl/s-linux.ads \
2392 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2393 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2394 s-osprim.adb<libgnat/s-osprim__posix.adb \
2395 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2396 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2397 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2398 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2399 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2400 system.ads<libgnat/system-linux-sh4.ads
2402 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-linux.adb
2404 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2407 THREADSLIB = -lpthread
2408 GNATLIB_SHARED = gnatlib-shared-dual
2410 LIBRARY_VERSION := $(LIB_VERSION)
2414 ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
2415 LIBGNAT_TARGET_PAIRS = \
2416 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2417 a-exetim.ads<libgnarl/a-exetim__default.ads \
2418 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2419 a-nuauco.ads<libgnat/a-nuauco__x86.ads \
2420 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2421 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2422 s-dorepr.adb<libgnat/s-dorepr__fma.adb \
2423 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2424 s-intman.adb<libgnarl/s-intman__posix.adb \
2425 s-linux.ads<libgnarl/s-linux.ads \
2426 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2427 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2428 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2429 s-osprim.adb<libgnat/s-osprim__posix.adb \
2430 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2431 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2432 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2433 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2434 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2435 $(TRASYM_DWARF_UNIX_PAIRS) \
2436 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2437 $(ATOMICS_TARGET_PAIRS) \
2438 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2439 $(GNATRTL_128BIT_PAIRS) \
2440 system.ads<libgnat/system-linux-ia64.ads
2442 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2444 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2445 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2446 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2448 THREADSLIB=-lpthread -lrt
2449 GNATLIB_SHARED=gnatlib-shared-dual
2452 LIBRARY_VERSION := $(LIB_VERSION)
2456 ifeq ($(strip $(filter-out ia64% hp hpux%,$(target_cpu) $(target_vendor) $(target_os))),)
2457 LIBGNAT_TARGET_PAIRS = \
2458 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
2459 s-dorepr.adb<libgnat/s-dorepr__fma.adb \
2460 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2461 s-intman.adb<libgnarl/s-intman__posix.adb \
2462 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2463 s-osinte.ads<libgnarl/s-osinte__hpux.ads \
2464 s-osprim.adb<libgnat/s-osprim__posix.adb \
2465 s-taprop.adb<libgnarl/s-taprop__posix.adb \
2466 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2467 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2468 $(TRASYM_DWARF_UNIX_PAIRS) \
2469 $(ATOMICS_TARGET_PAIRS) \
2470 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2471 $(GNATRTL_128BIT_PAIRS) \
2472 system.ads<libgnat/system-hpux-ia64.ads
2474 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2475 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2479 THREADSLIB=-lpthread
2480 GNATLIB_SHARED=gnatlib-shared-dual
2484 LIBRARY_VERSION := $(LIB_VERSION)
2488 ifeq ($(strip $(filter-out alpha% linux%,$(target_cpu) $(target_os))),)
2489 LIBGNAT_TARGET_PAIRS = \
2490 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2491 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2492 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2493 s-intman.adb<libgnarl/s-intman__posix.adb \
2494 s-linux.ads<libgnarl/s-linux__alpha.ads \
2495 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2496 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2497 s-osprim.adb<libgnat/s-osprim__posix.adb \
2498 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2499 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2500 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2501 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2502 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2503 $(ATOMICS_TARGET_PAIRS) \
2504 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2505 $(GNATRTL_128BIT_PAIRS) \
2506 system.ads<libgnat/system-linux-alpha.ads
2508 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2510 EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
2511 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2514 THREADSLIB=-lpthread
2515 GNATLIB_SHARED=gnatlib-shared-dual
2516 LIBRARY_VERSION := $(LIB_VERSION)
2520 ifeq ($(strip $(filter-out %x86_64 linux%,$(target_cpu) $(target_os))),)
2521 LIBGNAT_TARGET_PAIRS = \
2522 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2523 a-exetim.ads<libgnarl/a-exetim__default.ads \
2524 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2525 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2526 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2527 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2528 s-intman.adb<libgnarl/s-intman__posix.adb \
2529 s-linux.ads<libgnarl/s-linux.ads \
2530 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2531 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2532 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2533 s-osprim.adb<libgnat/s-osprim__posix.adb \
2534 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2535 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2536 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2537 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2538 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2539 $(TRASYM_DWARF_UNIX_PAIRS) \
2540 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2541 $(ATOMICS_TARGET_PAIRS) \
2542 $(X86_64_TARGET_PAIRS) \
2543 $(SIMD_PATH_TARGET_PAIRS) \
2544 $(GNATRTL_128BIT_PAIRS) \
2545 system.ads<libgnat/system-linux-x86.ads
2547 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2549 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
2550 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2551 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2552 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2555 THREADSLIB=-lpthread -lrt
2557 GNATLIB_SHARED=gnatlib-shared-dual
2559 LIBRARY_VERSION := $(LIB_VERSION)
2561 GNATLIBCFLAGS_FOR_GCCSJLJ+=-fno-omit-frame-pointer -momit-leaf-frame-pointer
2564 ifeq ($(strip $(filter-out %x32 linux%,$(target_cpu) $(target_os))),)
2565 LIBGNAT_TARGET_PAIRS = \
2566 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2567 a-exetim.ads<libgnarl/a-exetim__default.ads \
2568 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2569 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2570 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2571 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2572 s-intman.adb<libgnarl/s-intman__posix.adb \
2573 s-linux.ads<libgnarl/s-linux__x32.ads \
2574 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2575 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2576 s-osinte.adb<libgnarl/s-osinte__x32.adb \
2577 s-osprim.adb<libgnat/s-osprim__x32.adb \
2578 s-parame.ads<libgnat/s-parame__posix2008.ads \
2579 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2580 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2581 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2582 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2583 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2584 $(TRASYM_DWARF_UNIX_PAIRS) \
2585 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2586 $(ATOMICS_TARGET_PAIRS) \
2587 $(X86_64_TARGET_PAIRS) \
2588 $(SIMD_PATH_TARGET_PAIRS) \
2589 $(GNATRTL_128BIT_PAIRS) \
2590 system.ads<libgnat/system-linux-x86.ads
2592 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2594 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
2595 EXTRA_GNATRTL_NONTASKING_OBJS+=$(TRASYM_DWARF_UNIX_OBJS)
2596 EXTRA_GNATRTL_NONTASKING_OBJS+=$(GNATRTL_128BIT_OBJS)
2597 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2599 THREADSLIB=-lpthread -lrt
2600 GNATLIB_SHARED=gnatlib-shared-dual
2602 LIBRARY_VERSION := $(LIB_VERSION)
2606 ifeq ($(strip $(filter-out riscv% linux%,$(target_cpu) $(target_os))),)
2607 LIBGNAT_TARGET_PAIRS = \
2608 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2609 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2610 s-dorepr.adb<libgnat/s-dorepr__fma.adb \
2611 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2612 s-intman.adb<libgnarl/s-intman__posix.adb \
2613 s-linux.ads<libgnarl/s-linux__riscv.ads \
2614 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2615 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2616 s-osprim.adb<libgnat/s-osprim__posix.adb \
2617 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2618 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2619 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2620 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2621 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2622 system.ads<libgnat/system-linux-riscv.ads
2624 ifeq ($(strip $(filter-out riscv64,$(target_cpu))),)
2625 ifneq ($(strip $(MULTISUBDIR)),/lib32)
2626 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2627 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2630 ifeq ($(strip $(MULTISUBDIR)),/lib64)
2631 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2632 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2636 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2638 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2640 THREADSLIB = -lpthread
2641 GNATLIB_SHARED = gnatlib-shared-dual
2643 LIBRARY_VERSION := $(LIB_VERSION)
2647 ifeq ($(strip $(filter-out darwin%,$(target_os))),)
2648 SO_OPTS = -shared-libgcc
2649 LIBGNAT_TARGET_PAIRS = \
2650 a-intnam.ads<libgnarl/a-intnam__darwin.ads \
2651 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2652 s-osinte.adb<libgnarl/s-osinte__darwin.adb \
2653 s-osinte.ads<libgnarl/s-osinte__darwin.ads \
2654 s-taprop.adb<libgnarl/s-taprop__posix.adb \
2655 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2656 g-sercom.adb<libgnat/g-sercom__linux.adb \
2657 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb
2659 ifeq ($(strip $(filter-out %86,$(target_cpu))),)
2660 LIBGNAT_TARGET_PAIRS += \
2661 s-intman.adb<libgnarl/s-intman__susv3.adb \
2662 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2663 $(ATOMICS_TARGET_PAIRS) \
2664 system.ads<libgnat/system-darwin-x86.ads
2666 ifeq ($(strip $(MULTISUBDIR)),/x86_64)
2668 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2669 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2670 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2672 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2675 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
2678 ifeq ($(strip $(filter-out %x86_64,$(target_cpu))),)
2679 LIBGNAT_TARGET_PAIRS += \
2680 s-intman.adb<libgnarl/s-intman__susv3.adb \
2681 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2682 a-exetim.ads<libgnarl/a-exetim__default.ads \
2683 a-exetim.adb<libgnarl/a-exetim__darwin.adb \
2684 $(ATOMICS_TARGET_PAIRS) \
2685 system.ads<libgnat/system-darwin-x86.ads
2687 ifeq ($(strip $(MULTISUBDIR)),/i386)
2689 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2691 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2692 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2693 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2696 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
2697 EXTRA_GNATRTL_TASKING_OBJS=a-exetim.o
2700 ifeq ($(strip $(filter-out powerpc%,$(target_cpu))),)
2701 LIBGNAT_TARGET_PAIRS += \
2702 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2703 s-intman.adb<libgnarl/s-intman__posix.adb \
2704 s-osprim.adb<libgnat/s-osprim__posix.adb \
2705 $(ATOMICS_TARGET_PAIRS) \
2706 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2707 system.ads<libgnat/system-darwin-ppc.ads
2709 ifeq ($(strip $(filter-out powerpc64,$(target_cpu))),)
2710 ifneq ($(strip $(MULTISUBDIR)),/ppc)
2711 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2712 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2717 ifeq ($(strip $(MULTISUBDIR)),/ppc64)
2719 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2720 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2725 ifeq ($(strip $(filter-out arm,$(target_cpu))),)
2726 LIBGNAT_TARGET_PAIRS += \
2727 s-intman.adb<libgnarl/s-intman__susv3.adb \
2728 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2729 $(ATOMICS_TARGET_PAIRS) \
2730 $(ATOMICS_BUILTINS_TARGET_PAIRS)
2732 LIBGNAT_TARGET_PAIRS += \
2733 system.ads<libgnat/system-darwin-arm.ads
2736 ifeq ($(strip $(filter-out arm64 aarch64,$(target_cpu))),)
2737 LIBGNAT_TARGET_PAIRS += \
2738 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2739 s-intman.adb<libgnarl/s-intman__susv3.adb \
2740 s-dorepr.adb<libgnat/s-dorepr__fma.adb \
2741 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2742 $(ATOMICS_TARGET_PAIRS) \
2743 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2744 $(GNATRTL_128BIT_PAIRS)
2746 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2747 EXTRA_LIBGNAT_OBJS+=sigtramp-ios.o
2748 EXTRA_LIBGNAT_SRCS+=sigtramp.h
2749 LIBGNAT_TARGET_PAIRS += \
2750 system.ads<libgnat/system-darwin-arm.ads
2753 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-darwin.adb
2756 GNATLIB_SHARED = gnatlib-shared-darwin
2758 LIBRARY_VERSION := $(LIB_VERSION)
2760 GCC_LINK_FLAGS=-static-libstdc++
2763 ifeq ($(EH_MECHANISM),-gcc)
2764 LIBGNAT_TARGET_PAIRS += \
2765 s-excmac.ads<libgnat/s-excmac__gcc.ads \
2766 s-excmac.adb<libgnat/s-excmac__gcc.adb
2767 EXTRA_LIBGNAT_OBJS+=raise-gcc.o
2768 EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o
2771 ifeq ($(EH_MECHANISM),-arm)
2772 LIBGNAT_TARGET_PAIRS += \
2773 s-excmac.ads<libgnat/s-excmac__arm.ads \
2774 s-excmac.adb<libgnat/s-excmac__arm.adb
2775 EXTRA_LIBGNAT_OBJS+=raise-gcc.o
2776 EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o
2779 ifeq ($(strip $(filter-out linux%,$(target_os))),)
2780 LIBGNAT_TARGET_PAIRS += \
2781 g-sercom.adb<libgnat/g-sercom__linux.adb
2784 # Turn on shared gnatlib for specific vx7r2 targets for RTP runtimes. Once
2785 # all targets are ported the target_cpu selector can be removed.
2786 ifeq ($(strip $(filter-out vxworks7r2 powerpc64 x86_64 aarch64 rtp rtp-smp, $(target_os) $(target_cpu) $(THREAD_KIND))),)
2787 GNATLIB_SHARED = gnatlib-shared-dual
2788 LIBRARY_VERSION := $(LIB_VERSION)
2791 LIBGNAT_TARGET_PAIRS += \
2792 interfac.ads<libgnat/interfac__2020.ads
2794 # LIBGNAT_SRCS is the list of all C files (including headers) of the runtime
2795 # library. LIBGNAT_OBJS is the list of object files for libgnat.
2796 # thread.c is special as put into GNATRTL_TASKING_OBJS
2797 LIBGNAT_OBJS = adadecode.o adaint.o argv.o aux-io.o \
2798 cal.o cio.o cstreams.o ctrl_c.o \
2799 env.o errno.o exit.o expect.o final.o rtfinal.o rtinit.o \
2800 init.o initialize.o locales.o mkdir.o \
2801 raise.o seh_init.o socket.o sysdep.o \
2802 targext.o terminals.o tracebak.o \
2803 $(EXTRA_LIBGNAT_OBJS)
2805 # NOTE ??? - when the -I option for compiling Ada code is made to work,
2806 # the library installation will change and there will be a
2807 # GNAT_RTL_SRCS. Right now we count on being able to build GNATRTL_OBJS
2808 # from ADA_INCLUDE_SRCS.
2810 LIBGNAT_SRCS = $(patsubst %.o,%.c,$(LIBGNAT_OBJS)) \
2811 adadecode.h adaint.h env.h gsocket.h raise.h standard.ads.h \
2812 runtime.h $(EXTRA_LIBGNAT_SRCS)
2814 # memtrack.o is special as not put into libgnat.
2815 GNATRTL_OBJS = $(GNATRTL_NONTASKING_OBJS) $(GNATRTL_TASKING_OBJS) \
2818 # Run time source files
2819 # Note that libgnat contains a significant number of files. In orde to avoid
2820 # command line length limitations the source regexp has been split for that
2823 libgnat/ada.ads libgnat/calendar.ads libgnat/directio.ads libgnat/gnat.ads libgnat/interfac.ads libgnat/ioexcept.ads \
2824 libgnat/machcode.ads libgnat/text_io.ads libgnat/unchconv.ads libgnat/unchdeal.ads \
2825 libgnat/sequenio.ads libgnat/memtrack.adb \
2827 libgnat/a-[a-o]*.adb libgnat/a-[a-o]*.ads \
2828 libgnat/a-[p-z]*.adb libgnat/a-[p-z]*.ads \
2829 libgnat/g-[a-o]*.adb libgnat/g-[a-o]*.ads \
2830 libgnat/g-[p-z]*.adb libgnat/g-[p-z]*.ads \
2831 libgnat/s-[a-o]*.adb libgnat/s-[a-o]*.ads \
2832 libgnat/s-[p-z]*.adb libgnat/s-[p-z]*.ads \
2833 libgnat/i-[a-o]*.adb libgnat/i-[a-o]*.ads \
2834 libgnat/i-[p-z]*.adb libgnat/i-[p-z]*.ads \
2835 libgnarl/[agis]-[a-z]*.ad[sb]
2838 # Files that are in ADA_INCLUDE_SRCS but not in all configurations.
2839 # They will be removed from the run time if not used.
2841 g-allein.ads g-alleve.adb g-alleve.ads g-altcon.adb g-altcon.ads \
2842 g-altive.ads g-alveop.adb g-alveop.ads g-alvety.ads g-alvevi.ads \
2843 g-intpri.ads g-regist.adb g-regist.ads g-sse.ads g-ssvety.ads \
2844 i-vxinco.adb i-vxinco.ads i-vxwoio.adb i-vxwoio.ads i-vxwork.ads \
2845 s-linux.ads s-vxwext.adb s-vxwext.ads s-win32.ads s-winext.ads \
2846 s-stchop.ads s-stchop.adb \
2847 s-strcom.adb s-strcom.ads s-thread.ads \
2850 # ADA_EXCLUDE_SRCS without the sources used by the target
2851 ADA_EXCLUDE_FILES=$(filter-out \
2852 $(patsubst %$(objext),%.ads,$(GNATRTL_OBJS)) \
2853 $(patsubst %$(objext),%.adb,$(GNATRTL_OBJS)), \
2854 $(ADA_EXCLUDE_SRCS))
2857 rts-err: ; $(RTSERR)
2859 setup-rts: rts-err force
2862 $(CHMOD) u+w $(RTSDIR)
2863 # Copy target independent sources
2864 $(foreach f,$(ADA_INCLUDE_SRCS) $(LIBGNAT_SRCS) libgnarl/thread.c, \
2865 $(LN_S) $(GNAT_SRC)/$(f) $(RTSDIR) ;) true
2866 # Remove files not used
2867 $(RM) $(patsubst %,$(RTSDIR)/%,$(ADA_EXCLUDE_FILES))
2868 # Remove files to be replaced by target dependent sources
2869 $(RM) $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \
2870 $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR))))
2871 for f in $(RTSDIR)/*-*__*.ads $(RTSDIR)/*-*__*.adb; do \
2874 # Copy new target dependent sources
2875 $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \
2876 $(LN_S) $(GNAT_SRC)/$(word 2,$(subst <, ,$(PAIR))) \
2877 $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR)));)
2878 # And finally generate libgnat.lst and libgnarl.lst
2880 $(foreach F,$(GNATRTL_TASKING_OBJS),$(subst $(objext),.ads,$(F))) \
2881 $(foreach F,$(GNATRTL_TASKING_OBJS),$(subst $(objext),.adb,$(F))); \
2883 if [ -f $(RTSDIR)/$$f ]; then echo $$f >> $(RTSDIR)/libgnarl.lst; fi \
2885 @echo thread.c >> $(RTSDIR)/libgnarl.lst
2887 $(foreach F,$(GNATRTL_NONTASKING_OBJS),$(subst $(objext),.ads,$(F))) \
2888 $(foreach F,$(GNATRTL_NONTASKING_OBJS),$(subst $(objext),.adb,$(F))); \
2890 if [ -f $(RTSDIR)/$$f ]; then echo $$f >> $(RTSDIR)/libgnat.lst; fi \
2892 # s-oscons.ads is generated later, so hardcode it here
2893 @echo s-oscons.ads >> $(RTSDIR)/libgnat.lst
2894 @for f in $(LIBGNAT_SRCS); do \
2895 echo $$f >> $(RTSDIR)/libgnat.lst; \
2898 # Special flags. It is recommended not to change the compilation flags
2899 # without a careful analysis of the consequences because (part of) the
2900 # runtime implements low-level support that is outside of the semantics
2901 # of the language and therefore needs to be treated differently from the
2902 # other units. For example, the part of the runtime implementing the
2903 # propagation of exceptions cannot itself be compiled with checks that
2904 # may give rise to exceptions, e.g. stack overflow checks.
2906 # Generate target-dependent info into a file named ada_target_properties.
2907 # This information is used by tools for static analysis: they need to know
2908 # the size of standard types for a given run-time library. This metadata
2909 # is meant to be saved at the root of the run-time directory.
2911 ADA_TARGET_PROPERTIES = -gnatet=ada_target_properties
2913 system.o: system.ads
2914 $(ADAC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< \
2915 $(ADA_TARGET_PROPERTIES) \
2918 # Force no sibling call optimization on s-traceb.o so the number of stack
2919 # frames to be skipped when computing a call chain is not modified by
2920 # optimization. We don't want inlining, either.
2922 s-traceb.o: s-traceb.adb s-traceb.ads
2923 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) \
2924 $(NO_INLINE_ADAFLAGS) $(NO_SIBLING_ADAFLAGS) $(ADA_INCLUDES) $< \
2927 # Compile s-tasdeb.o without optimization and with debug info so that it is
2928 # always possible to set conditional breakpoints on tasks.
2930 s-tasdeb.o: s-tasdeb.adb s-tasdeb.ads
2931 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O0 $(ADA_INCLUDES) \
2934 # Force no function reordering on a-except.o because of the exclusion bounds
2935 # mechanism (see the source file for more detailed information).
2936 # force debugging information on a-except.o so that it is always
2937 # possible to set conditional breakpoints on exceptions.
2938 # use -O1 otherwise gdb isn't able to get a full backtrace on mips targets.
2940 a-except.o: a-except.adb a-except.ads
2941 $(ADAC) -c $(ALL_ADAFLAGS) -O1 $(FORCE_DEBUG_ADAFLAGS) \
2942 $(NO_INLINE_ADAFLAGS) $(NO_REORDER_ADAFLAGS) $(ADA_INCLUDES) \
2945 # Compile s-excdeb.o without optimization and with debug info to let the
2946 # debugger set breakpoints and inspect subprogram parameters on exception
2949 s-excdeb.o: s-excdeb.adb s-excdeb.ads s-except.ads
2950 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O0 \
2951 $(ADA_INCLUDES) $< $(OUTPUT_OPTION)
2953 # Force debugging information on s-assert.o so that it is always
2954 # possible to set breakpoint on assert failures.
2956 s-assert.o: s-assert.adb s-assert.ads
2957 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \
2960 # Force debugging information on a-tags.o so that the debugger can find
2961 # the description of Ada.Tags.Type_Specific_Data.
2963 a-tags.o: a-tags.adb a-tags.ads
2964 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \
2967 # Force no sibling call optimization on s-memory.o to avoid turning the
2968 # tail recursion in Alloc into a loop that confuses branch prediction.
2970 s-memory.o: s-memory.adb s-memory.ads
2971 $(ADAC) -c $(ALL_ADAFLAGS) $(NO_SIBLING_ADAFLAGS) $(ADA_INCLUDES) \
2974 # Need to keep functions ordered on g-debpoo.o since labels are used to
2975 # exclude subprograms from traceback computation.
2977 g-debpoo.o: g-debpoo.adb g-debpoo.ads
2978 $(ADAC) -c $(ALL_ADAFLAGS) $(NO_REORDER_ADAFLAGS) $(ADA_INCLUDES) \