1 # Makefile.rtl for GNU Ada Compiler (GNAT).
2 # Copyright (C) 2003-2020, 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= \
801 $(GNATRTL_ALTIVEC_OBJS) \
802 $(GNATRTL_SOCKETS_OBJS) \
803 $(EXTRA_GNATRTL_NONTASKING_OBJS)
805 # LIBGNAT_TARGET_PAIRS is a list of pairs of filenames.
806 # The members of each pair must be separated by a '<' and no whitespace.
807 # Each pair must be separated by some amount of whitespace from the following
812 LIBGNAT_TARGET_PAIRS = \
813 a-intnam.ads<libgnarl/a-intnam__dummy.ads \
814 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
815 s-intman.adb<libgnarl/s-intman__dummy.adb \
816 s-osinte.ads<libgnarl/s-osinte__dummy.ads \
817 s-osprim.adb<libgnat/s-osprim__posix.adb \
818 s-taprop.adb<libgnarl/s-taprop__dummy.adb \
819 s-taspri.ads<libgnarl/s-taspri__dummy.ads
821 # When using the GCC exception handling mechanism, we need to use an
822 # alternate body for a-exexpr.adb (a-exexpr-gcc.adb)
826 # Compilation options for the GCC-SJLJ RTS. This may be augmented for
827 # target specific contexts, e.g. to add -fno-omit-frame-pointer for backtrace
829 GNATLIBCFLAGS_FOR_GCCSJLJ=-fsjlj
831 # Default shared object option. Note that we rely on the fact that the "soname"
832 # option will always be present and last in this flag, so that we can have
833 # $(SO_OPTS)libgnat-x.xx
835 SO_OPTS = -Wl,-soname,
837 # Default gnatlib-shared target.
838 # By default, equivalent to gnatlib.
839 # Set to gnatlib-shared-default, gnatlib-shared-dual, or a platform specific
840 # target when supported.
841 GNATLIB_SHARED = gnatlib
843 # By default, build socket support units. On platforms that do not support
844 # sockets, reset this variable to empty and add DUMMY_SOCKETS_TARGET_PAIRS
845 # to LIBGNAT_TARGET_PAIRS.
847 GNATRTL_SOCKETS_OBJS = g-soccon$(objext) g-socket$(objext) g-socthi$(objext) \
848 g-soliop$(objext) g-sothco$(objext) g-socpol$(objext)
850 DUMMY_SOCKETS_TARGET_PAIRS = \
851 g-socket.adb<libgnat/g-socket__dummy.adb \
852 g-socket.ads<libgnat/g-socket__dummy.ads \
853 g-socthi.adb<libgnat/g-socthi__dummy.adb \
854 g-socthi.ads<libgnat/g-socthi__dummy.ads \
855 g-sothco.adb<libgnat/g-sothco__dummy.adb \
856 g-sothco.ads<libgnat/g-sothco__dummy.ads \
857 g-socpol.adb<libgnat/g-socpol__dummy.adb \
858 g-socpol.ads<libgnat/g-socpol__dummy.ads
860 # On platforms where atomic increment/decrement operations are supported,
861 # special version of Ada.Strings.Unbounded package can be used.
863 ATOMICS_TARGET_PAIRS = \
864 a-coinho.adb<libgnat/a-coinho__shared.adb \
865 a-coinho.ads<libgnat/a-coinho__shared.ads \
866 a-stunau.adb<libgnat/a-stunau__shared.adb \
867 a-suteio.adb<libgnat/a-suteio__shared.adb \
868 a-strunb.ads<libgnat/a-strunb__shared.ads \
869 a-strunb.adb<libgnat/a-strunb__shared.adb \
870 a-stwiun.adb<libgnat/a-stwiun__shared.adb \
871 a-stwiun.ads<libgnat/a-stwiun__shared.ads \
872 a-swunau.adb<libgnat/a-swunau__shared.adb \
873 a-swuwti.adb<libgnat/a-swuwti__shared.adb \
874 a-stzunb.adb<libgnat/a-stzunb__shared.adb \
875 a-stzunb.ads<libgnat/a-stzunb__shared.ads \
876 a-szunau.adb<libgnat/a-szunau__shared.adb \
877 a-szuzti.adb<libgnat/a-szuzti__shared.adb
879 ATOMICS_BUILTINS_TARGET_PAIRS = \
880 s-atocou.adb<libgnat/s-atocou__builtin.adb
882 # Special version of units for x86 and x86-64 platforms.
885 a-nuauco.ads<libgnat/a-nuauco__x86.ads \
886 s-atocou.adb<libgnat/s-atocou__x86.adb
888 X86_64_TARGET_PAIRS = \
889 a-nuauco.ads<libgnat/a-nuauco__x86.ads \
890 s-atocou.adb<libgnat/s-atocou__builtin.adb
892 # Implementation of symbolic traceback based on dwarf
893 TRASYM_DWARF_UNIX_PAIRS = \
894 s-trasym.adb<libgnat/s-trasym__dwarf.adb \
895 s-mmosin.ads<libgnat/s-mmosin__unix.ads \
896 s-mmosin.adb<libgnat/s-mmosin__unix.adb \
897 s-mmauni.ads<libgnat/s-mmauni__long.ads
899 TRASYM_DWARF_MINGW_PAIRS = \
900 s-trasym.adb<libgnat/s-trasym__dwarf.adb \
901 s-mmosin.ads<libgnat/s-mmosin__mingw.ads \
902 s-mmosin.adb<libgnat/s-mmosin__mingw.adb
904 TRASYM_DWARF_COMMON_OBJS = s-objrea$(objext) s-dwalin$(objext) s-mmap$(objext) \
907 TRASYM_DWARF_UNIX_OBJS = $(TRASYM_DWARF_COMMON_OBJS) s-mmauni$(objext)
909 TRASYM_DWARF_MINGW_OBJS = $(TRASYM_DWARF_COMMON_OBJS)
911 GNATRTL_128BIT_PAIRS = \
912 a-decima.ads<libgnat/a-decima__128.ads \
913 a-tideio.adb<libgnat/a-tideio__128.adb \
914 a-tifiio.adb<libgnat/a-tifiio__128.adb \
915 a-tiinio.adb<libgnat/a-tiinio__128.adb \
916 a-timoio.adb<libgnat/a-timoio__128.adb \
917 a-wtdeio.adb<libgnat/a-wtdeio__128.adb \
918 a-wtfiio.adb<libgnat/a-wtfiio__128.adb \
919 a-wtinio.adb<libgnat/a-wtinio__128.adb \
920 a-wtmoio.adb<libgnat/a-wtmoio__128.adb \
921 a-ztdeio.adb<libgnat/a-ztdeio__128.adb \
922 a-ztfiio.adb<libgnat/a-ztfiio__128.adb \
923 a-ztinio.adb<libgnat/a-ztinio__128.adb \
924 a-ztmoio.adb<libgnat/a-ztmoio__128.adb \
925 i-cexten.ads<libgnat/i-cexten__128.ads \
926 s-scaval.ads<libgnat/s-scaval__128.ads \
927 s-scaval.adb<libgnat/s-scaval__128.adb
929 # Objects needed for 128-bit types
930 GNATRTL_128BIT_OBJS = \
1000 s-pack120$(objext) \
1001 s-pack121$(objext) \
1002 s-pack122$(objext) \
1003 s-pack123$(objext) \
1004 s-pack124$(objext) \
1005 s-pack125$(objext) \
1006 s-pack126$(objext) \
1007 s-pack127$(objext) \
1008 s-vade128$(objext) \
1009 s-vafi128$(objext) \
1010 s-valllli$(objext) \
1011 s-vallllu$(objext) \
1012 s-widllli$(objext) \
1015 # Shared library version
1016 LIB_VERSION = $(strip $(shell grep ' Library_Version :' $(GNAT_SRC)/gnatvsn.ads | sed -e 's/.*"\(.*\)".*/\1/'))
1018 # Additional object files from C source to be added to libgnat.
1021 # Additional C source files to be added to libgnat without corresponding
1022 # object file (#included files). This should include at least the GNAT
1023 # specific header files required to rebuild the runtime library from sources.
1026 # Additional object files from Ada sources to be added in libgnat
1027 EXTRA_GNATRTL_NONTASKING_OBJS=
1029 # Additional object files from Ada sources to be added in libgnarl
1030 EXTRA_GNATRTL_TASKING_OBJS=
1032 # Subsets of extra libgnat sources that always go together
1033 VX_SIGTRAMP_EXTRA_SRCS=sigtramp.h sigtramp-vxworks-target.inc
1035 # Additional object files that should go in the same directory as libgnat,
1036 # aside the library itself. Typically useful for crtbegin/crtend kind of files.
1039 # GCC spec files to be installed in $(libsubdir), so --specs=<spec-filename>
1040 # finds them at runtime.
1043 # $(filter-out PATTERN...,TEXT) removes all PATTERN words from TEXT.
1044 # $(strip STRING) removes leading and trailing spaces from STRING.
1045 # If what's left is null then it's a match.
1047 # PowerPC and e500v2 VxWorks
1048 ifeq ($(strip $(filter-out powerpc% wrs vxworks vxworksspe vxworks7% vxworks7spe,$(target_cpu) $(target_vendor) $(target_os))),)
1050 ifeq ($(strip $(filter-out e500%, $(target_alias))),)
1052 # gcc config translates the target e500v2-wrs-vxworks to
1053 # powerpc-wrs-vxworksspe. Let's keep the original alias here when
1054 # generating s-oscons.ads.
1055 target=$(target_alias)
1057 ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),)
1064 VX=$(strip $(if $(filter vxworks7%, $(target_os)), vxworks7, vxworks))
1067 LIBGNAT_TARGET_PAIRS = \
1068 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1069 a-naliop.ads<libgnat/a-naliop__nolibm.ads \
1070 a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \
1071 a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \
1072 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
1073 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1074 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1075 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1076 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1077 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
1078 s-parame.ads<libgnat/s-parame__vxworks.ads \
1079 s-parame.adb<libgnat/s-parame__vxworks.adb \
1080 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1081 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1082 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1083 s-vxwork.ads<libgnarl/s-vxwork__ppc.ads \
1084 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1085 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1086 g-sopowa.adb<libgnat/g-sopowa__posix.adb \
1087 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
1088 $(ATOMICS_TARGET_PAIRS) \
1089 $(ATOMICS_BUILTINS_TARGET_PAIRS)
1091 # VxWorks 5 and 6 both use the same target triplet making them
1092 # indistinguishable in the context of this make file. Package
1093 # System.Stack_Checking.Operations is not needed on VxWorks 6 as it leads to
1094 # an undefined symbol when building a dynamic shared library. To alleviate
1095 # this problem and distinguish this case, we use the THREAD_KIND and include
1096 # the package only in default mode.
1098 ifeq ($(strip $(filter-out default,$(THREAD_KIND))),)
1099 LIBGNAT_TARGET_PAIRS += \
1100 s-stchop.ads<libgnat/s-stchop__limit.ads \
1101 s-stchop.adb<libgnat/s-stchop__vxworks.adb
1102 EXTRA_GNATRTL_NONTASKING_OBJS+=s-stchop.o
1105 ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),)
1106 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1107 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1110 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1112 ifeq ($(strip $(filter-out rtp,$(THREAD_KIND))),)
1113 LIBGNAT_TARGET_PAIRS += \
1114 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1115 s-vxwext.adb<libgnarl/s-vxwext__rtp.adb \
1116 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-rtp.adb \
1117 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp.ads
1121 ifeq ($(strip $(filter-out rtp-smp,$(THREAD_KIND))),)
1122 LIBGNAT_TARGET_PAIRS += \
1123 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1124 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1125 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \
1126 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1127 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp-smp.ads
1130 EXTRA_LIBGNAT_OBJS+=affinity.o
1132 ifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),)
1133 LIBGNAT_TARGET_PAIRS += \
1134 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1135 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1136 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1137 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1138 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \
1139 system.ads<libgnat/$(SVX)-$(ARCH_STR)-kernel.ads
1142 EXTRA_LIBGNAT_OBJS+=affinity.o
1144 LIBGNAT_TARGET_PAIRS += \
1145 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1146 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb
1148 ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
1150 LIBGNAT_TARGET_PAIRS += \
1151 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1152 s-vxwext.adb<libgnarl/s-vxwext__kernel.adb \
1153 system.ads<libgnat/$(SVX)-$(ARCH_STR)-kernel.ads
1155 LIBGNAT_TARGET_PAIRS += \
1156 system.ads<libgnat/system-vxworks-ppc.ads
1159 EXTRA_GNATRTL_NONTASKING_OBJS+=i-vxinco.o i-vxwork.o i-vxwoio.o
1163 EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o
1164 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1166 EXTRA_GNATRTL_TASKING_OBJS += s-vxwork.o s-vxwext.o
1168 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1170 ifeq ($(strip $(filter-out vxworks7%, $(target_os))),)
1171 ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),)
1172 GCC_SPEC_FILES+=vxworks7-ppc64-rtp-base-link.spec
1174 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec
1176 GCC_SPEC_FILES+=vxworks7-cert-rtp-link.spec
1178 GCC_SPEC_FILES+=vxworks-$(ARCH_STR)-link.spec
1179 GCC_SPEC_FILES+=vxworks-cert-$(ARCH_STR)-link.spec
1180 GCC_SPEC_FILES+=vxworks-smp-$(ARCH_STR)-link.spec
1184 # PowerPC and e500v2 VxWorks 653
1185 ifeq ($(strip $(filter-out powerpc% wrs vxworksae vxworksaespe,$(target_cpu) $(target_vendor) $(target_os))),)
1187 ifeq ($(strip $(filter-out e500%, $(target_alias))),)
1189 # gcc config translates the target e500v2-wrs-vxworks to
1190 # powerpc-wrs-vxworksspe. Let's keep the original alias here when
1191 # generating s-oscons.ads.
1192 target=$(target_alias)
1197 # target pairs for vthreads runtime
1198 LIBGNAT_TARGET_PAIRS = \
1199 a-elchha.adb<libgnat/a-elchha__vxworks-ppc-full.adb \
1200 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1201 a-naliop.ads<libgnat/a-naliop__nolibm.ads \
1202 a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \
1203 a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \
1204 g-io.adb<hie/g-io__vxworks-cert.adb \
1205 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
1206 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1207 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1208 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1209 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1210 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1211 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
1212 s-parame.ads<libgnat/s-parame__ae653.ads \
1213 s-parame.adb<libgnat/s-parame__vxworks.adb \
1214 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1215 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1216 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1217 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb \
1218 s-vxwext.adb<libgnarl/s-vxwext__noints.adb \
1219 s-vxwext.ads<libgnarl/s-vxwext__vthreads.ads \
1220 s-vxwork.ads<libgnarl/s-vxwork__ppc.ads \
1221 system.ads<libgnat/system-vxworks-$(ARCH_STR)-vthread.ads \
1222 $(ATOMICS_TARGET_PAIRS) \
1223 $(ATOMICS_BUILTINS_TARGET_PAIRS)
1227 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1229 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o
1230 EXTRA_GNATRTL_TASKING_OBJS=i-vxinco.o s-vxwork.o s-vxwext.o
1232 EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o
1233 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1235 # Extra pairs for the vthreads runtime
1236 ifeq ($(strip $(filter-out vthreads,$(THREAD_KIND))),)
1237 LIBGNAT_TARGET_PAIRS += \
1238 s-thread.adb<libgnat/s-thread__ae653.adb \
1239 s-osvers.ads<libgnat/s-osvers__vxworks-653.ads \
1240 $(DUMMY_SOCKETS_TARGET_PAIRS)
1242 GNATRTL_SOCKETS_OBJS =
1243 EXTRA_GNATRTL_NONTASKING_OBJS += s-thread.o s-osvers.o
1245 LIBGNAT_TARGET_PAIRS += \
1246 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1247 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1248 g-sopowa.adb<libgnat/g-sopowa__posix.adb \
1249 g-stsifd.adb<libgnat/g-stsifd__sockets.adb
1254 # VxWorksae / VxWorks 653 for x86 (vxsim) - ?? VxWorks mils not implemented
1255 ifeq ($(strip $(filter-out %86 wrs vxworksae,$(target_cpu) $(target_vendor) $(target_os))),)
1256 # target pairs for kernel + vthreads runtime
1257 LIBGNAT_TARGET_PAIRS = \
1258 a-elchha.adb<libgnat/a-elchha__vxworks-ppc-full.adb \
1259 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1260 a-naliop.ads<libgnat/a-naliop__nolibm.ads \
1261 a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \
1262 a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \
1263 g-io.adb<hie/g-io__vxworks-cert.adb \
1264 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
1265 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1266 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1267 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1268 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1269 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1270 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
1271 s-parame.ads<libgnat/s-parame__ae653.ads \
1272 s-parame.adb<libgnat/s-parame__vxworks.adb \
1273 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1274 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1275 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1276 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb \
1277 s-vxwext.adb<libgnarl/s-vxwext__noints.adb \
1278 s-vxwext.ads<libgnarl/s-vxwext__vthreads.ads \
1279 s-vxwork.ads<libgnarl/s-vxwork__x86.ads \
1280 system.ads<libgnat/system-vxworks-x86-vthread.ads \
1281 $(ATOMICS_TARGET_PAIRS) \
1282 $(ATOMICS_BUILTINS_TARGET_PAIRS)
1286 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1288 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-thread.o
1289 EXTRA_GNATRTL_TASKING_OBJS=i-vxinco.o s-vxwork.o s-vxwext.o
1291 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1292 GNATRTL_SOCKETS_OBJS =
1294 # Extra pairs for the vthreads runtime
1295 ifeq ($(strip $(filter-out vthreads,$(THREAD_KIND))),)
1296 LIBGNAT_TARGET_PAIRS += \
1297 s-thread.adb<libgnat/s-thread__ae653.adb \
1298 s-osvers.ads<libgnat/s-osvers__vxworks-653.ads \
1299 $(DUMMY_SOCKETS_TARGET_PAIRS)
1301 GNATRTL_SOCKETS_OBJS =
1302 EXTRA_GNATRTL_NONTASKING_OBJS += s-thread.o s-osvers.o
1304 LIBGNAT_TARGET_PAIRS += \
1305 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1306 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1307 g-sopowa.adb<libgnat/g-sopowa__posix.adb \
1308 g-stsifd.adb<libgnat/g-stsifd__sockets.adb
1313 # x86/x86_64 VxWorks
1314 ifeq ($(strip $(filter-out %86 x86_64 wrs vxworks vxworks7%,$(target_cpu) $(target_vendor) $(target_os))),)
1316 LIBGNAT_TARGET_PAIRS= \
1317 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1318 i-vxwork.ads<libgnat/i-vxwork__x86.ads \
1319 a-naliop.ads<libgnat/a-naliop__nolibm.ads \
1320 a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \
1321 a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \
1322 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1323 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1324 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
1325 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1326 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1327 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
1328 s-parame.ads<libgnat/s-parame__vxworks.ads \
1329 s-parame.adb<libgnat/s-parame__vxworks.adb \
1330 s-stchop.ads<libgnat/s-stchop__limit.ads \
1331 s-stchop.adb<libgnat/s-stchop__vxworks.adb \
1332 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1333 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1334 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1335 s-vxwork.ads<libgnarl/s-vxwork__x86.ads \
1336 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1337 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1338 g-sopowa.adb<libgnat/g-sopowa__posix.adb \
1339 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
1340 $(ATOMICS_TARGET_PAIRS)
1342 VX=$(strip $(if $(filter vxworks7%, $(target_os)), vxworks7, vxworks))
1345 ifeq ($(strip $(filter-out x86_64, $(target_cpu))),)
1347 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
1348 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1349 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1352 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
1355 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1359 # The CPU setting for VxSim varies with the
1360 # host (Windows or Linux)
1361 # target (VxWorks6 or VxWorks7)
1362 # runtime (rtp or kernel)
1363 # -------------------------------------------------------------
1365 # Windows (host_os = mingw32)
1366 # kernel SIMNT SIMNT
1367 # rtp SIMPENTIUM SIMNT
1368 # Linux (host_os = linux-gnu)
1369 # kernel SIMLINUX SIMLINUX
1370 # rtp SIMPENTIUM SIMLINUX
1371 # -------------------------------------------------------------
1372 # It is overridden by VXSIM_CPU only in files init-vxsim.c and
1373 # sigtramp-vxworks-vxsim.c which contain functions determined at
1374 # runtime to be called if a program is running on VxSim vs real hardware
1375 # (due to differences in signal context for unwinding).
1377 ifneq ($(strip $(filter-out vxworks7, $(target_os))),)
1378 ifeq ($(strip $(filter-out vxworks rtp rtp-smp,$(target_os) $(THREAD_KIND))),)
1379 VXSIM_CPU = SIMPENTIUM
1381 ifeq ($(strip $(filter-out kernel kernel-smp rtp rtp-smp,$(THREAD_KIND))),)
1382 ifeq ($(strip $(filter-out linux%,$(host_os))),)
1384 VXSIM_CPU = SIMLINUX
1392 GNATLIBCFLAGS_FOR_C := $(GNATLIBCFLAGS_FOR_C) -D__VXSIM_CPU__=$(VXSIM_CPU)
1395 ifeq ($(strip $(filter-out rtp,$(THREAD_KIND))),)
1396 LIBGNAT_TARGET_PAIRS += \
1397 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1398 s-vxwext.adb<libgnarl/s-vxwext__rtp.adb \
1399 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-rtp.adb \
1400 system.ads<libgnat/$(SVX)-x86-rtp.ads
1402 ifeq ($(strip $(filter-out rtp-smp, $(THREAD_KIND))),)
1403 LIBGNAT_TARGET_PAIRS += \
1404 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1405 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1406 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \
1407 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1408 system.ads<libgnat/$(SVX)-$(X86CPU)-rtp-smp.ads
1410 EXTRA_LIBGNAT_OBJS+=affinity.o
1412 ifeq ($(strip $(filter-out kernel-smp, $(THREAD_KIND))),)
1413 LIBGNAT_TARGET_PAIRS += \
1414 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1415 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1416 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1417 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1418 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \
1419 system.ads<libgnat/$(SVX)-$(X86CPU)-kernel.ads
1421 EXTRA_LIBGNAT_OBJS+=affinity.o
1423 LIBGNAT_TARGET_PAIRS += \
1424 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1425 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb
1427 ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
1428 LIBGNAT_TARGET_PAIRS += \
1429 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1430 s-vxwext.adb<libgnarl/s-vxwext__kernel.adb \
1431 system.ads<libgnat/$(SVX)-x86-kernel.ads
1433 LIBGNAT_TARGET_PAIRS += \
1434 system.ads<libgnat/system-vxworks-x86.ads
1438 EXTRA_GNATRTL_NONTASKING_OBJS += i-vxwork.o i-vxwoio.o
1442 EXTRA_GNATRTL_NONTASKING_OBJS += s-stchop.o
1443 EXTRA_GNATRTL_TASKING_OBJS += i-vxinco.o s-vxwork.o s-vxwext.o
1445 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1447 EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o
1448 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1450 ifeq ($(strip $(filter-out vxworks7%, $(target_os))),)
1451 GCC_SPEC_FILES+=vxworks7-$(X86CPU)-rtp-base-link.spec
1452 GCC_SPEC_FILES+=vxworks7-cert-rtp-link.spec
1454 GCC_SPEC_FILES+=vxworks-x86-link.spec
1455 GCC_SPEC_FILES+=vxworks-cert-x86-link.spec
1456 GCC_SPEC_FILES+=vxworks-smp-x86-link.spec
1460 # ARM and Aarch64 VxWorks
1461 ifeq ($(strip $(filter-out aarch64 arm% coff wrs vx%,$(target_cpu) $(target_vendor) $(target_os))),)
1463 LIBGNAT_TARGET_PAIRS = \
1464 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1465 a-naliop.ads<libgnat/a-naliop__nolibm.ads \
1466 a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \
1467 a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \
1468 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
1469 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1470 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1471 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1472 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1473 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1474 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
1475 s-parame.ads<libgnat/s-parame__vxworks.ads \
1476 s-parame.adb<libgnat/s-parame__vxworks.adb \
1477 s-stchop.ads<libgnat/s-stchop__limit.ads \
1478 s-stchop.adb<libgnat/s-stchop__vxworks.adb \
1479 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1480 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1481 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1482 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1483 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1484 g-sopowa.adb<libgnat/g-sopowa__posix.adb \
1485 g-stsifd.adb<libgnat/g-stsifd__sockets.adb
1487 ifeq ($(strip $(filter-out aarch64, $(target_cpu))),)
1491 SIGTRAMP_OBJ=sigtramp-vxworks.o
1492 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) \
1493 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads
1494 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1496 ifeq ($(strip $(filter-out arm%, $(target_cpu))),)
1498 ifeq ($(strip $(filter-out vxworks7%, $(target_os))),)
1501 SIGTRAMP_OBJ=sigtramp-armvxworks.o
1505 SIGTRAMP_OBJ=sigtramp-vxworks.o
1512 LIBGNAT_TARGET_PAIRS += s-vxwork.ads<libgnarl/s-vxwork__$(ARCH_STR).ads
1516 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1518 ifeq ($(strip $(filter-out rtp-smp,$(THREAD_KIND))),)
1519 LIBGNAT_TARGET_PAIRS += \
1520 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1521 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1522 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \
1523 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1524 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp-smp.ads
1526 EXTRA_LIBGNAT_OBJS+=affinity.o
1528 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1529 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1531 ifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),)
1532 LIBGNAT_TARGET_PAIRS += \
1533 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1534 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1535 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1536 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \
1537 system.ads<libgnat/$(SVX)-$(ARCH_STR).ads
1539 EXTRA_LIBGNAT_OBJS+=affinity.o
1541 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1542 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1544 LIBGNAT_TARGET_PAIRS += \
1545 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb \
1546 system.ads<libgnat/$(SVX)-$(ARCH_STR).ads
1548 ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
1549 LIBGNAT_TARGET_PAIRS += \
1550 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1551 s-vxwext.adb<libgnarl/s-vxwext__kernel.adb
1553 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1554 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1559 EXTRA_GNATRTL_NONTASKING_OBJS += i-vxwork.o i-vxwoio.o s-stchop.o
1560 EXTRA_GNATRTL_TASKING_OBJS += i-vxinco.o s-vxwork.o s-vxwext.o
1562 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1564 ifeq ($(strip $(filter-out arm vxworks7%, $(target_cpu) $(target_os))),)
1565 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec
1567 ifeq ($(strip $(filter-out aarch64, $(target_cpu))),)
1568 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec
1571 ifneq ($(strip $(filter-out vxworks7%, $(target_os))),)
1572 GCC_SPEC_FILES+=vxworks-arm-link.spec
1573 GCC_SPEC_FILES+=vxworks-smp-arm-link.spec
1576 ifeq ($(strip $(filter-out vxworks7%, $(target_os))),)
1577 GCC_SPEC_FILES+=vxworks7-cert-rtp-link.spec
1582 ifeq ($(strip $(filter-out arm% linux-androideabi,$(target_cpu) $(target_os))),)
1583 LIBGNAT_TARGET_PAIRS = \
1584 a-intnam.ads<libgnarl/a-intnam__linux.ads \
1585 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1586 s-intman.adb<libgnarl/s-intman__android.adb \
1587 s-linux.ads<libgnarl/s-linux__android.ads \
1588 s-osinte.adb<libgnarl/s-osinte__android.adb \
1589 s-osinte.ads<libgnarl/s-osinte__android.ads \
1590 s-osprim.adb<libgnat/s-osprim__posix.adb \
1591 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1592 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1593 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1594 $(ATOMICS_TARGET_PAIRS) \
1595 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1596 system.ads<libgnat/system-linux-arm.ads
1598 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1600 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
1601 EXTRA_LIBGNAT_OBJS+=sigtramp-armdroid.o
1602 EXTRA_LIBGNAT_SRCS+=sigtramp.h
1605 GNATLIB_SHARED = gnatlib-shared-dual
1606 LIBRARY_VERSION := $(LIB_VERSION)
1610 ifeq ($(strip $(filter-out aarch64 %qnx,$(target_cpu) $(target_os))),)
1611 LIBGNAT_TARGET_PAIRS = \
1612 a-intnam.ads<libgnarl/a-intnam__qnx.ads \
1613 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1614 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1615 s-intman.adb<libgnarl/s-intman__qnx.adb \
1616 s-osinte.adb<libgnarl/s-osinte__qnx.adb \
1617 s-osinte.ads<libgnarl/s-osinte__qnx.ads \
1618 s-osprim.adb<libgnat/s-osprim__posix.adb \
1619 s-qnx.ads<libgnarl/s-qnx.ads \
1620 s-taprop.adb<libgnarl/s-taprop__qnx.adb \
1621 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1622 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1623 g-soliop.ads<libgnat/g-soliop__qnx.ads \
1624 $(ATOMICS_TARGET_PAIRS) \
1625 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1626 $(GNATRTL_128BIT_PAIRS) \
1627 system.ads<libgnat/system-qnx-aarch64.ads
1629 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1631 EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
1632 EXTRA_GNATRTL_TASKING_OBJS=s-qnx.o
1633 EXTRA_LIBGNAT_OBJS+=sigtramp-qnx.o
1634 EXTRA_LIBGNAT_SRCS+=sigtramp.h
1637 SO_OPTS= -shared-libgcc -Wl,-soname,
1640 GNATLIB_SHARED = gnatlib-shared-dual
1641 LIBRARY_VERSION := $(LIB_VERSION)
1645 ifeq ($(strip $(filter-out sparc% sun solaris%,$(target_cpu) $(target_vendor) $(target_os))),)
1646 LIBGNAT_TARGET_PAIRS = \
1647 a-intnam.ads<libgnarl/a-intnam__solaris.ads \
1648 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1649 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1650 s-intman.adb<libgnarl/s-intman__solaris.adb \
1651 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1652 s-osinte.adb<libgnarl/s-osinte__solaris.adb \
1653 s-osinte.ads<libgnarl/s-osinte__solaris.ads \
1654 s-osprim.adb<libgnat/s-osprim__solaris.adb \
1655 s-taprop.adb<libgnarl/s-taprop__solaris.adb \
1656 s-tasinf.adb<libgnarl/s-tasinf__solaris.adb \
1657 s-tasinf.ads<libgnarl/s-tasinf__solaris.ads \
1658 s-taspri.ads<libgnarl/s-taspri__solaris.ads \
1659 s-tpopsp.adb<libgnarl/s-tpopsp__solaris.adb \
1660 g-soliop.ads<libgnat/g-soliop__solaris.ads \
1661 $(TRASYM_DWARF_UNIX_PAIRS) \
1662 $(ATOMICS_TARGET_PAIRS) \
1663 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1664 system.ads<libgnat/system-solaris-sparc.ads
1666 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1668 ifeq ($(strip $(filter-out sparc64 sparcv9,$(target_cpu))),)
1669 ifneq ($(strip $(MULTISUBDIR)),/sparcv8plus)
1670 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1671 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1674 ifeq ($(strip $(MULTISUBDIR)),/sparcv9)
1675 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1676 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1681 MISCLIB = -lnsl -lsocket
1683 GNATLIB_SHARED = gnatlib-shared-dual
1685 LIBRARY_VERSION := $(LIB_VERSION)
1688 # x86 and x86-64 Solaris
1689 ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(target_cpu) $(target_os))),)
1690 LIBGNAT_TARGET_PAIRS_COMMON = \
1691 a-intnam.ads<libgnarl/a-intnam__solaris.ads \
1692 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1693 s-intman.adb<libgnarl/s-intman__solaris.adb \
1694 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1695 s-osinte.adb<libgnarl/s-osinte__solaris.adb \
1696 s-osinte.ads<libgnarl/s-osinte__solaris.ads \
1697 s-osprim.adb<libgnat/s-osprim__solaris.adb \
1698 s-taprop.adb<libgnarl/s-taprop__solaris.adb \
1699 s-tasinf.adb<libgnarl/s-tasinf__solaris.adb \
1700 s-tasinf.ads<libgnarl/s-tasinf__solaris.ads \
1701 s-taspri.ads<libgnarl/s-taspri__solaris.ads \
1702 s-tpopsp.adb<libgnarl/s-tpopsp__solaris.adb \
1703 g-soliop.ads<libgnat/g-soliop__solaris.ads \
1704 $(TRASYM_DWARF_UNIX_PAIRS) \
1705 $(ATOMICS_TARGET_PAIRS) \
1706 system.ads<libgnat/system-solaris-x86.ads
1708 ifeq ($(strip $(filter-out %86 solaris2%,$(target_cpu) $(target_os))),)
1709 ifeq ($(strip $(MULTISUBDIR)),/amd64)
1710 LIBGNAT_TARGET_PAIRS = \
1711 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_64_TARGET_PAIRS)
1712 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1713 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1715 LIBGNAT_TARGET_PAIRS = \
1716 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_TARGET_PAIRS)
1719 ifeq ($(strip $(MULTISUBDIR)),/32)
1720 LIBGNAT_TARGET_PAIRS = \
1721 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_TARGET_PAIRS)
1723 LIBGNAT_TARGET_PAIRS = \
1724 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_64_TARGET_PAIRS)
1725 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1726 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1730 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1731 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1734 MISCLIB = -lnsl -lsocket
1736 GNATLIB_SHARED = gnatlib-shared-dual
1738 LIBRARY_VERSION := $(LIB_VERSION)
1742 ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),)
1743 LIBGNAT_TARGET_PAIRS = \
1744 a-intnam.ads<libgnarl/a-intnam__linux.ads \
1745 a-synbar.adb<libgnarl/a-synbar__posix.adb \
1746 a-synbar.ads<libgnarl/a-synbar__posix.ads \
1747 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1748 s-intman.adb<libgnarl/s-intman__posix.adb \
1749 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
1750 $(TRASYM_DWARF_UNIX_PAIRS) \
1751 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
1752 a-exetim.adb<libgnarl/a-exetim__posix.adb \
1753 a-exetim.ads<libgnarl/a-exetim__default.ads \
1754 s-linux.ads<libgnarl/s-linux.ads \
1755 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1756 $(ATOMICS_TARGET_PAIRS) \
1757 system.ads<libgnat/system-linux-x86.ads
1759 ifeq ($(strip $(MULTISUBDIR)),/64)
1760 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
1761 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
1762 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1764 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
1767 LIBGNAT_TARGET_PAIRS += \
1768 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1769 s-osinte.ads<libgnarl/s-osinte__linux.ads \
1770 s-osprim.adb<libgnat/s-osprim__posix.adb \
1771 s-taprop.adb<libgnarl/s-taprop__linux.adb \
1772 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
1773 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
1774 s-taspri.ads<libgnarl/s-taspri__posix.ads
1777 THREADSLIB = -lpthread -lrt
1778 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1779 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1780 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
1782 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1784 GNATLIB_SHARED = gnatlib-shared-dual
1787 LIBRARY_VERSION := $(LIB_VERSION)
1789 GNATLIBCFLAGS_FOR_GCCSJLJ+=-fno-omit-frame-pointer -momit-leaf-frame-pointer
1793 ifeq ($(strip $(filter-out %86 kfreebsd%,$(target_cpu) $(target_os))),)
1794 LIBGNAT_TARGET_PAIRS = \
1795 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1796 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1797 s-intman.adb<libgnarl/s-intman__posix.adb \
1798 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1799 s-osinte.ads<libgnarl/s-osinte__kfreebsd-gnu.ads \
1800 s-osprim.adb<libgnat/s-osprim__posix.adb \
1801 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1802 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1803 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1804 $(TRASYM_DWARF_UNIX_PAIRS) \
1805 $(ATOMICS_TARGET_PAIRS) \
1806 $(X86_TARGET_PAIRS) \
1807 system.ads<libgnat/system-freebsd.ads
1809 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1811 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1812 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1815 THREADSLIB = -lpthread
1816 GNATLIB_SHARED = gnatlib-shared-dual
1818 LIBRARY_VERSION := $(LIB_VERSION)
1822 # i[3456]86-pc-gnu i.e. GNU Hurd
1823 ifeq ($(strip $(filter-out %86 pc gnu,$(target_cpu) $(target_vendor) $(target_os))),)
1824 LIBGNAT_TARGET_PAIRS = \
1825 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1826 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1827 s-intman.adb<libgnarl/s-intman__posix.adb \
1828 s-osinte.adb<libgnarl/s-osinte__gnu.adb \
1829 s-osinte.ads<libgnarl/s-osinte__gnu.ads \
1830 s-osprim.adb<libgnat/s-osprim__posix.adb \
1831 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1832 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1833 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1834 $(ATOMICS_TARGET_PAIRS) \
1835 $(X86_TARGET_PAIRS) \
1836 system.ads<libgnat/system-freebsd.ads
1838 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1840 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
1843 THREADSLIB = -lpthread
1844 GNATLIB_SHARED = gnatlib-shared-dual
1846 LIBRARY_VERSION := $(LIB_VERSION)
1849 ifeq ($(strip $(filter-out x86_64 kfreebsd%,$(target_cpu) $(target_os))),)
1850 LIBGNAT_TARGET_PAIRS = \
1851 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1852 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1853 s-intman.adb<libgnarl/s-intman__posix.adb \
1854 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1855 s-osinte.ads<libgnarl/s-osinte__kfreebsd-gnu.ads \
1856 s-osprim.adb<libgnat/s-osprim__posix.adb \
1857 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1858 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1859 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1860 $(ATOMICS_TARGET_PAIRS) \
1861 $(X86_64_TARGET_PAIRS) \
1862 $(GNATRTL_128BIT_PAIRS) \
1863 system.ads<libgnat/system-freebsd.ads
1865 EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
1867 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1870 THREADSLIB = -lpthread
1871 GNATLIB_SHARED = gnatlib-shared-dual
1873 LIBRARY_VERSION := $(LIB_VERSION)
1877 ifeq ($(strip $(filter-out %aarch64 freebsd%,$(target_cpu) $(target_os))),)
1878 LIBGNAT_TARGET_PAIRS = \
1879 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1880 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
1881 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1882 s-intman.adb<libgnarl/s-intman__posix.adb \
1883 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1884 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1885 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1886 s-osprim.adb<libgnat/s-osprim__posix.adb \
1887 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1888 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1889 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1890 $(ATOMICS_TARGET_PAIRS) \
1891 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1892 $(GNATRTL_128BIT_PAIRS) \
1893 system.ads<libgnat/system-freebsd.ads
1895 EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
1897 GNATLIB_SHARED = gnatlib-shared-dual
1900 THREADSLIB= -lpthread
1902 LIBRARY_VERSION := $(LIB_VERSION)
1907 ifeq ($(strip $(filter-out %86 freebsd%,$(target_cpu) $(target_os))),)
1908 LIBGNAT_TARGET_PAIRS = \
1909 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1910 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1911 s-intman.adb<libgnarl/s-intman__posix.adb \
1912 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1913 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1914 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1915 s-osprim.adb<libgnat/s-osprim__posix.adb \
1916 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1917 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1918 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1919 $(TRASYM_DWARF_UNIX_PAIRS) \
1920 $(ATOMICS_TARGET_PAIRS) \
1921 $(X86_TARGET_PAIRS) \
1922 system.ads<libgnat/system-freebsd.ads
1924 GNATLIB_SHARED = gnatlib-shared-dual
1926 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1927 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1930 THREADSLIB= -lpthread
1932 LIBRARY_VERSION := $(LIB_VERSION)
1937 ifeq ($(strip $(filter-out %86_64 freebsd%,$(target_cpu) $(target_os))),)
1938 LIBGNAT_TARGET_PAIRS = \
1939 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1940 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1941 s-intman.adb<libgnarl/s-intman__posix.adb \
1942 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1943 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1944 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1945 s-osprim.adb<libgnat/s-osprim__posix.adb \
1946 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1947 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1948 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1949 $(TRASYM_DWARF_UNIX_PAIRS) \
1950 $(ATOMICS_TARGET_PAIRS) \
1951 $(X86_64_TARGET_PAIRS) \
1952 $(GNATRTL_128BIT_PAIRS) \
1953 system.ads<libgnat/system-freebsd.ads
1955 GNATLIB_SHARED = gnatlib-shared-dual
1957 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1958 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1959 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1962 THREADSLIB= -lpthread
1964 LIBRARY_VERSION := $(LIB_VERSION)
1969 ifeq ($(strip $(filter-out %86_64 dragonfly%,$(target_cpu) $(target_os))),)
1970 LIBGNAT_TARGET_PAIRS = \
1971 a-intnam.ads<libgnarl/a-intnam__dragonfly.ads \
1972 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1973 s-intman.adb<libgnarl/s-intman__posix.adb \
1974 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1975 s-osinte.adb<libgnarl/s-osinte__dragonfly.adb \
1976 s-osinte.ads<libgnarl/s-osinte__dragonfly.ads \
1977 s-osprim.adb<libgnat/s-osprim__posix.adb \
1978 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1979 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1980 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1981 $(ATOMICS_TARGET_PAIRS) \
1982 $(X86_64_TARGET_PAIRS) \
1983 $(GNATRTL_128BIT_PAIRS) \
1984 system.ads<libgnat/system-dragonfly-x86_64.ads
1986 GNATLIB_SHARED = gnatlib-shared-dual
1988 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1989 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
1992 THREADSLIB= -lpthread
1994 LIBRARY_VERSION := $(LIB_VERSION)
1999 ifeq ($(strip $(filter-out s390% linux%,$(target_cpu) $(target_os))),)
2000 LIBGNAT_TARGET_PAIRS = \
2001 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2002 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2003 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2004 s-intman.adb<libgnarl/s-intman__posix.adb \
2005 s-linux.ads<libgnarl/s-linux.ads \
2006 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2007 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2008 s-osprim.adb<libgnat/s-osprim__posix.adb \
2009 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2010 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2011 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2012 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2013 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2014 system.ads<libgnat/system-linux-s390.ads
2016 ifeq ($(strip $(filter-out s390x,$(target_cpu))),)
2017 ifneq ($(strip $(MULTISUBDIR)),/32)
2018 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2019 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2022 ifeq ($(strip $(MULTISUBDIR)),/64)
2023 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2024 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2028 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2030 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2032 THREADSLIB = -lpthread
2033 GNATLIB_SHARED = gnatlib-shared-dual
2034 LIBRARY_VERSION := $(LIB_VERSION)
2038 ifeq ($(strip $(filter-out hppa% hp hpux10%,$(target_cpu) $(target_vendor) $(target_os))),)
2039 LIBGNAT_TARGET_PAIRS = \
2040 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
2041 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2042 s-interr.adb<libgnarl/s-interr__sigaction.adb \
2043 s-intman.adb<libgnarl/s-intman__posix.adb \
2044 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2045 s-osinte.adb<libgnarl/s-osinte__hpux-dce.adb \
2046 s-osinte.ads<libgnarl/s-osinte__hpux-dce.ads \
2047 s-parame.ads<libgnat/s-parame__hpux.ads \
2048 s-osprim.adb<libgnat/s-osprim__posix.adb \
2049 s-taprop.adb<libgnarl/s-taprop__hpux-dce.adb \
2050 s-taspri.ads<libgnarl/s-taspri__hpux-dce.ads \
2051 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
2052 system.ads<libgnat/system-hpux.ads
2058 ifeq ($(strip $(filter-out hppa% hp hpux11%,$(target_cpu) $(target_vendor) $(target_os))),)
2059 LIBGNAT_TARGET_PAIRS = \
2060 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
2061 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2062 s-intman.adb<libgnarl/s-intman__posix.adb \
2063 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2064 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2065 s-osinte.ads<libgnarl/s-osinte__hpux.ads \
2066 s-parame.ads<libgnat/s-parame__hpux.ads \
2067 s-osprim.adb<libgnat/s-osprim__posix.adb \
2068 s-traceb.adb<libgnat/s-traceb__hpux.adb \
2069 s-taprop.adb<libgnarl/s-taprop__posix.adb \
2070 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2071 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2072 system.ads<libgnat/system-hpux.ads
2075 TGT_LIB = /usr/lib/libcl.a
2076 THREADSLIB = -lpthread
2080 GNATLIB_SHARED = gnatlib-shared-dual
2081 LIBRARY_VERSION := $(LIB_VERSION)
2085 ifeq ($(strip $(filter-out ibm aix%,$(target_vendor) $(target_os))),)
2086 LIBGNAT_TARGET_PAIRS = \
2087 a-intnam.ads<libgnarl/a-intnam__aix.ads \
2088 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2089 s-intman.adb<libgnarl/s-intman__posix.adb \
2090 s-osinte.adb<libgnarl/s-osinte__aix.adb \
2091 s-osinte.ads<libgnarl/s-osinte__aix.ads \
2092 s-osprim.adb<libgnat/s-osprim__posix.adb \
2093 s-taprop.adb<libgnarl/s-taprop__posix.adb \
2094 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2095 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
2096 $(TRASYM_DWARF_UNIX_PAIRS) \
2097 $(ATOMICS_TARGET_PAIRS) \
2098 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2099 system.ads<libgnat/system-aix.ads
2101 ifneq ($(target_os),)
2102 ifeq ($(findstring ppc64, \
2103 $(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) \
2104 -print-multi-os-directory)), \
2106 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-aix.adb
2108 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2112 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2114 THREADSLIB = -lpthreads
2120 # LynxOS 178 and LynxOS 178 Elf
2121 ifeq ($(strip $(filter-out lynxos178%,$(target_os))),)
2122 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2124 LIBGNAT_TARGET_PAIRS = \
2125 a-intnam.ads<libgnarl/a-intnam__lynxos.ads \
2126 a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \
2127 a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \
2128 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2129 g-soliop.ads<libgnat/g-soliop__lynxos.ads \
2130 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2131 s-intman.adb<libgnarl/s-intman__lynxos.adb \
2132 s-osinte.adb<libgnarl/s-osinte__lynxos178.adb \
2133 s-osprim.ads<libgnat/s-osprim__lynxos.ads \
2134 s-taprop.adb<libgnarl/s-taprop__posix.adb \
2135 s-taspri.ads<libgnarl/s-taspri__lynxos.ads \
2136 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb
2138 ifeq ($(strip $(filter-out powerpc%, $(target_cpu))),)
2139 LIBGNAT_TARGET_PAIRS += system.ads<libgnat/system-lynxos178-ppc.ads
2141 ifeq ($(strip $(filter-out %86, $(target_cpu))),)
2142 LIBGNAT_TARGET_PAIRS += system.ads<libgnat/system-lynxos178-x86.ads
2145 ifeq ($(strip $(filter-out lynxos178e,$(target_os))),)
2146 LIBGNAT_TARGET_PAIRS += \
2147 s-osinte.ads<libgnarl/s-osinte__lynxos178e.ads \
2148 s-osprim.adb<libgnat/s-osprim__posix2008.adb \
2149 s-tracon.adb<hie/s-tracon__ppc-eabi.adb
2156 ifeq ($(strip $(filter-out rtems%,$(target_os))),)
2157 LIBGNAT_TARGET_PAIRS = \
2158 system.ads<libgnat/system-rtems.ads \
2159 a-intnam.ads<libgnarl/a-intnam__rtems.ads \
2160 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2161 s-intman.adb<libgnarl/s-intman__posix.adb \
2162 s-osinte.adb<libgnarl/s-osinte__rtems.adb \
2163 s-osinte.ads<libgnarl/s-osinte__rtems.ads \
2164 s-osprim.adb<libgnat/s-osprim__rtems.adb \
2165 s-parame.adb<libgnat/s-parame__rtems.adb \
2166 s-taprop.adb<libgnarl/s-taprop__posix.adb \
2167 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2168 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2169 s-stchop.adb<libgnat/s-stchop__rtems.adb \
2170 s-interr.adb<libgnarl/s-interr__hwint.adb
2172 ifeq ($(strip $(filter-out arm%, $(target_cpu))),)
2178 ifeq ($(strip $(filter-out riscv%,$(target_cpu))),)
2179 LIBGNAT_TARGET_PAIRS += a-nallfl.ads<libgnat/a-nallfl__wraplf.ads
2184 ifeq ($(strip $(filter-out powerpc% %86 sysgo pikeos,$(target_cpu) $(target_vendor) $(target_os)))),)
2185 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
2188 # *-elf, *-eabi, or *-eabispe
2189 ifeq ($(strip $(filter-out elf eabi eabispe,$(target_os))),)
2190 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
2193 ifeq ($(strip $(filter-out %djgpp,$(target_os))),)
2194 GNATRTL_SOCKETS_OBJS =
2196 LIBGNAT_TARGET_PAIRS = \
2197 a-intnam.ads<libgnarl/a-intnam__dummy.ads \
2198 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
2199 s-intman.adb<libgnarl/s-intman__dummy.adb \
2200 s-osinte.ads<libgnarl/s-osinte__dummy.ads \
2201 s-osprim.adb<libgnat/s-osprim__unix.adb \
2202 s-taprop.adb<libgnarl/s-taprop__dummy.adb \
2203 s-taspri.ads<libgnarl/s-taspri__dummy.ads \
2204 system.ads<libgnat/system-djgpp.ads \
2205 $(DUMMY_SOCKETS_TARGET_PAIRS)
2211 ifeq ($(strip $(filter-out cygwin% mingw32% pe,$(target_os))),)
2212 # Cygwin provides a full Posix environment, and so we use the default
2213 # versions g-socthi rather than the Windows-specific MinGW version.
2214 # Ideally we would use all the default versions for Cygwin and none
2215 # of the MinGW versions, but for historical reasons the Cygwin port
2216 # has always been a CygMing frankenhybrid and it is a long-term project
2217 # to disentangle them.
2218 ifeq ($(strip $(filter-out cygwin%,$(target_os))),)
2219 LIBGNAT_TARGET_PAIRS = \
2220 g-socthi.ads<libgnat/g-socthi.ads \
2221 g-socthi.adb<libgnat/g-socthi.adb
2223 LIBGNAT_TARGET_PAIRS = \
2224 g-socthi.ads<libgnat/g-socthi__mingw.ads \
2225 g-socthi.adb<libgnat/g-socthi__mingw.adb \
2226 g-sopowa.adb<libgnat/g-sopowa__mingw.adb
2228 LIBGNAT_TARGET_PAIRS += \
2229 a-dirval.adb<libgnat/a-dirval__mingw.adb \
2230 s-gloloc.adb<libgnat/s-gloloc__mingw.adb \
2231 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
2232 s-taspri.ads<libgnarl/s-taspri__mingw.ads \
2233 s-tasinf.adb<libgnarl/s-tasinf__mingw.adb \
2234 s-tasinf.ads<libgnarl/s-tasinf__mingw.ads \
2235 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
2236 g-soliop.ads<libgnat/g-soliop__mingw.ads \
2237 $(ATOMICS_TARGET_PAIRS) \
2238 system.ads<libgnat/system-mingw.ads
2240 LIBGNAT_TARGET_PAIRS += \
2241 a-exetim.adb<libgnarl/a-exetim__mingw.adb \
2242 a-exetim.ads<libgnarl/a-exetim__mingw.ads \
2243 a-intnam.ads<libgnarl/a-intnam__mingw.ads \
2244 g-sercom.adb<libgnat/g-sercom__mingw.adb \
2245 $(TRASYM_DWARF_MINGW_PAIRS) \
2246 s-tsmona.adb<libgnat/s-tsmona__mingw.adb \
2247 s-interr.adb<libgnarl/s-interr__sigaction.adb \
2248 s-intman.adb<libgnarl/s-intman__mingw.adb \
2249 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2250 s-osinte.ads<libgnarl/s-osinte__mingw.ads \
2251 s-osprim.adb<libgnat/s-osprim__mingw.adb \
2252 s-taprop.adb<libgnarl/s-taprop__mingw.adb
2254 ifeq ($(strip $(filter-out x86_64%,$(target_cpu))),)
2255 ifeq ($(strip $(MULTISUBDIR)),/32)
2256 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2257 SO_OPTS= -m32 -Wl,-soname,
2259 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS) $(GNATRTL_128BIT_PAIRS)
2260 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2261 SO_OPTS = -m64 -Wl,-soname,
2264 ifeq ($(strip $(MULTISUBDIR)),/64)
2265 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS) $(GNATRTL_128BIT_PAIRS)
2266 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2267 SO_OPTS = -m64 -Wl,-soname,
2269 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2270 SO_OPTS = -m32 -Wl,-soname,
2274 EXTRA_GNATRTL_NONTASKING_OBJS += \
2275 s-win32.o s-winext.o g-regist.o g-sse.o g-ssvety.o
2276 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_MINGW_OBJS)
2277 EXTRA_GNATRTL_TASKING_OBJS = a-exetim.o
2278 EXTRA_LIBGNAT_SRCS+=mingw32.h
2281 # ??? This will be replaced by gnatlib-shared-dual-win32 when GNAT
2282 # auto-import support for array/record will be done.
2283 GNATLIB_SHARED = gnatlib-shared-win32
2287 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
2290 EXTRA_GNATTOOLS = ../../gnatdll$(exeext)
2291 EXTRA_GNATMAKE_OBJS = mdll.o mdll-utl.o mdll-fil.o
2293 LIBRARY_VERSION := $(LIB_VERSION)
2297 ifeq ($(strip $(filter-out mips% linux%,$(target_cpu) $(target_os))),)
2298 LIBGNAT_TARGET_PAIRS = \
2299 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2300 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2301 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2302 s-intman.adb<libgnarl/s-intman__posix.adb \
2303 s-linux.ads<libgnarl/s-linux__mips.ads \
2304 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2305 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2306 s-osprim.adb<libgnat/s-osprim__posix.adb \
2307 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2308 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2309 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2310 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2311 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2312 system.ads<libgnat/system-linux-mips.ads
2314 ifeq ($(strip $(filter-out mips64% mipsisa64%,$(target_cpu))),)
2315 ifneq ($(strip $(MULTISUBDIR)),/32)
2316 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2317 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2320 ifneq ($(strip $(filter /64 /n32,$(MULTISUBDIR))),)
2321 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2322 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2326 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2328 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2330 THREADSLIB = -lpthread
2331 GNATLIB_SHARED = gnatlib-shared-dual
2333 LIBRARY_VERSION := $(LIB_VERSION)
2336 # PowerPC and e500v2 Linux
2337 ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
2338 LIBGNAT_TARGET_PAIRS = \
2339 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2340 a-exetim.ads<libgnarl/a-exetim__default.ads \
2341 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2342 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2343 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2344 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2345 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2346 s-intman.adb<libgnarl/s-intman__posix.adb \
2347 s-linux.ads<libgnarl/s-linux.ads \
2348 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2349 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2350 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2351 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2352 s-osprim.adb<libgnat/s-osprim__posix.adb \
2353 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2354 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2355 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2356 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2357 $(TRASYM_DWARF_UNIX_PAIRS) \
2358 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2359 $(ATOMICS_TARGET_PAIRS) \
2360 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2361 system.ads<libgnat/system-linux-ppc.ads
2363 ifeq ($(strip $(filter-out powerpc64%,$(target_cpu))),)
2364 ifneq ($(strip $(MULTISUBDIR)),/32)
2365 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2366 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2369 ifeq ($(strip $(MULTISUBDIR)),/64)
2370 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2371 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2375 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2377 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2378 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2381 THREADSLIB = -lpthread -lrt
2382 GNATLIB_SHARED = gnatlib-shared-dual
2385 LIBRARY_VERSION := $(LIB_VERSION)
2388 # ARM linux, GNU eabi
2389 ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),)
2390 LIBGNAT_TARGET_PAIRS = \
2391 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2392 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2393 s-intman.adb<libgnarl/s-intman__posix.adb \
2394 s-linux.ads<libgnarl/s-linux.ads \
2395 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2396 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2397 s-osprim.adb<libgnat/s-osprim__posix.adb \
2398 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2399 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2400 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2401 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2402 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2403 $(TRASYM_DWARF_UNIX_PAIRS) \
2404 $(ATOMICS_TARGET_PAIRS) \
2405 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2406 system.ads<libgnat/system-linux-arm.ads
2408 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2410 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2411 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2413 THREADSLIB = -lpthread
2414 GNATLIB_SHARED = gnatlib-shared-dual
2416 LIBRARY_VERSION := $(LIB_VERSION)
2420 ifeq ($(strip $(filter-out aarch64% linux%,$(target_cpu) $(target_os))),)
2421 LIBGNAT_TARGET_PAIRS = \
2422 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2423 a-exetim.ads<libgnarl/a-exetim__default.ads \
2424 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2425 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2426 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2427 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2428 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2429 s-intman.adb<libgnarl/s-intman__posix.adb \
2430 s-linux.ads<libgnarl/s-linux.ads \
2431 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2432 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2433 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2434 s-osprim.adb<libgnat/s-osprim__posix.adb \
2435 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2436 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2437 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2438 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2439 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2440 $(ATOMICS_TARGET_PAIRS) \
2441 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2442 $(GNATRTL_128BIT_PAIRS) \
2443 system.ads<libgnat/system-linux-arm.ads
2445 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2447 EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
2448 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2450 THREADSLIB=-lpthread -lrt
2451 GNATLIB_SHARED=gnatlib-shared-dual
2453 LIBRARY_VERSION := $(LIB_VERSION)
2457 ifeq ($(strip $(filter-out sparc% linux%,$(target_cpu) $(target_os))),)
2458 LIBGNAT_TARGET_PAIRS = \
2459 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2460 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2461 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2462 s-intman.adb<libgnarl/s-intman__posix.adb \
2463 s-linux.ads<libgnarl/s-linux__sparc.ads \
2464 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2465 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2466 s-osprim.adb<libgnat/s-osprim__posix.adb \
2467 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2468 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2469 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2470 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2471 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2472 system.ads<libgnat/system-linux-sparc.ads
2474 ifeq ($(strip $(filter-out sparc64 sparcv9,$(target_cpu))),)
2475 ifneq ($(strip $(MULTISUBDIR)),/32)
2476 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2477 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2480 ifeq ($(strip $(MULTISUBDIR)),/64)
2481 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2482 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2486 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2488 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2490 THREADSLIB = -lpthread
2491 GNATLIB_SHARED = gnatlib-shared-dual
2493 LIBRARY_VERSION := $(LIB_VERSION)
2497 ifeq ($(strip $(filter-out hppa% linux%,$(target_cpu) $(target_os))),)
2498 LIBGNAT_TARGET_PAIRS = \
2499 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2500 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2501 s-intman.adb<libgnarl/s-intman__posix.adb \
2502 s-linux.ads<libgnarl/s-linux__hppa.ads \
2503 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2504 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2505 s-osprim.adb<libgnat/s-osprim__posix.adb \
2506 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2507 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2508 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2509 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2510 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2511 system.ads<libgnat/system-linux-hppa.ads
2513 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2515 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2517 THREADSLIB = -lpthread
2518 GNATLIB_SHARED = gnatlib-shared-dual
2520 LIBRARY_VERSION := $(LIB_VERSION)
2524 ifeq ($(strip $(filter-out m68k% linux%,$(target_cpu) $(target_os))),)
2525 LIBGNAT_TARGET_PAIRS = \
2526 a-intnam.ads<libgnarl/a-intnam__linux.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-osinte.adb<libgnarl/s-osinte__posix.adb \
2531 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2532 s-osprim.adb<libgnat/s-osprim__posix.adb \
2533 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2534 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2535 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2536 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2537 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2538 system.ads<libgnat/system-linux-m68k.ads
2540 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2542 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2544 THREADSLIB = -lpthread
2545 GNATLIB_SHARED = gnatlib-shared-dual
2547 LIBRARY_VERSION := $(LIB_VERSION)
2551 ifeq ($(strip $(filter-out sh4% linux%,$(target_cpu) $(target_os))),)
2552 LIBGNAT_TARGET_PAIRS = \
2553 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2554 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2555 s-intman.adb<libgnarl/s-intman__posix.adb \
2556 s-linux.ads<libgnarl/s-linux.ads \
2557 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2558 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2559 s-osprim.adb<libgnat/s-osprim__posix.adb \
2560 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2561 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2562 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2563 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2564 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2565 system.ads<libgnat/system-linux-sh4.ads
2567 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-linux.adb
2569 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2572 THREADSLIB = -lpthread
2573 GNATLIB_SHARED = gnatlib-shared-dual
2575 LIBRARY_VERSION := $(LIB_VERSION)
2579 ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
2580 LIBGNAT_TARGET_PAIRS = \
2581 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2582 a-exetim.ads<libgnarl/a-exetim__default.ads \
2583 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2584 a-nuauco.ads<libgnat/a-nuauco__x86.ads \
2585 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2586 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2587 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2588 s-intman.adb<libgnarl/s-intman__posix.adb \
2589 s-linux.ads<libgnarl/s-linux.ads \
2590 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2591 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2592 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2593 s-osprim.adb<libgnat/s-osprim__posix.adb \
2594 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2595 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2596 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2597 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2598 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2599 $(TRASYM_DWARF_UNIX_PAIRS) \
2600 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2601 $(ATOMICS_TARGET_PAIRS) \
2602 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2603 $(GNATRTL_128BIT_PAIRS) \
2604 system.ads<libgnat/system-linux-ia64.ads
2606 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2608 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2609 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2610 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2612 THREADSLIB=-lpthread -lrt
2613 GNATLIB_SHARED=gnatlib-shared-dual
2616 LIBRARY_VERSION := $(LIB_VERSION)
2620 ifeq ($(strip $(filter-out ia64% hp hpux%,$(target_cpu) $(target_vendor) $(target_os))),)
2621 LIBGNAT_TARGET_PAIRS = \
2622 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
2623 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2624 s-intman.adb<libgnarl/s-intman__posix.adb \
2625 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2626 s-osinte.ads<libgnarl/s-osinte__hpux.ads \
2627 s-osprim.adb<libgnat/s-osprim__posix.adb \
2628 s-taprop.adb<libgnarl/s-taprop__posix.adb \
2629 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2630 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2631 $(TRASYM_DWARF_UNIX_PAIRS) \
2632 $(ATOMICS_TARGET_PAIRS) \
2633 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2634 $(GNATRTL_128BIT_PAIRS) \
2635 system.ads<libgnat/system-hpux-ia64.ads
2637 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2638 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2642 THREADSLIB=-lpthread
2643 GNATLIB_SHARED=gnatlib-shared-dual
2647 LIBRARY_VERSION := $(LIB_VERSION)
2651 ifeq ($(strip $(filter-out alpha% linux%,$(target_cpu) $(target_os))),)
2652 LIBGNAT_TARGET_PAIRS = \
2653 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2654 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2655 s-intman.adb<libgnarl/s-intman__posix.adb \
2656 s-linux.ads<libgnarl/s-linux__alpha.ads \
2657 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2658 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2659 s-osprim.adb<libgnat/s-osprim__posix.adb \
2660 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2661 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2662 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2663 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2664 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2665 $(ATOMICS_TARGET_PAIRS) \
2666 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2667 $(GNATRTL_128BIT_PAIRS) \
2668 system.ads<libgnat/system-linux-alpha.ads
2670 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2672 EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS)
2673 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2676 THREADSLIB=-lpthread
2677 GNATLIB_SHARED=gnatlib-shared-dual
2678 LIBRARY_VERSION := $(LIB_VERSION)
2682 ifeq ($(strip $(filter-out %x86_64 linux%,$(target_cpu) $(target_os))),)
2683 LIBGNAT_TARGET_PAIRS = \
2684 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2685 a-exetim.ads<libgnarl/a-exetim__default.ads \
2686 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2687 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2688 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2689 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2690 s-intman.adb<libgnarl/s-intman__posix.adb \
2691 s-linux.ads<libgnarl/s-linux.ads \
2692 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2693 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2694 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2695 s-osprim.adb<libgnat/s-osprim__posix.adb \
2696 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2697 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2698 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2699 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2700 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2701 $(TRASYM_DWARF_UNIX_PAIRS) \
2702 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2703 $(ATOMICS_TARGET_PAIRS) \
2704 $(X86_64_TARGET_PAIRS) \
2705 $(GNATRTL_128BIT_PAIRS) \
2706 system.ads<libgnat/system-linux-x86.ads
2708 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2710 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
2711 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2712 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2713 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2716 THREADSLIB=-lpthread -lrt
2718 GNATLIB_SHARED=gnatlib-shared-dual
2720 LIBRARY_VERSION := $(LIB_VERSION)
2722 GNATLIBCFLAGS_FOR_GCCSJLJ+=-fno-omit-frame-pointer -momit-leaf-frame-pointer
2725 ifeq ($(strip $(filter-out %x32 linux%,$(target_cpu) $(target_os))),)
2726 LIBGNAT_TARGET_PAIRS = \
2727 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2728 a-exetim.ads<libgnarl/a-exetim__default.ads \
2729 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2730 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2731 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2732 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2733 s-intman.adb<libgnarl/s-intman__posix.adb \
2734 s-linux.ads<libgnarl/s-linux__x32.ads \
2735 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2736 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2737 s-osinte.adb<libgnarl/s-osinte__x32.adb \
2738 s-osprim.adb<libgnat/s-osprim__x32.adb \
2739 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2740 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2741 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2742 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2743 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2744 $(ATOMICS_TARGET_PAIRS) \
2745 $(X86_64_TARGET_PAIRS) \
2746 system.ads<libgnat/system-linux-x86.ads
2748 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2750 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
2751 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2753 THREADSLIB=-lpthread -lrt
2754 GNATLIB_SHARED=gnatlib-shared-dual
2756 LIBRARY_VERSION := $(LIB_VERSION)
2760 ifeq ($(strip $(filter-out riscv% linux%,$(target_cpu) $(target_os))),)
2761 LIBGNAT_TARGET_PAIRS = \
2762 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2763 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2764 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2765 s-intman.adb<libgnarl/s-intman__posix.adb \
2766 s-linux.ads<libgnarl/s-linux__riscv.ads \
2767 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2768 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2769 s-osprim.adb<libgnat/s-osprim__posix.adb \
2770 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2771 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2772 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2773 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2774 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2775 system.ads<libgnat/system-linux-riscv.ads
2777 ifeq ($(strip $(filter-out riscv64,$(target_cpu))),)
2778 ifneq ($(strip $(MULTISUBDIR)),/lib32)
2779 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2780 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2783 ifeq ($(strip $(MULTISUBDIR)),/lib64)
2784 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2785 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2789 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2791 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2793 THREADSLIB = -lpthread
2794 GNATLIB_SHARED = gnatlib-shared-dual
2796 LIBRARY_VERSION := $(LIB_VERSION)
2800 ifeq ($(strip $(filter-out darwin%,$(target_os))),)
2801 SO_OPTS = -shared-libgcc
2802 LIBGNAT_TARGET_PAIRS = \
2803 a-intnam.ads<libgnarl/a-intnam__darwin.ads \
2804 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2805 s-osinte.adb<libgnarl/s-osinte__darwin.adb \
2806 s-osinte.ads<libgnarl/s-osinte__darwin.ads \
2807 s-taprop.adb<libgnarl/s-taprop__posix.adb \
2808 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2809 g-sercom.adb<libgnat/g-sercom__linux.adb \
2810 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb
2812 ifeq ($(strip $(filter-out %86,$(target_cpu))),)
2813 LIBGNAT_TARGET_PAIRS += \
2814 s-intman.adb<libgnarl/s-intman__susv3.adb \
2815 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2816 $(ATOMICS_TARGET_PAIRS) \
2817 system.ads<libgnat/system-darwin-x86.ads
2819 ifeq ($(strip $(MULTISUBDIR)),/x86_64)
2821 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2822 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2823 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2825 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2828 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
2831 ifeq ($(strip $(filter-out %x86_64,$(target_cpu))),)
2832 LIBGNAT_TARGET_PAIRS += \
2833 s-intman.adb<libgnarl/s-intman__susv3.adb \
2834 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2835 a-exetim.ads<libgnarl/a-exetim__default.ads \
2836 a-exetim.adb<libgnarl/a-exetim__darwin.adb \
2837 $(ATOMICS_TARGET_PAIRS) \
2838 system.ads<libgnat/system-darwin-x86.ads
2840 ifeq ($(strip $(MULTISUBDIR)),/i386)
2842 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2844 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2845 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2846 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2849 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
2850 EXTRA_GNATRTL_TASKING_OBJS=a-exetim.o
2853 ifeq ($(strip $(filter-out powerpc%,$(target_cpu))),)
2854 LIBGNAT_TARGET_PAIRS += \
2855 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2856 s-intman.adb<libgnarl/s-intman__posix.adb \
2857 s-osprim.adb<libgnat/s-osprim__posix.adb \
2858 $(ATOMICS_TARGET_PAIRS) \
2859 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2860 system.ads<libgnat/system-darwin-ppc.ads
2862 ifeq ($(strip $(filter-out powerpc64,$(target_cpu))),)
2863 ifneq ($(strip $(MULTISUBDIR)),/ppc)
2864 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2865 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2870 ifeq ($(strip $(MULTISUBDIR)),/ppc64)
2872 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS)
2873 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2878 ifeq ($(strip $(filter-out arm,$(target_cpu))),)
2879 LIBGNAT_TARGET_PAIRS += \
2880 s-intman.adb<libgnarl/s-intman__susv3.adb \
2881 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2882 $(ATOMICS_TARGET_PAIRS) \
2883 $(ATOMICS_BUILTINS_TARGET_PAIRS)
2885 LIBGNAT_TARGET_PAIRS += \
2886 system.ads<libgnat/system-darwin-arm.ads
2889 ifeq ($(strip $(filter-out arm64 aarch64,$(target_cpu))),)
2890 LIBGNAT_TARGET_PAIRS += \
2891 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \
2892 s-intman.adb<libgnarl/s-intman__susv3.adb \
2893 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2894 $(ATOMICS_TARGET_PAIRS) \
2895 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2896 $(GNATRTL_128BIT_PAIRS)
2898 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS)
2899 EXTRA_LIBGNAT_OBJS+=sigtramp-ios.o
2900 EXTRA_LIBGNAT_SRCS+=sigtramp.h
2901 LIBGNAT_TARGET_PAIRS += \
2902 system.ads<libgnat/system-darwin-arm.ads
2905 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-darwin.adb
2908 GNATLIB_SHARED = gnatlib-shared-darwin
2910 LIBRARY_VERSION := $(LIB_VERSION)
2912 GCC_LINK_FLAGS=-static-libstdc++
2915 ifeq ($(EH_MECHANISM),-gcc)
2916 LIBGNAT_TARGET_PAIRS += \
2917 s-excmac.ads<libgnat/s-excmac__gcc.ads \
2918 s-excmac.adb<libgnat/s-excmac__gcc.adb
2919 EXTRA_LIBGNAT_OBJS+=raise-gcc.o
2920 EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o
2923 ifeq ($(EH_MECHANISM),-arm)
2924 LIBGNAT_TARGET_PAIRS += \
2925 s-excmac.ads<libgnat/s-excmac__arm.ads \
2926 s-excmac.adb<libgnat/s-excmac__arm.adb
2927 EXTRA_LIBGNAT_OBJS+=raise-gcc.o
2928 EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o
2931 ifeq ($(strip $(filter-out linux%,$(target_os))),)
2932 LIBGNAT_TARGET_PAIRS += \
2933 g-sercom.adb<libgnat/g-sercom__linux.adb
2936 LIBGNAT_TARGET_PAIRS += \
2937 interfac.ads<libgnat/interfac__2020.ads
2939 # LIBGNAT_SRCS is the list of all C files (including headers) of the runtime
2940 # library. LIBGNAT_OBJS is the list of object files for libgnat.
2941 # thread.c is special as put into GNATRTL_TASKING_OBJS
2942 LIBGNAT_OBJS = adadecode.o adaint.o argv.o aux-io.o \
2943 cal.o cio.o cstreams.o ctrl_c.o \
2944 env.o errno.o exit.o expect.o final.o rtfinal.o rtinit.o \
2945 init.o initialize.o locales.o mkdir.o \
2946 raise.o seh_init.o socket.o sysdep.o \
2947 targext.o terminals.o tracebak.o \
2948 $(EXTRA_LIBGNAT_OBJS)
2950 # NOTE ??? - when the -I option for compiling Ada code is made to work,
2951 # the library installation will change and there will be a
2952 # GNAT_RTL_SRCS. Right now we count on being able to build GNATRTL_OBJS
2953 # from ADA_INCLUDE_SRCS.
2955 LIBGNAT_SRCS = $(patsubst %.o,%.c,$(LIBGNAT_OBJS)) \
2956 adadecode.h adaint.h env.h gsocket.h raise.h standard.ads.h \
2957 runtime.h $(EXTRA_LIBGNAT_SRCS)
2959 # memtrack.o is special as not put into libgnat.
2960 GNATRTL_OBJS = $(GNATRTL_NONTASKING_OBJS) $(GNATRTL_TASKING_OBJS) \
2963 # Run time source files
2964 # Note that libgnat contains a significant number of files. In orde to avoid
2965 # command line length limitations the source regexp has been split for that
2968 libgnat/ada.ads libgnat/calendar.ads libgnat/directio.ads libgnat/gnat.ads libgnat/interfac.ads libgnat/ioexcept.ads \
2969 libgnat/machcode.ads libgnat/text_io.ads libgnat/unchconv.ads libgnat/unchdeal.ads \
2970 libgnat/sequenio.ads libgnat/system.ads libgnat/memtrack.adb \
2972 libgnat/a-[a-o]*.adb libgnat/a-[a-o]*.ads \
2973 libgnat/a-[p-z]*.adb libgnat/a-[p-z]*.ads \
2974 libgnat/g-[a-o]*.adb libgnat/g-[a-o]*.ads \
2975 libgnat/g-[p-z]*.adb libgnat/g-[p-z]*.ads \
2976 libgnat/s-[a-o]*.adb libgnat/s-[a-o]*.ads \
2977 libgnat/s-[p-z]*.adb libgnat/s-[p-z]*.ads \
2978 libgnat/i-[a-o]*.adb libgnat/i-[a-o]*.ads \
2979 libgnat/i-[p-z]*.adb libgnat/i-[p-z]*.ads \
2980 libgnarl/[agis]-[a-z]*.ad[sb]
2983 # Files that are in ADA_INCLUDE_SRCS but not in all configurations.
2984 # They will be removed from the run time if not used.
2986 g-allein.ads g-alleve.adb g-alleve.ads g-altcon.adb g-altcon.ads \
2987 g-altive.ads g-alveop.adb g-alveop.ads g-alvety.ads g-alvevi.ads \
2988 g-intpri.ads g-regist.adb g-regist.ads g-sse.ads g-ssvety.ads \
2989 i-vxinco.adb i-vxinco.ads i-vxwoio.adb i-vxwoio.ads i-vxwork.ads \
2990 s-bb.ads s-bbbosu.ads s-bbcaco.ads s-bbcppr.ads s-bbexti.adb \
2991 s-bbexti.ads s-bbinte.adb s-bbinte.ads s-bbprot.adb s-bbprot.ads \
2992 s-bbsle3.ads s-bbsuer.ads s-bbsule.ads s-bbthqu.adb s-bbthqu.ads \
2993 s-bbthre.adb s-bbthre.ads s-bbtiev.adb s-bbtiev.ads s-bbtime.adb \
2994 s-bbtime.ads s-bcprmu.adb s-bcprmu.ads s-btstch.adb s-btstch.ads \
2995 s-gcc.adb s-gcc.ads s-gccdiv.adb s-gccdiv.ads \
2996 s-gccshi.adb s-gccshi.ads \
2997 s-init.ads s-init.adb s-linux.ads s-macres.ads \
2998 s-memcom.adb s-memcom.ads s-memmov.adb s-memmov.ads s-memset.adb \
2999 s-memset.ads s-mufalo.adb s-mufalo.ads s-musplo.adb s-musplo.ads \
3000 s-sam4.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb s-sopco4.ads \
3001 s-sopco5.adb s-sopco5.ads s-stchop.ads s-stchop.adb s-stm32.ads \
3002 s-strcom.adb s-strcom.ads s-thread.ads \
3003 s-vxwext.adb s-vxwext.ads \
3004 s-win32.ads s-winext.ads
3006 # ADA_EXCLUDE_SRCS without the sources used by the target
3007 ADA_EXCLUDE_FILES=$(filter-out \
3008 $(patsubst %$(objext),%.ads,$(GNATRTL_OBJS)) \
3009 $(patsubst %$(objext),%.adb,$(GNATRTL_OBJS)), \
3010 $(ADA_EXCLUDE_SRCS))
3015 $(CHMOD) u+w $(RTSDIR)
3016 # Copy target independent sources
3017 $(foreach f,$(ADA_INCLUDE_SRCS) $(LIBGNAT_SRCS) libgnarl/thread.c, \
3018 $(LN_S) $(GNAT_SRC)/$(f) $(RTSDIR) ;) true
3019 # Remove files not used
3020 $(RM) $(patsubst %,$(RTSDIR)/%,$(ADA_EXCLUDE_FILES))
3021 # Remove files to be replaced by target dependent sources
3022 $(RM) $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \
3023 $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR))))
3024 for f in $(RTSDIR)/*-*__*.ads $(RTSDIR)/*-*__*.adb; do \
3027 # Copy new target dependent sources
3028 $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \
3029 $(LN_S) $(GNAT_SRC)/$(word 2,$(subst <, ,$(PAIR))) \
3030 $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR)));)
3031 # And finally generate libgnat.lst and libgnarl.lst
3033 $(foreach F,$(GNATRTL_TASKING_OBJS),$(subst $(objext),.ads,$(F))) \
3034 $(foreach F,$(GNATRTL_TASKING_OBJS),$(subst $(objext),.adb,$(F))); \
3036 if [ -f $(RTSDIR)/$$f ]; then echo $$f >> $(RTSDIR)/libgnarl.lst; fi \
3038 @echo thread.c >> $(RTSDIR)/libgnarl.lst
3040 $(foreach F,$(GNATRTL_NONTASKING_OBJS),$(subst $(objext),.ads,$(F))) \
3041 $(foreach F,$(GNATRTL_NONTASKING_OBJS),$(subst $(objext),.adb,$(F))); \
3043 if [ -f $(RTSDIR)/$$f ]; then echo $$f >> $(RTSDIR)/libgnat.lst; fi \
3045 # s-oscons.ads is generated later, so hardcode it here
3046 @echo s-oscons.ads >> $(RTSDIR)/libgnat.lst
3047 @for f in $(LIBGNAT_SRCS); do \
3048 echo $$f >> $(RTSDIR)/libgnat.lst; \
3051 # Special flags. It is recommended not to change the compilation flags
3052 # without a careful analysis of the consequences because (part of) the
3053 # runtime implements low-level support that is outside of the semantics
3054 # of the language and therefore needs to be treated differently from the
3055 # other units. For example, the part of the runtime implementing the
3056 # propagation of exceptions cannot itself be compiled with checks that
3057 # may give rise to exceptions, e.g. stack overflow checks.
3059 # Generate target-dependent info into a file named ada_target_properties.
3060 # This information is used by tools for static analysis: they need to know
3061 # the size of standard types for a given run-time library. This metadata
3062 # is meant to be saved at the root of the run-time directory.
3064 ADA_TARGET_PROPERTIES = -gnatet=ada_target_properties
3066 system.o : system.ads
3067 $(ADAC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< \
3068 $(ADA_TARGET_PROPERTIES) \
3071 # Force no sibling call optimization on s-traceb.o so the number of stack
3072 # frames to be skipped when computing a call chain is not modified by
3073 # optimization. We don't want inlining, either.
3075 s-traceb.o : s-traceb.adb s-traceb.ads
3076 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) \
3077 $(NO_INLINE_ADAFLAGS) $(NO_SIBLING_ADAFLAGS) $(ADA_INCLUDES) $< \
3080 # Compile s-tasdeb.o without optimization and with debug info so that it is
3081 # always possible to set conditional breakpoints on tasks.
3083 s-tasdeb.o : s-tasdeb.adb s-tasdeb.ads
3084 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O0 $(ADA_INCLUDES) \
3087 # Force no function reordering on a-except.o because of the exclusion bounds
3088 # mechanism (see the source file for more detailed information).
3089 # force debugging information on a-except.o so that it is always
3090 # possible to set conditional breakpoints on exceptions.
3091 # use -O1 otherwise gdb isn't able to get a full backtrace on mips targets.
3093 a-except.o : a-except.adb a-except.ads
3094 $(ADAC) -c $(ALL_ADAFLAGS) -O1 $(FORCE_DEBUG_ADAFLAGS) \
3095 $(NO_INLINE_ADAFLAGS) $(NO_REORDER_ADAFLAGS) $(ADA_INCLUDES) \
3098 # Compile s-excdeb.o without optimization and with debug info to let the
3099 # debugger set breakpoints and inspect subprogram parameters on exception
3102 s-excdeb.o : s-excdeb.adb s-excdeb.ads s-except.ads
3103 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O0 \
3104 $(ADA_INCLUDES) $< $(OUTPUT_OPTION)
3106 # Force debugging information on s-assert.o so that it is always
3107 # possible to set breakpoint on assert failures.
3109 s-assert.o : s-assert.adb s-assert.ads
3110 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \
3113 # Force debugging information on a-tags.o so that the debugger can find
3114 # the description of Ada.Tags.Type_Specific_Data.
3116 a-tags.o : a-tags.adb a-tags.ads
3117 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \
3120 # Force no sibling call optimization on s-memory.o to avoid turning the
3121 # tail recursion in Alloc into a loop that confuses branch prediction.
3123 s-memory.o : s-memory.adb s-memory.ads
3124 $(ADAC) -c $(ALL_ADAFLAGS) $(NO_SIBLING_ADAFLAGS) $(ADA_INCLUDES) \
3127 # Need to keep functions ordered on g-debpoo.o since labels are used to
3128 # exclude subprograms from traceback computation.
3130 g-debpoo.o: g-debpoo.adb g-debpoo.ads
3131 $(ADAC) -c $(ALL_ADAFLAGS) $(NO_REORDER_ADAFLAGS) $(ADA_INCLUDES) \