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= \
818 $(GNATRTL_ALTIVEC_OBJS) \
819 $(GNATRTL_SOCKETS_OBJS) \
820 $(EXTRA_GNATRTL_NONTASKING_OBJS)
822 # LIBGNAT_TARGET_PAIRS is a list of pairs of filenames.
823 # The members of each pair must be separated by a '<' and no whitespace.
824 # Each pair must be separated by some amount of whitespace from the following
829 LIBGNAT_TARGET_PAIRS = \
830 a-intnam.ads<libgnarl/a-intnam__dummy.ads \
831 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
832 s-intman.adb<libgnarl/s-intman__dummy.adb \
833 s-osinte.ads<libgnarl/s-osinte__dummy.ads \
834 s-osprim.adb<libgnat/s-osprim__posix.adb \
835 s-taprop.adb<libgnarl/s-taprop__dummy.adb \
836 s-taspri.ads<libgnarl/s-taspri__dummy.ads
838 # When using the GCC exception handling mechanism, we need to use an
839 # alternate body for a-exexpr.adb (a-exexpr-gcc.adb)
843 # Compilation options for the GCC-SJLJ RTS. This may be augmented for
844 # target specific contexts, e.g. to add -fno-omit-frame-pointer for backtrace
846 GNATLIBCFLAGS_FOR_GCCSJLJ=-fsjlj
848 # Default shared object option. Note that we rely on the fact that the "soname"
849 # option will always be present and last in this flag, so that we can have
850 # $(SO_OPTS)libgnat-x.xx
852 SO_OPTS = -Wl,-soname,
854 # Default gnatlib-shared target.
855 # By default, equivalent to gnatlib.
856 # Set to gnatlib-shared-default, gnatlib-shared-dual, or a platform specific
857 # target when supported.
858 GNATLIB_SHARED = gnatlib
860 # By default, build socket support units. On platforms that do not support
861 # sockets, reset this variable to empty and add DUMMY_SOCKETS_TARGET_PAIRS
862 # to LIBGNAT_TARGET_PAIRS.
864 GNATRTL_SOCKETS_OBJS = g-soccon$(objext) g-socket$(objext) g-socthi$(objext) \
865 g-soliop$(objext) g-sothco$(objext) g-socpol$(objext) g-spogwa$(objext)
867 DUMMY_SOCKETS_TARGET_PAIRS = \
868 g-socket.adb<libgnat/g-socket__dummy.adb \
869 g-socket.ads<libgnat/g-socket__dummy.ads \
870 g-socthi.adb<libgnat/g-socthi__dummy.adb \
871 g-socthi.ads<libgnat/g-socthi__dummy.ads \
872 g-sothco.adb<libgnat/g-sothco__dummy.adb \
873 g-sothco.ads<libgnat/g-sothco__dummy.ads \
874 g-socpol.adb<libgnat/g-socpol__dummy.adb \
875 g-socpol.ads<libgnat/g-socpol__dummy.ads
877 # On platforms where atomic increment/decrement operations are supported,
878 # special version of Ada.Strings.Unbounded package can be used.
880 ATOMICS_TARGET_PAIRS = \
881 a-coinho.adb<libgnat/a-coinho__shared.adb \
882 a-coinho.ads<libgnat/a-coinho__shared.ads \
883 a-stunau.adb<libgnat/a-stunau__shared.adb \
884 a-suteio.adb<libgnat/a-suteio__shared.adb \
885 a-strunb.ads<libgnat/a-strunb__shared.ads \
886 a-strunb.adb<libgnat/a-strunb__shared.adb \
887 a-stwiun.adb<libgnat/a-stwiun__shared.adb \
888 a-stwiun.ads<libgnat/a-stwiun__shared.ads \
889 a-swunau.adb<libgnat/a-swunau__shared.adb \
890 a-swuwti.adb<libgnat/a-swuwti__shared.adb \
891 a-stzunb.adb<libgnat/a-stzunb__shared.adb \
892 a-stzunb.ads<libgnat/a-stzunb__shared.ads \
893 a-szunau.adb<libgnat/a-szunau__shared.adb \
894 a-szuzti.adb<libgnat/a-szuzti__shared.adb
896 ATOMICS_BUILTINS_TARGET_PAIRS = \
897 s-atocou.adb<libgnat/s-atocou__builtin.adb
899 # Special version of units for x86 and x86-64 platforms
902 a-nuauco.ads<libgnat/a-nuauco__x86.ads \
903 s-atocou.adb<libgnat/s-atocou__builtin.adb
905 X86_64_TARGET_PAIRS = \
906 a-nuauco.ads<libgnat/a-nuauco__x86.ads \
907 s-atocou.adb<libgnat/s-atocou__builtin.adb
909 # Special version of units for platforms with SIMD math functions
911 SIMD_PATH_TARGET_PAIRS = \
912 a-nalofl.ads<libgnat/a-nalofl__simd.ads \
913 a-nuaufl.ads<libgnat/a-nuaufl__simd.ads
915 # Implementation of symbolic traceback based on DWARF
917 TRASYM_DWARF_UNIX_PAIRS = \
918 s-trasym.adb<libgnat/s-trasym__dwarf.adb \
919 s-mmosin.ads<libgnat/s-mmosin__unix.ads \
920 s-mmosin.adb<libgnat/s-mmosin__unix.adb \
921 s-mmauni.ads<libgnat/s-mmauni__long.ads
923 TRASYM_DWARF_MINGW_PAIRS = \
924 s-trasym.adb<libgnat/s-trasym__dwarf.adb \
925 s-mmosin.ads<libgnat/s-mmosin__mingw.ads \
926 s-mmosin.adb<libgnat/s-mmosin__mingw.adb
928 TRASYM_DWARF_COMMON_OBJS = \
934 TRASYM_DWARF_UNIX_OBJS = $(TRASYM_DWARF_COMMON_OBJS) s-mmauni$(objext)
936 TRASYM_DWARF_MINGW_OBJS = $(TRASYM_DWARF_COMMON_OBJS)
938 # Support for 128-bit types
940 GNATRTL_128BIT_PAIRS = \
941 a-decima.ads<libgnat/a-decima__128.ads \
942 a-tideio.adb<libgnat/a-tideio__128.adb \
943 a-tifiio.adb<libgnat/a-tifiio__128.adb \
944 a-tiinio.adb<libgnat/a-tiinio__128.adb \
945 a-timoio.adb<libgnat/a-timoio__128.adb \
946 a-wtdeio.adb<libgnat/a-wtdeio__128.adb \
947 a-wtfiio.adb<libgnat/a-wtfiio__128.adb \
948 a-wtinio.adb<libgnat/a-wtinio__128.adb \
949 a-wtmoio.adb<libgnat/a-wtmoio__128.adb \
950 a-ztdeio.adb<libgnat/a-ztdeio__128.adb \
951 a-ztfiio.adb<libgnat/a-ztfiio__128.adb \
952 a-ztinio.adb<libgnat/a-ztinio__128.adb \
953 a-ztmoio.adb<libgnat/a-ztmoio__128.adb \
954 i-cexten.ads<libgnat/i-cexten__128.ads \
955 s-scaval.ads<libgnat/s-scaval__128.ads \
956 s-scaval.adb<libgnat/s-scaval__128.adb
958 GNATRTL_128BIT_OBJS = \
1008 s-pack100$(objext) \
1009 s-pack101$(objext) \
1010 s-pack102$(objext) \
1011 s-pack103$(objext) \
1012 s-pack104$(objext) \
1013 s-pack105$(objext) \
1014 s-pack106$(objext) \
1015 s-pack107$(objext) \
1016 s-pack108$(objext) \
1017 s-pack109$(objext) \
1018 s-pack110$(objext) \
1019 s-pack111$(objext) \
1020 s-pack112$(objext) \
1021 s-pack113$(objext) \
1022 s-pack114$(objext) \
1023 s-pack115$(objext) \
1024 s-pack116$(objext) \
1025 s-pack117$(objext) \
1026 s-pack118$(objext) \
1027 s-pack119$(objext) \
1028 s-pack120$(objext) \
1029 s-pack121$(objext) \
1030 s-pack122$(objext) \
1031 s-pack123$(objext) \
1032 s-pack124$(objext) \
1033 s-pack125$(objext) \
1034 s-pack126$(objext) \
1035 s-pack127$(objext) \
1036 s-vade128$(objext) \
1037 s-vafi128$(objext) \
1038 s-valllli$(objext) \
1039 s-vallllu$(objext) \
1042 s-widllli$(objext) \
1045 # Shared library version
1046 LIB_VERSION = $(strip $(shell grep ' Library_Version :' $(GNAT_SRC)/gnatvsn.ads | sed -e 's/.*"\(.*\)".*/\1/'))
1048 # Additional object files from C source to be added to libgnat.
1051 # Additional C source files to be added to libgnat without corresponding
1052 # object file (#included files). This should include at least the GNAT
1053 # specific header files required to rebuild the runtime library from sources.
1056 # Additional object files from Ada sources to be added in libgnat
1057 EXTRA_GNATRTL_NONTASKING_OBJS=
1059 # Additional object files from Ada sources to be added in libgnarl
1060 EXTRA_GNATRTL_TASKING_OBJS=
1062 # Subsets of extra libgnat sources that always go together
1063 VX_SIGTRAMP_EXTRA_SRCS=sigtramp.h sigtramp-vxworks-target.h
1065 # Additional object files that should go in the same directory as libgnat,
1066 # aside the library itself. Typically useful for crtbegin/crtend kind of files.
1069 # GCC spec files to be installed in $(libsubdir), so --specs=<spec-filename>
1070 # finds them at runtime.
1073 # $(filter-out PATTERN...,TEXT) removes all PATTERN words from TEXT.
1074 # $(strip STRING) removes leading and trailing spaces from STRING.
1075 # If what's left is null then it's a match.
1077 # PowerPC VxWorks6 and VxWorks7
1078 ifeq ($(strip $(filter-out powerpc% wrs vxworks vxworks7%, $(target_cpu) $(target_vendor) $(target_os))),)
1080 ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),)
1086 VX=$(strip $(if $(filter vxworks7%, $(target_os)), vxworks7, vxworks))
1089 LIBGNAT_TARGET_PAIRS = \
1090 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1091 a-naliop.ads<libgnat/a-naliop__nolibm.ads \
1092 a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \
1093 a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \
1094 s-dorepr.adb<libgnat/s-dorepr__fma.adb \
1095 s-inmaop.adb<libgnarl/s-inmaop__hwint.adb \
1096 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1097 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1098 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1099 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1100 s-osprim.adb<libgnat/s-osprim__posix.adb \
1101 s-parame.ads<libgnat/s-parame__vxworks.ads \
1102 s-parame.adb<libgnat/s-parame__vxworks.adb \
1103 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1104 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1105 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1106 s-vxwork.ads<libgnarl/s-vxwork__ppc.ads \
1107 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1108 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1109 g-sopowa.adb<libgnat/g-sopowa__posix.adb \
1110 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
1111 $(ATOMICS_TARGET_PAIRS) \
1112 $(ATOMICS_BUILTINS_TARGET_PAIRS)
1114 ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),)
1115 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1116 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1119 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1123 # The rtp and kernel sections must be retained for the sake of ppc-vx6
1124 ifeq ($(strip $(filter-out rtp,$(THREAD_KIND))),)
1125 LIBGNAT_TARGET_PAIRS += \
1126 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1127 s-vxwext.adb<libgnarl/s-vxwext__rtp.adb \
1128 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-rtp.adb \
1129 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp.ads
1132 ifeq ($(strip $(filter-out rtp-smp,$(THREAD_KIND))),)
1133 LIBGNAT_TARGET_PAIRS += \
1134 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1135 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1136 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \
1137 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1138 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp-smp.ads
1140 EXTRA_LIBGNAT_OBJS+=affinity.o
1142 ifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),)
1143 LIBGNAT_TARGET_PAIRS += \
1144 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1145 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1146 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1147 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1148 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \
1149 system.ads<libgnat/$(SVX)-$(ARCH_STR)-kernel.ads
1151 EXTRA_LIBGNAT_OBJS+=affinity.o
1153 ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
1154 LIBGNAT_TARGET_PAIRS += \
1155 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1156 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb \
1157 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1158 s-vxwext.adb<libgnarl/s-vxwext__kernel.adb \
1159 system.ads<libgnat/$(SVX)-$(ARCH_STR)-kernel.ads
1161 RTSERR = $(error NO SUCH RUNTIME)
1164 EXTRA_GNATRTL_NONTASKING_OBJS+=i-vxinco.o i-vxwork.o i-vxwoio.o
1168 EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o
1169 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1171 EXTRA_GNATRTL_TASKING_OBJS += s-vxwork.o s-vxwext.o
1173 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1175 ifeq ($(strip $(filter-out vxworks7%, $(target_os))),)
1176 ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),)
1177 GCC_SPEC_FILES+=vxworks7-ppc64-rtp-base-link.spec
1179 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec
1182 GCC_SPEC_FILES+=vxworks-$(ARCH_STR)-link.spec
1183 GCC_SPEC_FILES+=vxworks-smp-$(ARCH_STR)-link.spec
1187 # x86/x86_64 VxWorks7
1188 ifeq ($(strip $(filter-out %86 x86_64 wrs vxworks7%, $(target_cpu) $(target_vendor) $(target_os))),)
1190 LIBGNAT_TARGET_PAIRS= \
1191 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1192 i-vxwork.ads<libgnat/i-vxwork__x86.ads \
1193 a-naliop.ads<libgnat/a-naliop__nolibm.ads \
1194 a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \
1195 a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \
1196 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1197 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1198 s-inmaop.adb<libgnarl/s-inmaop__hwint.adb \
1199 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1200 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1201 s-osprim.adb<libgnat/s-osprim__posix.adb \
1202 s-parame.ads<libgnat/s-parame__vxworks.ads \
1203 s-parame.adb<libgnat/s-parame__vxworks.adb \
1204 s-stchop.ads<libgnat/s-stchop__limit.ads \
1205 s-stchop.adb<libgnat/s-stchop__vxworks.adb \
1206 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1207 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1208 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1209 s-vxwork.ads<libgnarl/s-vxwork__x86.ads \
1210 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1211 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1212 g-sopowa.adb<libgnat/g-sopowa__posix.adb \
1213 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
1214 $(ATOMICS_TARGET_PAIRS)
1216 ifeq ($(strip $(filter-out x86_64, $(target_cpu))),)
1218 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
1219 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1220 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1223 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
1226 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1230 # The CPU setting for VxSim varies with the
1231 # host (Windows or Linux)
1232 # runtime (rtp or kernel)
1233 # -------------------------------------------------------------
1235 # Windows (host_os = mingw32)
1238 # Linux (host_os = linux-gnu)
1241 # -------------------------------------------------------------
1242 # It is overridden by VXSIM_CPU only in files init-vxsim.c and
1243 # sigtramp-vxworks-vxsim.c which contain functions determined at
1244 # runtime to be called if a program is running on VxSim vs real hardware
1245 # (due to differences in signal context for unwinding).
1247 ifeq ($(strip $(filter-out linux%,$(host_os))),)
1249 VXSIM_CPU = SIMLINUX
1255 GNATLIBCFLAGS_FOR_C := $(GNATLIBCFLAGS_FOR_C) -D__VXSIM_CPU__=$(VXSIM_CPU)
1257 ifeq ($(strip $(filter-out rtp-smp, $(THREAD_KIND))),)
1258 LIBGNAT_TARGET_PAIRS += \
1259 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1260 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1261 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \
1262 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1263 system.ads<libgnat/system-vxworks7-$(X86CPU)-rtp-smp.ads
1265 EXTRA_LIBGNAT_OBJS+=affinity.o
1267 ifeq ($(strip $(filter-out kernel-smp, $(THREAD_KIND))),)
1268 LIBGNAT_TARGET_PAIRS += \
1269 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1270 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1271 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1272 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1273 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \
1274 system.ads<libgnat/system-vxworks7-$(X86CPU)-kernel.ads
1276 EXTRA_LIBGNAT_OBJS+=affinity.o
1278 RTSERR = $(error NO SUCH RUNTIME)
1281 EXTRA_GNATRTL_NONTASKING_OBJS += i-vxinco.o i-vxwork.o i-vxwoio.o
1284 EXTRA_GNATRTL_NONTASKING_OBJS += s-stchop.o
1285 EXTRA_GNATRTL_TASKING_OBJS += s-vxwork.o s-vxwext.o
1287 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1289 EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o
1290 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1292 GCC_SPEC_FILES+=vxworks7-$(X86CPU)-rtp-base-link.spec
1295 # ARM and Aarch64 VxWorks7
1296 ifeq ($(strip $(filter-out aarch64 arm wrs vxworks7%, $(target_cpu) $(target_vendor) $(target_os))),)
1298 LIBGNAT_TARGET_PAIRS = \
1299 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1300 a-naliop.ads<libgnat/a-naliop__nolibm.ads \
1301 a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \
1302 a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \
1303 s-inmaop.adb<libgnarl/s-inmaop__hwint.adb \
1304 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1305 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1306 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1307 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1308 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1309 s-osprim.adb<libgnat/s-osprim__posix.adb \
1310 s-parame.ads<libgnat/s-parame__vxworks.ads \
1311 s-parame.adb<libgnat/s-parame__vxworks.adb \
1312 s-stchop.ads<libgnat/s-stchop__limit.ads \
1313 s-stchop.adb<libgnat/s-stchop__vxworks.adb \
1314 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1315 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1316 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1317 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1318 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1319 g-sopowa.adb<libgnat/g-sopowa__posix.adb \
1320 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
1321 $(ATOMICS_TARGET_PAIRS) \
1322 $(ATOMICS_BUILTINS_TARGET_PAIRS)
1324 ifeq ($(strip $(filter-out aarch64, $(target_cpu))),)
1327 SIGTRAMP_OBJ=sigtramp-vxworks.o
1328 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) \
1329 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1330 s-dorepr.adb<libgnat/s-dorepr__fma.adb
1331 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1335 SIGTRAMP_OBJ=sigtramp-armvxworks.o
1338 LIBGNAT_TARGET_PAIRS += s-vxwork.ads<libgnarl/s-vxwork__$(ARCH_STR).ads
1340 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1342 ifeq ($(strip $(filter-out rtp-smp,$(THREAD_KIND))),)
1343 LIBGNAT_TARGET_PAIRS += \
1344 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1345 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1346 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \
1347 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1348 system.ads<libgnat/system-vxworks7-$(ARCH_STR)-rtp-smp.ads
1350 EXTRA_LIBGNAT_OBJS+=affinity.o
1352 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1353 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1355 ifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),)
1356 LIBGNAT_TARGET_PAIRS += \
1357 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1358 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1359 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1360 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \
1361 system.ads<libgnat/system-vxworks7-$(ARCH_STR).ads
1363 EXTRA_LIBGNAT_OBJS+=affinity.o
1365 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1366 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1368 RTSERR = $(error NO SUCH RUNTIME)
1372 EXTRA_GNATRTL_NONTASKING_OBJS += i-vxwork.o i-vxwoio.o s-stchop.o
1373 EXTRA_GNATRTL_TASKING_OBJS += i-vxinco.o s-vxwork.o s-vxwext.o
1375 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1377 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec
1381 ifeq ($(strip $(filter-out arm% linux-androideabi,$(target_cpu) $(target_os))),)
1382 LIBGNAT_TARGET_PAIRS = \
1383 a-intnam.ads<libgnarl/a-intnam__linux.ads \
1384 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1385 s-intman.adb<libgnarl/s-intman__android.adb \
1386 s-linux.ads<libgnarl/s-linux__android.ads \
1387 s-osinte.adb<libgnarl/s-osinte__android.adb \
1388 s-osinte.ads<libgnarl/s-osinte__android.ads \
1389 s-osprim.adb<libgnat/s-osprim__posix.adb \
1390 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1391 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1392 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1393 $(ATOMICS_TARGET_PAIRS) \
1394 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1395 system.ads<libgnat/system-linux-arm.ads
1397 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1399 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
1400 EXTRA_LIBGNAT_OBJS+=sigtramp-armdroid.o
1401 EXTRA_LIBGNAT_SRCS+=sigtramp.h
1404 GNATLIB_SHARED = gnatlib-shared-dual
1405 LIBRARY_VERSION := $(LIB_VERSION)
1408 # ARM and AARCH64 QNX
1409 ifeq ($(strip $(filter-out arm aarch64 %qnx,$(target_cpu) $(target_os))),)
1410 LIBGNAT_TARGET_PAIRS = \
1411 a-intnam.ads<libgnarl/a-intnam__qnx.ads \
1412 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1413 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1414 s-intman.adb<libgnarl/s-intman__qnx.adb \
1415 s-osinte.adb<libgnarl/s-osinte__qnx.adb \
1416 s-osinte.ads<libgnarl/s-osinte__qnx.ads \
1417 s-osprim.adb<libgnat/s-osprim__posix.adb \
1418 s-qnx.ads<libgnarl/s-qnx.ads \
1419 s-taprop.adb<libgnarl/s-taprop__qnx.adb \
1420 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1421 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1422 g-soliop.ads<libgnat/g-soliop__qnx.ads \
1423 s-parame.adb<libgnat/s-parame__qnx.adb \
1424 $(ATOMICS_TARGET_PAIRS) \
1425 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1426 system.ads<libgnat/system-qnx-arm.ads
1428 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1430 EXTRA_GNATRTL_TASKING_OBJS=s-qnx.o
1431 ifeq ($(strip $(filter-out arm%, $(target_cpu))),)
1433 SIGTRAMP_OBJ=sigtramp-arm-qnx.o
1436 SIGTRAMP_OBJ=sigtramp-qnx.o
1437 # "fma*" instructions not available for ARM fpu=vfpv3
1438 # but not an issue on AARCH64.
1439 LIBGNAT_TARGET_PAIRS += \
1440 s-dorepr.adb<libgnat/s-dorepr__fma.adb
1441 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1442 EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
1444 GNATLIB_SHARED = gnatlib-shared-dual
1445 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1446 EXTRA_LIBGNAT_SRCS+=sigtramp.h
1448 SO_OPTS= -shared-libgcc -Wl,-soname,
1451 LIBRARY_VERSION := $(LIB_VERSION)
1455 ifeq ($(strip $(filter-out sparc% sun solaris%,$(target_cpu) $(target_vendor) $(target_os))),)
1456 LIBGNAT_TARGET_PAIRS = \
1457 a-intnam.ads<libgnarl/a-intnam__solaris.ads \
1458 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1459 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1460 s-intman.adb<libgnarl/s-intman__solaris.adb \
1461 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1462 s-osinte.adb<libgnarl/s-osinte__solaris.adb \
1463 s-osinte.ads<libgnarl/s-osinte__solaris.ads \
1464 s-osprim.adb<libgnat/s-osprim__solaris.adb \
1465 s-taprop.adb<libgnarl/s-taprop__solaris.adb \
1466 s-tasinf.adb<libgnarl/s-tasinf__solaris.adb \
1467 s-tasinf.ads<libgnarl/s-tasinf__solaris.ads \
1468 s-taspri.ads<libgnarl/s-taspri__solaris.ads \
1469 s-tpopsp.adb<libgnarl/s-tpopsp__solaris.adb \
1470 g-soliop.ads<libgnat/g-soliop__solaris.ads \
1471 $(TRASYM_DWARF_UNIX_PAIRS) \
1472 $(ATOMICS_TARGET_PAIRS) \
1473 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1474 system.ads<libgnat/system-solaris-sparc.ads
1476 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1478 ifeq ($(strip $(filter-out sparc64 sparcv9,$(target_cpu))),)
1479 ifneq ($(strip $(MULTISUBDIR)),/sparcv8plus)
1480 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1481 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1484 ifeq ($(strip $(MULTISUBDIR)),/sparcv9)
1485 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1486 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1491 MISCLIB = -lnsl -lsocket
1493 GNATLIB_SHARED = gnatlib-shared-dual
1495 LIBRARY_VERSION := $(LIB_VERSION)
1498 # x86 and x86-64 Solaris
1499 ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(target_cpu) $(target_os))),)
1500 LIBGNAT_TARGET_PAIRS_COMMON = \
1501 a-intnam.ads<libgnarl/a-intnam__solaris.ads \
1502 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1503 s-intman.adb<libgnarl/s-intman__solaris.adb \
1504 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1505 s-osinte.adb<libgnarl/s-osinte__solaris.adb \
1506 s-osinte.ads<libgnarl/s-osinte__solaris.ads \
1507 s-osprim.adb<libgnat/s-osprim__solaris.adb \
1508 s-taprop.adb<libgnarl/s-taprop__solaris.adb \
1509 s-tasinf.adb<libgnarl/s-tasinf__solaris.adb \
1510 s-tasinf.ads<libgnarl/s-tasinf__solaris.ads \
1511 s-taspri.ads<libgnarl/s-taspri__solaris.ads \
1512 s-tpopsp.adb<libgnarl/s-tpopsp__solaris.adb \
1513 g-soliop.ads<libgnat/g-soliop__solaris.ads \
1514 $(TRASYM_DWARF_UNIX_PAIRS) \
1515 $(ATOMICS_TARGET_PAIRS) \
1516 system.ads<libgnat/system-solaris-x86.ads
1518 ifeq ($(strip $(filter-out %86 solaris2%,$(target_cpu) $(target_os))),)
1519 ifeq ($(strip $(MULTISUBDIR)),/amd64)
1520 LIBGNAT_TARGET_PAIRS = \
1521 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_64_TARGET_PAIRS)
1522 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1523 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1525 LIBGNAT_TARGET_PAIRS = \
1526 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_TARGET_PAIRS)
1529 ifeq ($(strip $(MULTISUBDIR)),/32)
1530 LIBGNAT_TARGET_PAIRS = \
1531 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_TARGET_PAIRS)
1533 LIBGNAT_TARGET_PAIRS = \
1534 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_64_TARGET_PAIRS)
1535 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1536 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1540 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1541 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1544 MISCLIB = -lnsl -lsocket
1546 GNATLIB_SHARED = gnatlib-shared-dual
1548 LIBRARY_VERSION := $(LIB_VERSION)
1552 ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),)
1553 LIBGNAT_TARGET_PAIRS = \
1554 a-intnam.ads<libgnarl/a-intnam__linux.ads \
1555 a-synbar.adb<libgnarl/a-synbar__posix.adb \
1556 a-synbar.ads<libgnarl/a-synbar__posix.ads \
1557 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1558 s-intman.adb<libgnarl/s-intman__posix.adb \
1559 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
1560 $(TRASYM_DWARF_UNIX_PAIRS) \
1561 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
1562 a-exetim.adb<libgnarl/a-exetim__posix.adb \
1563 a-exetim.ads<libgnarl/a-exetim__default.ads \
1564 s-linux.ads<libgnarl/s-linux.ads \
1565 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1566 $(ATOMICS_TARGET_PAIRS) \
1567 system.ads<libgnat/system-linux-x86.ads
1569 ifeq ($(strip $(MULTISUBDIR)),/64)
1570 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
1571 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1572 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1574 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
1577 LIBGNAT_TARGET_PAIRS += \
1578 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1579 s-osinte.ads<libgnarl/s-osinte__linux.ads \
1580 s-osprim.adb<libgnat/s-osprim__posix.adb \
1581 s-taprop.adb<libgnarl/s-taprop__linux.adb \
1582 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
1583 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
1584 s-taspri.ads<libgnarl/s-taspri__posix.ads
1587 THREADSLIB = -lpthread -lrt
1588 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1589 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1590 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
1592 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1594 GNATLIB_SHARED = gnatlib-shared-dual
1597 LIBRARY_VERSION := $(LIB_VERSION)
1599 GNATLIBCFLAGS_FOR_GCCSJLJ+=-fno-omit-frame-pointer -momit-leaf-frame-pointer
1603 ifeq ($(strip $(filter-out %86 kfreebsd%,$(target_cpu) $(target_os))),)
1604 LIBGNAT_TARGET_PAIRS = \
1605 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1606 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1607 s-intman.adb<libgnarl/s-intman__posix.adb \
1608 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1609 s-osinte.ads<libgnarl/s-osinte__kfreebsd-gnu.ads \
1610 s-osprim.adb<libgnat/s-osprim__posix.adb \
1611 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1612 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1613 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1614 $(TRASYM_DWARF_UNIX_PAIRS) \
1615 $(ATOMICS_TARGET_PAIRS) \
1616 $(X86_TARGET_PAIRS) \
1617 system.ads<libgnat/system-freebsd.ads
1619 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1621 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1622 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1625 THREADSLIB = -lpthread
1626 GNATLIB_SHARED = gnatlib-shared-dual
1628 LIBRARY_VERSION := $(LIB_VERSION)
1632 # i[3456]86-pc-gnu i.e. GNU Hurd
1633 ifeq ($(strip $(filter-out %86 pc gnu,$(target_cpu) $(target_vendor) $(target_os))),)
1634 LIBGNAT_TARGET_PAIRS = \
1635 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1636 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1637 s-intman.adb<libgnarl/s-intman__posix.adb \
1638 s-osinte.adb<libgnarl/s-osinte__gnu.adb \
1639 s-osinte.ads<libgnarl/s-osinte__gnu.ads \
1640 s-osprim.adb<libgnat/s-osprim__posix.adb \
1641 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1642 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1643 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1644 $(ATOMICS_TARGET_PAIRS) \
1645 $(X86_TARGET_PAIRS) \
1646 system.ads<libgnat/system-freebsd.ads
1648 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1650 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
1653 THREADSLIB = -lpthread
1654 GNATLIB_SHARED = gnatlib-shared-dual
1656 LIBRARY_VERSION := $(LIB_VERSION)
1659 ifeq ($(strip $(filter-out x86_64 kfreebsd%,$(target_cpu) $(target_os))),)
1660 LIBGNAT_TARGET_PAIRS = \
1661 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1662 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1663 s-intman.adb<libgnarl/s-intman__posix.adb \
1664 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1665 s-osinte.ads<libgnarl/s-osinte__kfreebsd-gnu.ads \
1666 s-osprim.adb<libgnat/s-osprim__posix.adb \
1667 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1668 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1669 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1670 $(ATOMICS_TARGET_PAIRS) \
1671 $(X86_64_TARGET_PAIRS) \
1672 $(GNATRTL_128BIT_PAIRS) \
1673 system.ads<libgnat/system-freebsd.ads
1675 EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
1677 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1680 THREADSLIB = -lpthread
1681 GNATLIB_SHARED = gnatlib-shared-dual
1683 LIBRARY_VERSION := $(LIB_VERSION)
1687 ifeq ($(strip $(filter-out %aarch64 freebsd%,$(target_cpu) $(target_os))),)
1688 LIBGNAT_TARGET_PAIRS = \
1689 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1690 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1691 s-dorepr.adb<libgnat/s-dorepr__fma.adb \
1692 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1693 s-intman.adb<libgnarl/s-intman__posix.adb \
1694 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1695 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1696 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1697 s-osprim.adb<libgnat/s-osprim__posix.adb \
1698 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1699 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1700 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1701 $(ATOMICS_TARGET_PAIRS) \
1702 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1703 $(GNATRTL_128BIT_PAIRS) \
1704 system.ads<libgnat/system-freebsd.ads
1706 EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
1708 GNATLIB_SHARED = gnatlib-shared-dual
1711 THREADSLIB= -lpthread
1713 LIBRARY_VERSION := $(LIB_VERSION)
1718 ifeq ($(strip $(filter-out %86 freebsd%,$(target_cpu) $(target_os))),)
1719 LIBGNAT_TARGET_PAIRS = \
1720 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1721 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1722 s-intman.adb<libgnarl/s-intman__posix.adb \
1723 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1724 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1725 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1726 s-osprim.adb<libgnat/s-osprim__posix.adb \
1727 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1728 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1729 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1730 $(TRASYM_DWARF_UNIX_PAIRS) \
1731 $(ATOMICS_TARGET_PAIRS) \
1732 $(X86_TARGET_PAIRS) \
1733 system.ads<libgnat/system-freebsd.ads
1735 GNATLIB_SHARED = gnatlib-shared-dual
1737 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1738 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1741 THREADSLIB= -lpthread
1743 LIBRARY_VERSION := $(LIB_VERSION)
1748 ifeq ($(strip $(filter-out %86_64 freebsd%,$(target_cpu) $(target_os))),)
1749 LIBGNAT_TARGET_PAIRS = \
1750 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1751 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1752 s-intman.adb<libgnarl/s-intman__posix.adb \
1753 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1754 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1755 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1756 s-osprim.adb<libgnat/s-osprim__posix.adb \
1757 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1758 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1759 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1760 $(TRASYM_DWARF_UNIX_PAIRS) \
1761 $(ATOMICS_TARGET_PAIRS) \
1762 $(X86_64_TARGET_PAIRS) \
1763 $(GNATRTL_128BIT_PAIRS) \
1764 system.ads<libgnat/system-freebsd.ads
1766 GNATLIB_SHARED = gnatlib-shared-dual
1768 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1769 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1770 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1773 THREADSLIB= -lpthread
1775 LIBRARY_VERSION := $(LIB_VERSION)
1780 ifeq ($(strip $(filter-out %86_64 dragonfly%,$(target_cpu) $(target_os))),)
1781 LIBGNAT_TARGET_PAIRS = \
1782 a-intnam.ads<libgnarl/a-intnam__dragonfly.ads \
1783 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1784 s-intman.adb<libgnarl/s-intman__posix.adb \
1785 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1786 s-osinte.adb<libgnarl/s-osinte__dragonfly.adb \
1787 s-osinte.ads<libgnarl/s-osinte__dragonfly.ads \
1788 s-osprim.adb<libgnat/s-osprim__posix.adb \
1789 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1790 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1791 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1792 $(ATOMICS_TARGET_PAIRS) \
1793 $(X86_64_TARGET_PAIRS) \
1794 $(GNATRTL_128BIT_PAIRS) \
1795 system.ads<libgnat/system-dragonfly-x86_64.ads
1797 GNATLIB_SHARED = gnatlib-shared-dual
1799 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1800 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1803 THREADSLIB= -lpthread
1805 LIBRARY_VERSION := $(LIB_VERSION)
1810 ifeq ($(strip $(filter-out s390% linux%,$(target_cpu) $(target_os))),)
1811 LIBGNAT_TARGET_PAIRS = \
1812 a-intnam.ads<libgnarl/a-intnam__linux.ads \
1813 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1814 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1815 s-intman.adb<libgnarl/s-intman__posix.adb \
1816 s-linux.ads<libgnarl/s-linux.ads \
1817 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1818 s-osinte.ads<libgnarl/s-osinte__linux.ads \
1819 s-osprim.adb<libgnat/s-osprim__posix.adb \
1820 s-taprop.adb<libgnarl/s-taprop__linux.adb \
1821 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
1822 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
1823 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
1824 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1825 system.ads<libgnat/system-linux-s390.ads
1827 ifeq ($(strip $(filter-out s390x,$(target_cpu))),)
1828 ifneq ($(strip $(MULTISUBDIR)),/32)
1829 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1830 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1833 ifeq ($(strip $(MULTISUBDIR)),/64)
1834 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1835 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1839 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1841 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
1843 THREADSLIB = -lpthread
1844 GNATLIB_SHARED = gnatlib-shared-dual
1845 LIBRARY_VERSION := $(LIB_VERSION)
1849 ifeq ($(strip $(filter-out hppa% hp hpux10%,$(target_cpu) $(target_vendor) $(target_os))),)
1850 LIBGNAT_TARGET_PAIRS = \
1851 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
1852 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1853 s-interr.adb<libgnarl/s-interr__sigaction.adb \
1854 s-intman.adb<libgnarl/s-intman__posix.adb \
1855 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1856 s-osinte.adb<libgnarl/s-osinte__hpux-dce.adb \
1857 s-osinte.ads<libgnarl/s-osinte__hpux-dce.ads \
1858 s-parame.ads<libgnat/s-parame__hpux.ads \
1859 s-osprim.adb<libgnat/s-osprim__posix.adb \
1860 s-taprop.adb<libgnarl/s-taprop__hpux-dce.adb \
1861 s-taspri.ads<libgnarl/s-taspri__hpux-dce.ads \
1862 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1863 system.ads<libgnat/system-hpux.ads
1869 ifeq ($(strip $(filter-out hppa% hp hpux11%,$(target_cpu) $(target_vendor) $(target_os))),)
1870 LIBGNAT_TARGET_PAIRS = \
1871 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
1872 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1873 s-intman.adb<libgnarl/s-intman__posix.adb \
1874 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1875 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1876 s-osinte.ads<libgnarl/s-osinte__hpux.ads \
1877 s-parame.ads<libgnat/s-parame__hpux.ads \
1878 s-osprim.adb<libgnat/s-osprim__posix.adb \
1879 s-traceb.adb<libgnat/s-traceb__hpux.adb \
1880 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1881 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1882 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1883 system.ads<libgnat/system-hpux.ads
1886 TGT_LIB = /usr/lib/libcl.a
1887 THREADSLIB = -lpthread
1891 GNATLIB_SHARED = gnatlib-shared-dual
1892 LIBRARY_VERSION := $(LIB_VERSION)
1896 ifeq ($(strip $(filter-out ibm aix%,$(target_vendor) $(target_os))),)
1897 LIBGNAT_TARGET_PAIRS = \
1898 a-intnam.ads<libgnarl/a-intnam__aix.ads \
1899 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1900 s-intman.adb<libgnarl/s-intman__posix.adb \
1901 s-osinte.adb<libgnarl/s-osinte__aix.adb \
1902 s-osinte.ads<libgnarl/s-osinte__aix.ads \
1903 s-osprim.adb<libgnat/s-osprim__posix.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.adb \
1907 $(TRASYM_DWARF_UNIX_PAIRS) \
1908 $(ATOMICS_TARGET_PAIRS) \
1909 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1910 system.ads<libgnat/system-aix.ads
1912 ifneq ($(target_os),)
1913 ifeq ($(findstring ppc64, \
1914 $(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) \
1915 -print-multi-os-directory)), \
1917 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-aix.adb
1919 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1923 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1925 THREADSLIB = -lpthreads
1931 # LynxOS 178 and LynxOS 178 Elf
1932 ifeq ($(strip $(filter-out lynxos178%,$(target_os))),)
1933 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1935 LIBGNAT_TARGET_PAIRS = \
1936 a-intnam.ads<libgnarl/a-intnam__lynxos.ads \
1937 a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \
1938 a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \
1939 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1940 g-soliop.ads<libgnat/g-soliop__lynxos.ads \
1941 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1942 s-intman.adb<libgnarl/s-intman__lynxos.adb \
1943 s-osinte.adb<libgnarl/s-osinte__lynxos178.adb \
1944 s-osprim.ads<libgnat/s-osprim__lynxos.ads \
1945 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1946 s-taspri.ads<libgnarl/s-taspri__lynxos.ads \
1947 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb
1949 ifeq ($(strip $(filter-out powerpc%, $(target_cpu))),)
1950 LIBGNAT_TARGET_PAIRS += system.ads<libgnat/system-lynxos178-ppc.ads
1952 ifeq ($(strip $(filter-out %86, $(target_cpu))),)
1953 LIBGNAT_TARGET_PAIRS += system.ads<libgnat/system-lynxos178-x86.ads
1956 ifeq ($(strip $(filter-out lynxos178e,$(target_os))),)
1957 LIBGNAT_TARGET_PAIRS += \
1958 s-parame.ads<libgnat/s-parame__posix2008.ads \
1959 s-osinte.ads<libgnarl/s-osinte__lynxos178e.ads \
1960 s-osprim.adb<libgnat/s-osprim__posix2008.adb \
1961 s-tracon.adb<hie/s-tracon__ppc-eabi.adb
1968 ifeq ($(strip $(filter-out rtems%,$(target_os))),)
1969 LIBGNAT_TARGET_PAIRS = \
1970 system.ads<libgnat/system-rtems.ads \
1971 a-intnam.ads<libgnarl/a-intnam__rtems.ads \
1972 s-inmaop.adb<libgnarl/s-inmaop__hwint.adb \
1973 s-intman.adb<libgnarl/s-intman__rtems.adb \
1974 s-intman.ads<libgnarl/s-intman__rtems.ads \
1975 s-osinte.adb<libgnarl/s-osinte__rtems.adb \
1976 s-osinte.ads<libgnarl/s-osinte__rtems.ads \
1977 s-osprim.adb<libgnat/s-osprim__rtems.adb \
1978 s-parame.adb<libgnat/s-parame__rtems.adb \
1979 s-parame.ads<libgnat/s-parame__posix2008.ads \
1980 s-taprop.adb<libgnarl/s-taprop__rtems.adb \
1981 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1982 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
1983 s-interr.adb<libgnarl/s-interr__hwint.adb
1985 EXTRA_GNATRTL_NONTASKING_OBJS += s-stchop.o
1987 ifeq ($(strip $(filter-out arm%, $(target_cpu))),)
1993 ifeq ($(strip $(filter-out aarch64%,$(target_cpu))),)
1994 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1995 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1998 ifeq ($(strip $(filter-out aarch64% riscv%,$(target_cpu))),)
1999 LIBGNAT_TARGET_PAIRS += a-nallfl.ads<libgnat/a-nallfl__wraplf.ads
2002 # Target CPUs that support atomic primitives
2003 ifeq ($(strip $(filter-out aarch64%,$(target_cpu))),)
2004 LIBGNAT_TARGET_PAIRS += \
2005 $(ATOMICS_TARGET_PAIRS) \
2006 $(ATOMICS_BUILTINS_TARGET_PAIRS)
2011 ifeq ($(strip $(filter-out powerpc% %86 sysgo pikeos,$(target_cpu) $(target_vendor) $(target_os)))),)
2012 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
2015 # *-elf, *-eabi, or *-eabispe
2016 ifeq ($(strip $(filter-out elf eabi eabispe,$(target_os))),)
2017 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
2020 ifeq ($(strip $(filter-out %djgpp,$(target_os))),)
2021 GNATRTL_SOCKETS_OBJS =
2023 LIBGNAT_TARGET_PAIRS = \
2024 a-intnam.ads<libgnarl/a-intnam__dummy.ads \
2025 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
2026 s-intman.adb<libgnarl/s-intman__dummy.adb \
2027 s-osinte.ads<libgnarl/s-osinte__dummy.ads \
2028 s-osprim.adb<libgnat/s-osprim__unix.adb \
2029 s-taprop.adb<libgnarl/s-taprop__dummy.adb \
2030 s-taspri.ads<libgnarl/s-taspri__dummy.ads \
2031 system.ads<libgnat/system-djgpp.ads \
2032 $(DUMMY_SOCKETS_TARGET_PAIRS)
2038 ifeq ($(strip $(filter-out cygwin% mingw32% pe,$(target_os))),)
2039 # Cygwin provides a full Posix environment, and so we use the default
2040 # versions g-socthi rather than the Windows-specific MinGW version.
2041 # Ideally we would use all the default versions for Cygwin and none
2042 # of the MinGW versions, but for historical reasons the Cygwin port
2043 # has always been a CygMing frankenhybrid and it is a long-term project
2044 # to disentangle them.
2045 ifeq ($(strip $(filter-out cygwin%,$(target_os))),)
2046 LIBGNAT_TARGET_PAIRS = \
2047 g-socthi.ads<libgnat/g-socthi.ads \
2048 g-socthi.adb<libgnat/g-socthi.adb
2050 LIBGNAT_TARGET_PAIRS = \
2051 g-socthi.ads<libgnat/g-socthi__mingw.ads \
2052 g-socthi.adb<libgnat/g-socthi__mingw.adb \
2053 g-sopowa.adb<libgnat/g-sopowa__mingw.adb
2055 LIBGNAT_TARGET_PAIRS += \
2056 a-dirval.adb<libgnat/a-dirval__mingw.adb \
2057 s-gloloc.adb<libgnat/s-gloloc__mingw.adb \
2058 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
2059 s-taspri.ads<libgnarl/s-taspri__mingw.ads \
2060 s-tasinf.adb<libgnarl/s-tasinf__mingw.adb \
2061 s-tasinf.ads<libgnarl/s-tasinf__mingw.ads \
2062 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
2063 g-soliop.ads<libgnat/g-soliop__mingw.ads \
2064 $(ATOMICS_TARGET_PAIRS) \
2065 system.ads<libgnat/system-mingw.ads
2067 LIBGNAT_TARGET_PAIRS += \
2068 a-exetim.adb<libgnarl/a-exetim__mingw.adb \
2069 a-exetim.ads<libgnarl/a-exetim__mingw.ads \
2070 a-intnam.ads<libgnarl/a-intnam__mingw.ads \
2071 g-sercom.adb<libgnat/g-sercom__mingw.adb \
2072 $(TRASYM_DWARF_MINGW_PAIRS) \
2073 s-tsmona.adb<libgnat/s-tsmona__mingw.adb \
2074 s-interr.adb<libgnarl/s-interr__sigaction.adb \
2075 s-intman.adb<libgnarl/s-intman__mingw.adb \
2076 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2077 s-osinte.ads<libgnarl/s-osinte__mingw.ads \
2078 s-osprim.adb<libgnat/s-osprim__mingw.adb \
2079 s-taprop.adb<libgnarl/s-taprop__mingw.adb
2081 ifeq ($(strip $(filter-out x86_64%,$(target_cpu))),)
2082 ifeq ($(strip $(MULTISUBDIR)),/32)
2083 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2084 SO_OPTS= -m32 -Wl,-soname,
2086 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS) $(GNATRTL_128BIT_PAIRS)
2087 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2088 SO_OPTS = -m64 -Wl,-soname,
2091 ifeq ($(strip $(MULTISUBDIR)),/64)
2092 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS) $(GNATRTL_128BIT_PAIRS)
2093 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2094 SO_OPTS = -m64 -Wl,-soname,
2096 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2097 SO_OPTS = -m32 -Wl,-soname,
2101 EXTRA_GNATRTL_NONTASKING_OBJS += \
2102 s-win32.o s-winext.o g-regist.o g-sse.o g-ssvety.o
2103 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_MINGW_OBJS)
2104 EXTRA_GNATRTL_TASKING_OBJS = a-exetim.o
2105 EXTRA_LIBGNAT_SRCS+=mingw32.h
2108 # ??? This will be replaced by gnatlib-shared-dual-win32 when GNAT
2109 # auto-import support for array/record will be done.
2110 GNATLIB_SHARED = gnatlib-shared-win32
2114 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
2117 EXTRA_GNATTOOLS = ../../gnatdll$(exeext)
2118 EXTRA_GNATMAKE_OBJS = mdll.o mdll-utl.o mdll-fil.o
2120 LIBRARY_VERSION := $(LIB_VERSION)
2124 ifeq ($(strip $(filter-out loongarch% linux%,$(target_cpu) $(target_os))),)
2125 LIBGNAT_TARGET_PAIRS = \
2126 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2127 a-exetim.ads<libgnarl/a-exetim__default.ads \
2128 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2129 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2130 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2131 a-synbar.ads<libgnarl/a-synbar__posix.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__loongarch.ads \
2135 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2136 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2137 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2138 s-osprim.adb<libgnat/s-osprim__posix.adb \
2139 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2140 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2141 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2142 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2143 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2144 g-sercom.adb<libgnat/g-sercom__linux.adb \
2145 $(TRASYM_DWARF_UNIX_PAIRS) \
2146 $(GNATRTL_128BIT_PAIRS) \
2147 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2148 $(ATOMICS_TARGET_PAIRS) \
2149 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2150 system.ads<libgnat/system-linux-loongarch.ads
2152 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2154 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2155 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2156 EXTRA_GNATRTL_TASKING_OBJS = s-linux.o a-exetim.o
2159 THREADSLIB = -lpthread
2161 GNATLIB_SHARED = gnatlib-shared-dual
2163 LIBRARY_VERSION := $(LIB_VERSION)
2164 # Temporarily disable strict alignment -- for some reason, it causes
2165 # infinite loops during stack unwinding (libgcc) and indefinite hang
2166 # in some futex system calls.
2167 GNATLIBCFLAGS += -mno-strict-align
2168 GNATLIBCFLAGS_FOR_C += -mno-strict-align
2173 ifeq ($(strip $(filter-out mips% linux%,$(target_cpu) $(target_os))),)
2174 LIBGNAT_TARGET_PAIRS = \
2175 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2176 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
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__mips.ads \
2180 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2181 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2182 s-osprim.adb<libgnat/s-osprim__posix.adb \
2183 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2184 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2185 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2186 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2187 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2188 system.ads<libgnat/system-linux-mips.ads
2190 ifeq ($(strip $(filter-out mips64% mipsisa64%,$(target_cpu))),)
2191 ifneq ($(strip $(MULTISUBDIR)),/32)
2192 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2193 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2196 ifneq ($(strip $(filter /64 /n32,$(MULTISUBDIR))),)
2197 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2198 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2202 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2204 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2206 THREADSLIB = -lpthread
2207 GNATLIB_SHARED = gnatlib-shared-dual
2209 LIBRARY_VERSION := $(LIB_VERSION)
2212 # PowerPC and e500v2 Linux
2213 ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
2214 LIBGNAT_TARGET_PAIRS = \
2215 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2216 a-exetim.ads<libgnarl/a-exetim__default.ads \
2217 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2218 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2219 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2220 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2221 s-dorepr.adb<libgnat/s-dorepr__fma.adb \
2222 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2223 s-intman.adb<libgnarl/s-intman__posix.adb \
2224 s-linux.ads<libgnarl/s-linux.ads \
2225 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2226 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2227 s-mudido.adb<libgnarl/s-mudido__affinity.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.ads \
2234 $(TRASYM_DWARF_UNIX_PAIRS) \
2235 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2236 $(ATOMICS_TARGET_PAIRS) \
2237 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2238 system.ads<libgnat/system-linux-ppc.ads
2240 ifeq ($(strip $(filter-out powerpc64%,$(target_cpu))),)
2241 ifneq ($(strip $(MULTISUBDIR)),/32)
2242 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2243 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2246 LIBGNAT_TARGET_PAIRS += s-atopri.ads<libgnat/s-atopri__32.ads
2247 ifeq ($(strip $(MULTISUBDIR)),/64)
2248 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2249 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2253 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2255 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2256 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2259 THREADSLIB = -lpthread -lrt
2260 GNATLIB_SHARED = gnatlib-shared-dual
2263 LIBRARY_VERSION := $(LIB_VERSION)
2266 # ARM linux, GNU eabi
2267 ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),)
2268 LIBGNAT_TARGET_PAIRS = \
2269 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2270 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2271 s-intman.adb<libgnarl/s-intman__posix.adb \
2272 s-linux.ads<libgnarl/s-linux.ads \
2273 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2274 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2275 s-osprim.adb<libgnat/s-osprim__posix.adb \
2276 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2277 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2278 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2279 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2280 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2281 $(TRASYM_DWARF_UNIX_PAIRS) \
2282 $(ATOMICS_TARGET_PAIRS) \
2283 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2284 system.ads<libgnat/system-linux-arm.ads
2286 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2288 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2289 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2291 THREADSLIB = -lpthread
2292 GNATLIB_SHARED = gnatlib-shared-dual
2294 LIBRARY_VERSION := $(LIB_VERSION)
2298 ifeq ($(strip $(filter-out aarch64% linux%,$(target_cpu) $(target_os))),)
2299 LIBGNAT_TARGET_PAIRS = \
2300 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2301 a-exetim.ads<libgnarl/a-exetim__default.ads \
2302 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2303 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2304 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2305 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2306 s-dorepr.adb<libgnat/s-dorepr__fma.adb \
2307 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2308 s-intman.adb<libgnarl/s-intman__posix.adb \
2309 s-linux.ads<libgnarl/s-linux.ads \
2310 $(TRASYM_DWARF_UNIX_PAIRS) \
2311 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2312 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2313 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2314 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2315 s-osprim.adb<libgnat/s-osprim__posix.adb \
2316 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2317 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2318 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2319 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2320 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2321 $(ATOMICS_TARGET_PAIRS) \
2322 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2323 $(GNATRTL_128BIT_PAIRS) \
2324 system.ads<libgnat/system-linux-arm.ads
2326 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2328 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) \
2329 $(TRASYM_DWARF_UNIX_OBJS)
2330 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2332 THREADSLIB=-lpthread -lrt
2333 GNATLIB_SHARED=gnatlib-shared-dual
2336 LIBRARY_VERSION := $(LIB_VERSION)
2340 ifeq ($(strip $(filter-out sparc% linux%,$(target_cpu) $(target_os))),)
2341 LIBGNAT_TARGET_PAIRS = \
2342 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2343 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2344 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2345 s-intman.adb<libgnarl/s-intman__posix.adb \
2346 s-linux.ads<libgnarl/s-linux__sparc.ads \
2347 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2348 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2349 s-osprim.adb<libgnat/s-osprim__posix.adb \
2350 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2351 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2352 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2353 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2354 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2355 system.ads<libgnat/system-linux-sparc.ads
2357 ifeq ($(strip $(filter-out sparc64 sparcv9,$(target_cpu))),)
2358 ifneq ($(strip $(MULTISUBDIR)),/32)
2359 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2360 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2363 ifeq ($(strip $(MULTISUBDIR)),/64)
2364 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2365 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2369 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2371 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2373 THREADSLIB = -lpthread
2374 GNATLIB_SHARED = gnatlib-shared-dual
2376 LIBRARY_VERSION := $(LIB_VERSION)
2380 ifeq ($(strip $(filter-out hppa% linux%,$(target_cpu) $(target_os))),)
2381 LIBGNAT_TARGET_PAIRS = \
2382 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2383 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2384 s-intman.adb<libgnarl/s-intman__posix.adb \
2385 s-linux.ads<libgnarl/s-linux__hppa.ads \
2386 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2387 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2388 s-osprim.adb<libgnat/s-osprim__posix.adb \
2389 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2390 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2391 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2392 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2393 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2394 system.ads<libgnat/system-linux-hppa.ads
2396 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2398 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2400 THREADSLIB = -lpthread
2401 GNATLIB_SHARED = gnatlib-shared-dual
2403 LIBRARY_VERSION := $(LIB_VERSION)
2407 ifeq ($(strip $(filter-out m68k% linux%,$(target_cpu) $(target_os))),)
2408 LIBGNAT_TARGET_PAIRS = \
2409 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2410 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2411 s-intman.adb<libgnarl/s-intman__posix.adb \
2412 s-linux.ads<libgnarl/s-linux.ads \
2413 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2414 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2415 s-osprim.adb<libgnat/s-osprim__posix.adb \
2416 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2417 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2418 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2419 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2420 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2421 system.ads<libgnat/system-linux-m68k.ads
2423 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2425 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2427 THREADSLIB = -lpthread
2428 GNATLIB_SHARED = gnatlib-shared-dual
2430 LIBRARY_VERSION := $(LIB_VERSION)
2434 ifeq ($(strip $(filter-out sh4% linux%,$(target_cpu) $(target_os))),)
2435 LIBGNAT_TARGET_PAIRS = \
2436 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2437 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2438 s-intman.adb<libgnarl/s-intman__posix.adb \
2439 s-linux.ads<libgnarl/s-linux.ads \
2440 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2441 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2442 s-osprim.adb<libgnat/s-osprim__posix.adb \
2443 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2444 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2445 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2446 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2447 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2448 system.ads<libgnat/system-linux-sh4.ads
2450 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-linux.adb
2452 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2455 THREADSLIB = -lpthread
2456 GNATLIB_SHARED = gnatlib-shared-dual
2458 LIBRARY_VERSION := $(LIB_VERSION)
2462 ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
2463 LIBGNAT_TARGET_PAIRS = \
2464 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2465 a-exetim.ads<libgnarl/a-exetim__default.ads \
2466 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2467 a-nuauco.ads<libgnat/a-nuauco__x86.ads \
2468 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2469 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2470 s-dorepr.adb<libgnat/s-dorepr__fma.adb \
2471 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2472 s-intman.adb<libgnarl/s-intman__posix.adb \
2473 s-linux.ads<libgnarl/s-linux.ads \
2474 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2475 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2476 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2477 s-osprim.adb<libgnat/s-osprim__posix.adb \
2478 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2479 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2480 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2481 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2482 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2483 $(TRASYM_DWARF_UNIX_PAIRS) \
2484 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2485 $(ATOMICS_TARGET_PAIRS) \
2486 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2487 $(GNATRTL_128BIT_PAIRS) \
2488 system.ads<libgnat/system-linux-ia64.ads
2490 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2492 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2493 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2494 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2496 THREADSLIB=-lpthread -lrt
2497 GNATLIB_SHARED=gnatlib-shared-dual
2500 LIBRARY_VERSION := $(LIB_VERSION)
2504 ifeq ($(strip $(filter-out ia64% hp hpux%,$(target_cpu) $(target_vendor) $(target_os))),)
2505 LIBGNAT_TARGET_PAIRS = \
2506 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
2507 s-dorepr.adb<libgnat/s-dorepr__fma.adb \
2508 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2509 s-intman.adb<libgnarl/s-intman__posix.adb \
2510 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2511 s-osinte.ads<libgnarl/s-osinte__hpux.ads \
2512 s-osprim.adb<libgnat/s-osprim__posix.adb \
2513 s-taprop.adb<libgnarl/s-taprop__posix.adb \
2514 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2515 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2516 $(TRASYM_DWARF_UNIX_PAIRS) \
2517 $(ATOMICS_TARGET_PAIRS) \
2518 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2519 $(GNATRTL_128BIT_PAIRS) \
2520 system.ads<libgnat/system-hpux-ia64.ads
2522 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2523 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2527 THREADSLIB=-lpthread
2528 GNATLIB_SHARED=gnatlib-shared-dual
2532 LIBRARY_VERSION := $(LIB_VERSION)
2536 ifeq ($(strip $(filter-out alpha% linux%,$(target_cpu) $(target_os))),)
2537 LIBGNAT_TARGET_PAIRS = \
2538 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2539 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2540 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2541 s-intman.adb<libgnarl/s-intman__posix.adb \
2542 s-linux.ads<libgnarl/s-linux__alpha.ads \
2543 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2544 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2545 s-osprim.adb<libgnat/s-osprim__posix.adb \
2546 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2547 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2548 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2549 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2550 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2551 $(ATOMICS_TARGET_PAIRS) \
2552 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2553 $(GNATRTL_128BIT_PAIRS) \
2554 system.ads<libgnat/system-linux-alpha.ads
2556 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2558 EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
2559 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2562 THREADSLIB=-lpthread
2563 GNATLIB_SHARED=gnatlib-shared-dual
2564 LIBRARY_VERSION := $(LIB_VERSION)
2568 ifeq ($(strip $(filter-out %x86_64 linux%,$(target_cpu) $(target_os))),)
2569 LIBGNAT_TARGET_PAIRS = \
2570 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2571 a-exetim.ads<libgnarl/a-exetim__default.ads \
2572 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2573 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2574 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2575 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2576 s-intman.adb<libgnarl/s-intman__posix.adb \
2577 s-linux.ads<libgnarl/s-linux.ads \
2578 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2579 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2580 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2581 s-osprim.adb<libgnat/s-osprim__posix.adb \
2582 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2583 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2584 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2585 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2586 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2587 $(TRASYM_DWARF_UNIX_PAIRS) \
2588 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2589 $(ATOMICS_TARGET_PAIRS) \
2590 $(X86_64_TARGET_PAIRS) \
2591 $(SIMD_PATH_TARGET_PAIRS) \
2592 $(GNATRTL_128BIT_PAIRS) \
2593 system.ads<libgnat/system-linux-x86.ads
2595 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2597 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
2598 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2599 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2600 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2603 THREADSLIB=-lpthread -lrt
2605 GNATLIB_SHARED=gnatlib-shared-dual
2607 LIBRARY_VERSION := $(LIB_VERSION)
2609 GNATLIBCFLAGS_FOR_GCCSJLJ+=-fno-omit-frame-pointer -momit-leaf-frame-pointer
2612 ifeq ($(strip $(filter-out %x32 linux%,$(target_cpu) $(target_os))),)
2613 LIBGNAT_TARGET_PAIRS = \
2614 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2615 a-exetim.ads<libgnarl/a-exetim__default.ads \
2616 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2617 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2618 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2619 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2620 s-intman.adb<libgnarl/s-intman__posix.adb \
2621 s-linux.ads<libgnarl/s-linux__x32.ads \
2622 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2623 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2624 s-osinte.adb<libgnarl/s-osinte__x32.adb \
2625 s-osprim.adb<libgnat/s-osprim__x32.adb \
2626 s-parame.ads<libgnat/s-parame__posix2008.ads \
2627 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2628 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2629 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2630 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2631 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2632 $(TRASYM_DWARF_UNIX_PAIRS) \
2633 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2634 $(ATOMICS_TARGET_PAIRS) \
2635 $(X86_64_TARGET_PAIRS) \
2636 $(SIMD_PATH_TARGET_PAIRS) \
2637 $(GNATRTL_128BIT_PAIRS) \
2638 system.ads<libgnat/system-linux-x86.ads
2640 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2642 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
2643 EXTRA_GNATRTL_NONTASKING_OBJS+=$(TRASYM_DWARF_UNIX_OBJS)
2644 EXTRA_GNATRTL_NONTASKING_OBJS+=$(GNATRTL_128BIT_OBJS)
2645 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2647 THREADSLIB=-lpthread -lrt
2648 GNATLIB_SHARED=gnatlib-shared-dual
2650 LIBRARY_VERSION := $(LIB_VERSION)
2654 ifeq ($(strip $(filter-out riscv% linux%,$(target_cpu) $(target_os))),)
2655 LIBGNAT_TARGET_PAIRS = \
2656 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2657 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2658 s-dorepr.adb<libgnat/s-dorepr__fma.adb \
2659 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2660 s-intman.adb<libgnarl/s-intman__posix.adb \
2661 s-linux.ads<libgnarl/s-linux__riscv.ads \
2662 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2663 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2664 s-osprim.adb<libgnat/s-osprim__posix.adb \
2665 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2666 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2667 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2668 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2669 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2670 system.ads<libgnat/system-linux-riscv.ads
2672 ifeq ($(strip $(filter-out riscv64,$(target_cpu))),)
2673 ifneq ($(strip $(MULTISUBDIR)),/lib32)
2674 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2675 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2678 ifeq ($(strip $(MULTISUBDIR)),/lib64)
2679 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2680 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2684 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2686 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2688 THREADSLIB = -lpthread
2689 GNATLIB_SHARED = gnatlib-shared-dual
2691 LIBRARY_VERSION := $(LIB_VERSION)
2695 ifeq ($(strip $(filter-out darwin%,$(target_os))),)
2696 SO_OPTS = -shared-libgcc
2697 LIBGNAT_TARGET_PAIRS = \
2698 a-intnam.ads<libgnarl/a-intnam__darwin.ads \
2699 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2700 s-osinte.adb<libgnarl/s-osinte__darwin.adb \
2701 s-osinte.ads<libgnarl/s-osinte__darwin.ads \
2702 s-taprop.adb<libgnarl/s-taprop__posix.adb \
2703 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2704 g-sercom.adb<libgnat/g-sercom__linux.adb \
2705 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb
2707 ifeq ($(strip $(filter-out %86,$(target_cpu))),)
2708 LIBGNAT_TARGET_PAIRS += \
2709 s-intman.adb<libgnarl/s-intman__susv3.adb \
2710 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2711 $(ATOMICS_TARGET_PAIRS) \
2712 system.ads<libgnat/system-darwin-x86.ads
2714 ifeq ($(strip $(MULTISUBDIR)),/x86_64)
2716 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2717 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2718 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2720 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2723 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
2726 ifeq ($(strip $(filter-out %x86_64,$(target_cpu))),)
2727 LIBGNAT_TARGET_PAIRS += \
2728 s-intman.adb<libgnarl/s-intman__susv3.adb \
2729 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2730 a-exetim.ads<libgnarl/a-exetim__default.ads \
2731 a-exetim.adb<libgnarl/a-exetim__darwin.adb \
2732 $(ATOMICS_TARGET_PAIRS) \
2733 system.ads<libgnat/system-darwin-x86.ads
2735 ifeq ($(strip $(MULTISUBDIR)),/i386)
2737 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2739 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2740 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2741 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2744 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
2745 EXTRA_GNATRTL_TASKING_OBJS=a-exetim.o
2748 ifeq ($(strip $(filter-out powerpc%,$(target_cpu))),)
2749 LIBGNAT_TARGET_PAIRS += \
2750 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2751 s-intman.adb<libgnarl/s-intman__posix.adb \
2752 s-osprim.adb<libgnat/s-osprim__posix.adb \
2753 $(ATOMICS_TARGET_PAIRS) \
2754 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2755 system.ads<libgnat/system-darwin-ppc.ads
2757 ifeq ($(strip $(filter-out powerpc64,$(target_cpu))),)
2758 ifneq ($(strip $(MULTISUBDIR)),/ppc)
2759 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2760 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2765 ifeq ($(strip $(MULTISUBDIR)),/ppc64)
2767 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2768 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2773 ifeq ($(strip $(filter-out arm,$(target_cpu))),)
2774 LIBGNAT_TARGET_PAIRS += \
2775 s-intman.adb<libgnarl/s-intman__susv3.adb \
2776 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2777 $(ATOMICS_TARGET_PAIRS) \
2778 $(ATOMICS_BUILTINS_TARGET_PAIRS)
2780 LIBGNAT_TARGET_PAIRS += \
2781 system.ads<libgnat/system-darwin-arm.ads
2784 ifeq ($(strip $(filter-out arm64 aarch64,$(target_cpu))),)
2785 LIBGNAT_TARGET_PAIRS += \
2786 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2787 s-intman.adb<libgnarl/s-intman__susv3.adb \
2788 s-dorepr.adb<libgnat/s-dorepr__fma.adb \
2789 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2790 $(ATOMICS_TARGET_PAIRS) \
2791 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2792 $(GNATRTL_128BIT_PAIRS)
2794 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2795 EXTRA_LIBGNAT_OBJS+=sigtramp-ios.o
2796 EXTRA_LIBGNAT_SRCS+=sigtramp.h
2797 LIBGNAT_TARGET_PAIRS += \
2798 system.ads<libgnat/system-darwin-arm.ads
2801 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-darwin.adb
2804 GNATLIB_SHARED = gnatlib-shared-darwin
2806 LIBRARY_VERSION := $(LIB_VERSION)
2808 GCC_LINK_FLAGS=-static-libstdc++
2811 ifeq ($(EH_MECHANISM),-gcc)
2812 LIBGNAT_TARGET_PAIRS += \
2813 s-excmac.ads<libgnat/s-excmac__gcc.ads \
2814 s-excmac.adb<libgnat/s-excmac__gcc.adb
2815 EXTRA_LIBGNAT_OBJS+=raise-gcc.o
2816 EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o
2819 ifeq ($(EH_MECHANISM),-arm)
2820 LIBGNAT_TARGET_PAIRS += \
2821 s-excmac.ads<libgnat/s-excmac__arm.ads \
2822 s-excmac.adb<libgnat/s-excmac__arm.adb
2823 EXTRA_LIBGNAT_OBJS+=raise-gcc.o
2824 EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o
2827 ifeq ($(strip $(filter-out linux%,$(target_os))),)
2828 LIBGNAT_TARGET_PAIRS += \
2829 g-sercom.adb<libgnat/g-sercom__linux.adb
2832 # Turn on shared gnatlib for specific vx7r2 targets for RTP runtimes. Once
2833 # all targets are ported the target_cpu selector can be removed.
2834 ifeq ($(strip $(filter-out vxworks7r2 powerpc64 x86_64 aarch64 rtp rtp-smp, $(target_os) $(target_cpu) $(THREAD_KIND))),)
2835 GNATLIB_SHARED = gnatlib-shared-dual
2836 LIBRARY_VERSION := $(LIB_VERSION)
2839 LIBGNAT_TARGET_PAIRS += \
2840 interfac.ads<libgnat/interfac__2020.ads
2842 # LIBGNAT_SRCS is the list of all C files (including headers) of the runtime
2843 # library. LIBGNAT_OBJS is the list of object files for libgnat.
2844 # thread.c is special as put into GNATRTL_TASKING_OBJS
2845 LIBGNAT_OBJS = adadecode.o adaint.o argv.o aux-io.o \
2846 cal.o cio.o cstreams.o ctrl_c.o \
2847 env.o errno.o exit.o expect.o final.o rtfinal.o rtinit.o \
2848 init.o initialize.o locales.o mkdir.o \
2849 raise.o seh_init.o socket.o sysdep.o \
2850 targext.o terminals.o tracebak.o \
2851 $(EXTRA_LIBGNAT_OBJS)
2853 # NOTE ??? - when the -I option for compiling Ada code is made to work,
2854 # the library installation will change and there will be a
2855 # GNAT_RTL_SRCS. Right now we count on being able to build GNATRTL_OBJS
2856 # from ADA_INCLUDE_SRCS.
2858 LIBGNAT_SRCS = $(patsubst %.o,%.c,$(LIBGNAT_OBJS)) \
2859 adadecode.h adaint.h env.h gsocket.h raise.h standard.ads.h \
2860 runtime.h $(EXTRA_LIBGNAT_SRCS)
2862 # memtrack.o is special as not put into libgnat.
2863 GNATRTL_OBJS = $(GNATRTL_NONTASKING_OBJS) $(GNATRTL_TASKING_OBJS) \
2866 # Run time source files
2867 # Note that libgnat contains a significant number of files. In orde to avoid
2868 # command line length limitations the source regexp has been split for that
2871 libgnat/ada.ads libgnat/calendar.ads libgnat/directio.ads libgnat/gnat.ads libgnat/interfac.ads libgnat/ioexcept.ads \
2872 libgnat/machcode.ads libgnat/text_io.ads libgnat/unchconv.ads libgnat/unchdeal.ads \
2873 libgnat/sequenio.ads libgnat/memtrack.adb \
2875 libgnat/a-[a-o]*.adb libgnat/a-[a-o]*.ads \
2876 libgnat/a-[p-z]*.adb libgnat/a-[p-z]*.ads \
2877 libgnat/g-[a-o]*.adb libgnat/g-[a-o]*.ads \
2878 libgnat/g-[p-z]*.adb libgnat/g-[p-z]*.ads \
2879 libgnat/s-[a-o]*.adb libgnat/s-[a-o]*.ads \
2880 libgnat/s-[p-z]*.adb libgnat/s-[p-z]*.ads \
2881 libgnat/i-[a-o]*.adb libgnat/i-[a-o]*.ads \
2882 libgnat/i-[p-z]*.adb libgnat/i-[p-z]*.ads \
2883 libgnarl/[agis]-[a-z]*.ad[sb]
2886 # Files that are in ADA_INCLUDE_SRCS but not in all configurations.
2887 # They will be removed from the run time if not used.
2889 g-allein.ads g-alleve.adb g-alleve.ads g-altcon.adb g-altcon.ads \
2890 g-altive.ads g-alveop.adb g-alveop.ads g-alvety.ads g-alvevi.ads \
2891 g-intpri.ads g-regist.adb g-regist.ads g-sse.ads g-ssvety.ads \
2892 i-vxinco.adb i-vxinco.ads i-vxwoio.adb i-vxwoio.ads i-vxwork.ads \
2893 s-linux.ads s-vxwext.adb s-vxwext.ads s-win32.ads s-winext.ads \
2894 s-stchop.ads s-stchop.adb \
2895 s-strcom.adb s-strcom.ads s-thread.ads \
2898 # ADA_EXCLUDE_SRCS without the sources used by the target
2899 ADA_EXCLUDE_FILES=$(filter-out \
2900 $(patsubst %$(objext),%.ads,$(GNATRTL_OBJS)) \
2901 $(patsubst %$(objext),%.adb,$(GNATRTL_OBJS)), \
2902 $(ADA_EXCLUDE_SRCS))
2905 rts-err: ; $(RTSERR)
2907 setup-rts: rts-err force
2910 $(CHMOD) u+w $(RTSDIR)
2911 # Copy target independent sources
2912 $(foreach f,$(ADA_INCLUDE_SRCS) $(LIBGNAT_SRCS) libgnarl/thread.c, \
2913 $(LN_S) $(GNAT_SRC)/$(f) $(RTSDIR) ;) true
2914 # Remove files not used
2915 $(RM) $(patsubst %,$(RTSDIR)/%,$(ADA_EXCLUDE_FILES))
2916 # Remove files to be replaced by target dependent sources
2917 $(RM) $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \
2918 $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR))))
2919 for f in $(RTSDIR)/*-*__*.ads $(RTSDIR)/*-*__*.adb; do \
2922 # Copy new target dependent sources
2923 $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \
2924 $(LN_S) $(GNAT_SRC)/$(word 2,$(subst <, ,$(PAIR))) \
2925 $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR)));)
2926 # And finally generate libgnat.lst and libgnarl.lst
2928 $(foreach F,$(GNATRTL_TASKING_OBJS),$(subst $(objext),.ads,$(F))) \
2929 $(foreach F,$(GNATRTL_TASKING_OBJS),$(subst $(objext),.adb,$(F))); \
2931 if [ -f $(RTSDIR)/$$f ]; then echo $$f >> $(RTSDIR)/libgnarl.lst; fi \
2933 @echo thread.c >> $(RTSDIR)/libgnarl.lst
2935 $(foreach F,$(GNATRTL_NONTASKING_OBJS),$(subst $(objext),.ads,$(F))) \
2936 $(foreach F,$(GNATRTL_NONTASKING_OBJS),$(subst $(objext),.adb,$(F))); \
2938 if [ -f $(RTSDIR)/$$f ]; then echo $$f >> $(RTSDIR)/libgnat.lst; fi \
2940 # s-oscons.ads is generated later, so hardcode it here
2941 @echo s-oscons.ads >> $(RTSDIR)/libgnat.lst
2942 @for f in $(LIBGNAT_SRCS); do \
2943 echo $$f >> $(RTSDIR)/libgnat.lst; \
2946 # Special flags. It is recommended not to change the compilation flags
2947 # without a careful analysis of the consequences because (part of) the
2948 # runtime implements low-level support that is outside of the semantics
2949 # of the language and therefore needs to be treated differently from the
2950 # other units. For example, the part of the runtime implementing the
2951 # propagation of exceptions cannot itself be compiled with checks that
2952 # may give rise to exceptions, e.g. stack overflow checks.
2954 # Generate target-dependent info into a file named ada_target_properties.
2955 # This information is used by tools for static analysis: they need to know
2956 # the size of standard types for a given run-time library. This metadata
2957 # is meant to be saved at the root of the run-time directory.
2959 ADA_TARGET_PROPERTIES = -gnatet=ada_target_properties
2961 system.o: system.ads
2962 $(ADAC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< \
2963 $(ADA_TARGET_PROPERTIES) \
2966 # Force no sibling call optimization on s-traceb.o so the number of stack
2967 # frames to be skipped when computing a call chain is not modified by
2968 # optimization. We don't want inlining, either.
2970 s-traceb.o: s-traceb.adb s-traceb.ads
2971 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) \
2972 $(NO_INLINE_ADAFLAGS) $(NO_SIBLING_ADAFLAGS) $(ADA_INCLUDES) $< \
2975 # Compile s-tasdeb.o without optimization and with debug info so that it is
2976 # always possible to set conditional breakpoints on tasks.
2978 s-tasdeb.o: s-tasdeb.adb s-tasdeb.ads
2979 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O0 $(ADA_INCLUDES) \
2982 # Force no function reordering on a-except.o because of the exclusion bounds
2983 # mechanism (see the source file for more detailed information).
2984 # force debugging information on a-except.o so that it is always
2985 # possible to set conditional breakpoints on exceptions.
2986 # use -O1 otherwise gdb isn't able to get a full backtrace on mips targets.
2988 a-except.o: a-except.adb a-except.ads
2989 $(ADAC) -c $(ALL_ADAFLAGS) -O1 $(FORCE_DEBUG_ADAFLAGS) \
2990 $(NO_INLINE_ADAFLAGS) $(NO_REORDER_ADAFLAGS) $(ADA_INCLUDES) \
2993 # Compile s-excdeb.o without optimization and with debug info to let the
2994 # debugger set breakpoints and inspect subprogram parameters on exception
2997 s-excdeb.o: s-excdeb.adb s-excdeb.ads s-except.ads
2998 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O0 \
2999 $(ADA_INCLUDES) $< $(OUTPUT_OPTION)
3001 # Force debugging information on s-assert.o so that it is always
3002 # possible to set breakpoint on assert failures.
3004 s-assert.o: s-assert.adb s-assert.ads
3005 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \
3008 # Force debugging information on a-tags.o so that the debugger can find
3009 # the description of Ada.Tags.Type_Specific_Data.
3011 a-tags.o: a-tags.adb a-tags.ads
3012 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \
3015 # Force no sibling call optimization on s-memory.o to avoid turning the
3016 # tail recursion in Alloc into a loop that confuses branch prediction.
3018 s-memory.o: s-memory.adb s-memory.ads
3019 $(ADAC) -c $(ALL_ADAFLAGS) $(NO_SIBLING_ADAFLAGS) $(ADA_INCLUDES) \
3022 # Need to keep functions ordered on g-debpoo.o since labels are used to
3023 # exclude subprograms from traceback computation.
3025 g-debpoo.o: g-debpoo.adb g-debpoo.ads
3026 $(ADAC) -c $(ALL_ADAFLAGS) $(NO_REORDER_ADAFLAGS) $(ADA_INCLUDES) \