1 # Makefile.rtl for GNU Ada Compiler (GNAT).
2 # Copyright (C) 2003-2017, 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= \
80 $(EXTRA_GNATRTL_TASKING_OBJS)
82 # Objects the require IEEE Float
83 GNATRTL_ALTIVEC_OBJS= \
92 # Objects needed for non-tasking.
93 GNATRTL_NONTASKING_OBJS= \
731 $(GNATRTL_ALTIVEC_OBJS) \
732 $(GNATRTL_SOCKETS_OBJS) \
733 $(EXTRA_GNATRTL_NONTASKING_OBJS)
735 # LIBGNAT_TARGET_PAIRS is a list of pairs of filenames.
736 # The members of each pair must be separated by a '<' and no whitespace.
737 # Each pair must be separated by some amount of whitespace from the following
742 LIBGNAT_TARGET_PAIRS = \
743 a-intnam.ads<libgnarl/a-intnam__dummy.ads \
744 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
745 s-intman.adb<libgnarl/s-intman__dummy.adb \
746 s-osinte.ads<libgnarl/s-osinte__dummy.ads \
747 s-osprim.adb<libgnat/s-osprim__posix.adb \
748 s-taprop.adb<libgnarl/s-taprop__dummy.adb \
749 s-taspri.ads<libgnarl/s-taspri__dummy.ads
751 # When using the GCC exception handling mechanism, we need to use an
752 # alternate body for a-exexpr.adb (a-exexpr-gcc.adb)
756 # Compilation options for the GCC-SJLJ RTS. This may be augmented for
757 # target specific contexts, e.g. to add -fno-omit-frame-pointer for backtrace
759 GNATLIBCFLAGS_FOR_GCCSJLJ=-fsjlj
761 # Default shared object option. Note that we rely on the fact that the "soname"
762 # option will always be present and last in this flag, so that we can have
763 # $(SO_OPTS)libgnat-x.xx
765 SO_OPTS = -Wl,-soname,
767 # Default gnatlib-shared target.
768 # By default, equivalent to gnatlib.
769 # Set to gnatlib-shared-default, gnatlib-shared-dual, or a platform specific
770 # target when supported.
771 GNATLIB_SHARED = gnatlib
773 # By default, build socket support units. On platforms that do not support
774 # sockets, reset this variable to empty and add DUMMY_SOCKETS_TARGET_PAIRS
775 # to LIBGNAT_TARGET_PAIRS.
777 GNATRTL_SOCKETS_OBJS = g-soccon$(objext) g-socket$(objext) g-socthi$(objext) \
778 g-soliop$(objext) g-sothco$(objext)
780 DUMMY_SOCKETS_TARGET_PAIRS = \
781 g-socket.adb<libgnat/g-socket__dummy.adb \
782 g-socket.ads<libgnat/g-socket__dummy.ads \
783 g-socthi.adb<libgnat/g-socthi__dummy.adb \
784 g-socthi.ads<libgnat/g-socthi__dummy.ads \
785 g-sothco.adb<libgnat/g-sothco__dummy.adb \
786 g-sothco.ads<libgnat/g-sothco__dummy.ads
788 # On platforms where atomic increment/decrement operations are supported,
789 # special version of Ada.Strings.Unbounded package can be used.
791 ATOMICS_TARGET_PAIRS = \
792 a-coinho.adb<libgnat/a-coinho__shared.adb \
793 a-coinho.ads<libgnat/a-coinho__shared.ads \
794 a-stunau.adb<libgnat/a-stunau__shared.adb \
795 a-suteio.adb<libgnat/a-suteio__shared.adb \
796 a-strunb.ads<libgnat/a-strunb__shared.ads \
797 a-strunb.adb<libgnat/a-strunb__shared.adb \
798 a-stwiun.adb<libgnat/a-stwiun__shared.adb \
799 a-stwiun.ads<libgnat/a-stwiun__shared.ads \
800 a-swunau.adb<libgnat/a-swunau__shared.adb \
801 a-swuwti.adb<libgnat/a-swuwti__shared.adb \
802 a-stzunb.adb<libgnat/a-stzunb__shared.adb \
803 a-stzunb.ads<libgnat/a-stzunb__shared.ads \
804 a-szunau.adb<libgnat/a-szunau__shared.adb \
805 a-szuzti.adb<libgnat/a-szuzti__shared.adb
807 ATOMICS_BUILTINS_TARGET_PAIRS = \
808 s-atocou.adb<libgnat/s-atocou__builtin.adb
810 # Special version of units for x86 and x86-64 platforms.
813 a-numaux.ads<libgnat/a-numaux__x86.ads \
814 a-numaux.adb<libgnat/a-numaux__x86.adb \
815 s-atocou.adb<libgnat/s-atocou__x86.adb
817 X86_64_TARGET_PAIRS = \
818 a-numaux.ads<libgnat/a-numaux__x86.ads \
819 a-numaux.adb<libgnat/a-numaux__x86.adb \
820 s-atocou.adb<libgnat/s-atocou__builtin.adb
822 # Implementation of symbolic traceback based on dwarf
823 TRASYM_DWARF_UNIX_PAIRS = \
824 s-trasym.adb<libgnat/s-trasym__dwarf.adb \
825 s-mmosin.ads<libgnat/s-mmosin__unix.ads \
826 s-mmosin.adb<libgnat/s-mmosin__unix.adb \
827 s-mmauni.ads<libgnat/s-mmauni__long.ads
829 TRASYM_DWARF_MINGW_PAIRS = \
830 s-trasym.adb<libgnat/s-trasym__dwarf.adb \
831 s-mmosin.ads<libgnat/s-mmosin__mingw.ads \
832 s-mmosin.adb<libgnat/s-mmosin__mingw.adb
834 TRASYM_DWARF_COMMON_OBJS = s-objrea$(objext) s-dwalin$(objext) s-mmap$(objext) \
837 TRASYM_DWARF_UNIX_OBJS = $(TRASYM_DWARF_COMMON_OBJS) s-mmauni$(objext)
839 TRASYM_DWARF_MINGW_OBJS = $(TRASYM_DWARF_COMMON_OBJS)
841 # Shared library version
842 LIB_VERSION = $(strip $(shell grep ' Library_Version :' $(GNAT_SRC)/gnatvsn.ads | sed -e 's/.*"\(.*\)".*/\1/'))
844 # Additional object files from C source to be added to libgnat.
847 # Additional C source files to be added to libgnat without corresponding
848 # object file (#included files). This should include at least the GNAT
849 # specific header files required to rebuild the runtime library from sources.
852 # Additional object files from Ada sources to be added in libgnat
853 EXTRA_GNATRTL_NONTASKING_OBJS=
855 # Additional object files from Ada sources to be added in libgnarl
856 EXTRA_GNATRTL_TASKING_OBJS=
858 # Subsets of extra libgnat sources that always go together
859 VX_SIGTRAMP_EXTRA_SRCS=sigtramp.h sigtramp-vxworks-target.inc
861 # Additional object files that should go in the same directory as libgnat,
862 # aside the library itself. Typically useful for crtbegin/crtend kind of files.
865 # GCC spec files to be installed in $(libsubdir), so --specs=<spec-filename>
866 # finds them at runtime.
869 # $(filter-out PATTERN...,TEXT) removes all PATTERN words from TEXT.
870 # $(strip STRING) removes leading and trailing spaces from STRING.
871 # If what's left is null then it's a match.
873 # PowerPC and e500v2 VxWorks
874 ifeq ($(strip $(filter-out powerpc% wrs vxworks vxworksspe vxworks7% vxworks7spe,$(target_cpu) $(target_vendor) $(target_os))),)
876 ifeq ($(strip $(filter-out e500%, $(target_alias))),)
878 # gcc config translates the target e500v2-wrs-vxworks to
879 # powerpc-wrs-vxworksspe. Let's keep the original alias here when
880 # generating s-oscons.ads.
881 target=$(target_alias)
883 ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),)
890 VX=$(strip $(if $(filter vxworks7%, $(target_os)), vxworks7, vxworks))
893 LIBGNAT_TARGET_PAIRS = \
894 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
895 a-numaux.ads<libgnat/a-numaux__vxworks.ads \
896 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
897 s-intman.ads<libgnarl/s-intman__vxworks.ads \
898 s-intman.adb<libgnarl/s-intman__vxworks.adb \
899 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
900 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
901 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
902 s-parame.ads<libgnat/s-parame__vxworks.ads \
903 s-parame.adb<libgnat/s-parame__vxworks.adb \
904 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
905 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
906 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
907 s-vxwork.ads<libgnarl/s-vxwork__ppc.ads \
908 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
909 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
910 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
911 $(ATOMICS_TARGET_PAIRS) \
912 $(ATOMICS_BUILTINS_TARGET_PAIRS)
914 # VxWorks 5 and 6 both use the same target triplet making them
915 # indistinguishable in the context of this make file. Package
916 # System.Stack_Checking.Operations is not needed on VxWorks 6 as it leads to
917 # an undefined symbol when building a dynamic shared library. To alleviate
918 # this problem and distinguish this case, we use the THREAD_KIND and include
919 # the package only in default mode.
921 ifeq ($(strip $(filter-out default,$(THREAD_KIND))),)
922 LIBGNAT_TARGET_PAIRS += \
923 s-stchop.ads<libgnat/s-stchop__limit.ads \
924 s-stchop.adb<libgnat/s-stchop__vxworks.adb
925 EXTRA_GNATRTL_NONTASKING_OBJS+=s-stchop.o
928 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
930 ifeq ($(strip $(filter-out rtp,$(THREAD_KIND))),)
931 LIBGNAT_TARGET_PAIRS += \
932 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
933 s-vxwext.adb<libgnarl/s-vxwext__rtp.adb \
934 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-rtp.adb \
935 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp.ads
939 ifeq ($(strip $(filter-out rtp-smp,$(THREAD_KIND))),)
940 LIBGNAT_TARGET_PAIRS += \
941 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
942 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
943 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \
944 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
945 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp-smp.ads
948 EXTRA_LIBGNAT_OBJS+=affinity.o
950 ifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),)
951 LIBGNAT_TARGET_PAIRS += \
952 s-interr.adb<libgnarl/s-interr__vxworks.adb \
953 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
954 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
955 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
956 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \
957 system.ads<libgnat/$(SVX)-$(ARCH_STR)-kernel.ads
960 EXTRA_LIBGNAT_OBJS+=affinity.o
962 LIBGNAT_TARGET_PAIRS += \
963 s-interr.adb<libgnarl/s-interr__vxworks.adb \
964 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb
966 ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
968 LIBGNAT_TARGET_PAIRS += \
969 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
970 s-vxwext.adb<libgnarl/s-vxwext__kernel.adb \
971 system.ads<libgnat/$(SVX)-$(ARCH_STR)-kernel.ads
973 LIBGNAT_TARGET_PAIRS += \
974 system.ads<libgnat/system-vxworks-ppc.ads
977 EXTRA_GNATRTL_NONTASKING_OBJS+=i-vxinco.o i-vxwork.o i-vxwoio.o
981 EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o
982 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
984 EXTRA_GNATRTL_TASKING_OBJS += s-vxwork.o s-vxwext.o
986 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
988 ifeq ($(strip $(filter-out vxworks7%, $(target_os))),)
989 ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),)
990 GCC_SPEC_FILES+=vxworks7-ppc64-rtp-base-link.spec
992 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec
995 GCC_SPEC_FILES+=vxworks-$(ARCH_STR)-link.spec
996 GCC_SPEC_FILES+=vxworks-cert-$(ARCH_STR)-link.spec
997 GCC_SPEC_FILES+=vxworks-smp-$(ARCH_STR)-link.spec
1001 # PowerPC and e500v2 VxWorks 653
1002 ifeq ($(strip $(filter-out powerpc% wrs vxworksae vxworksaespe,$(target_cpu) $(target_vendor) $(target_os))),)
1004 ifeq ($(strip $(filter-out e500%, $(target_alias))),)
1006 # gcc config translates the target e500v2-wrs-vxworks to
1007 # powerpc-wrs-vxworksspe. Let's keep the original alias here when
1008 # generating s-oscons.ads.
1009 target=$(target_alias)
1014 # target pairs for vthreads runtime
1015 LIBGNAT_TARGET_PAIRS = \
1016 a-elchha.adb<libgnat/a-elchha__vxworks-ppc-full.adb \
1017 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1018 a-numaux.ads<libgnat/a-numaux__vxworks.ads \
1019 g-io.adb<hie/g-io__vxworks-ppc-cert.adb \
1020 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
1021 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1022 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1023 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1024 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1025 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1026 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
1027 s-parame.ads<libgnat/s-parame__ae653.ads \
1028 s-parame.adb<libgnat/s-parame__vxworks.adb \
1029 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1030 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1031 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1032 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb \
1033 s-vxwext.adb<libgnarl/s-vxwext__noints.adb \
1034 s-vxwext.ads<libgnarl/s-vxwext__vthreads.ads \
1035 s-vxwork.ads<libgnarl/s-vxwork__ppc.ads \
1036 system.ads<libgnat/system-vxworks-$(ARCH_STR)-vthread.ads \
1037 $(ATOMICS_TARGET_PAIRS) \
1038 $(ATOMICS_BUILTINS_TARGET_PAIRS)
1042 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1044 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o
1045 EXTRA_GNATRTL_TASKING_OBJS=i-vxinco.o s-vxwork.o s-vxwext.o
1047 EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o
1048 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1050 # Extra pairs for the vthreads runtime
1051 ifeq ($(strip $(filter-out vthreads,$(THREAD_KIND))),)
1052 LIBGNAT_TARGET_PAIRS += \
1053 s-thread.adb<libgnat/s-thread__ae653.adb \
1054 s-osvers.ads<libgnat/s-osvers__vxworks-653.ads \
1055 $(DUMMY_SOCKETS_TARGET_PAIRS)
1057 GNATRTL_SOCKETS_OBJS =
1058 EXTRA_GNATRTL_NONTASKING_OBJS += s-thread.o s-osvers.o
1060 LIBGNAT_TARGET_PAIRS += \
1061 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1062 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1063 g-stsifd.adb<libgnat/g-stsifd__sockets.adb
1068 # VxWorksae / VxWorks 653 for x86 (vxsim) - ?? VxWorks mils not implemented
1069 ifeq ($(strip $(filter-out %86 wrs vxworksae,$(target_cpu) $(target_vendor) $(target_os))),)
1070 # target pairs for kernel + vthreads runtime
1071 LIBGNAT_TARGET_PAIRS = \
1072 a-elchha.adb<libgnat/a-elchha__vxworks-ppc-full.adb \
1073 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1074 a-numaux.ads<libgnat/a-numaux__vxworks.ads \
1075 g-io.adb<hie/g-io__vxworks-ppc-cert.adb \
1076 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
1077 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1078 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1079 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1080 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1081 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1082 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
1083 s-parame.ads<libgnat/s-parame__ae653.ads \
1084 s-parame.adb<libgnat/s-parame__vxworks.adb \
1085 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1086 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1087 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1088 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb \
1089 s-vxwext.adb<libgnarl/s-vxwext__noints.adb \
1090 s-vxwext.ads<libgnarl/s-vxwext__vthreads.ads \
1091 s-vxwork.ads<libgnarl/s-vxwork__x86.ads \
1092 system.ads<libgnat/system-vxworks-x86-vthread.ads \
1093 $(ATOMICS_TARGET_PAIRS) \
1094 $(ATOMICS_BUILTINS_TARGET_PAIRS)
1098 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1100 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-thread.o
1101 EXTRA_GNATRTL_TASKING_OBJS=i-vxinco.o s-vxwork.o s-vxwext.o
1103 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1104 GNATRTL_SOCKETS_OBJS =
1106 # Extra pairs for the vthreads runtime
1107 ifeq ($(strip $(filter-out vthreads,$(THREAD_KIND))),)
1108 LIBGNAT_TARGET_PAIRS += \
1109 s-thread.adb<libgnat/s-thread__ae653.adb \
1110 s-osvers.ads<libgnat/s-osvers__vxworks-653.ads \
1111 $(DUMMY_SOCKETS_TARGET_PAIRS)
1113 GNATRTL_SOCKETS_OBJS =
1114 EXTRA_GNATRTL_NONTASKING_OBJS += s-thread.o s-osvers.o
1116 LIBGNAT_TARGET_PAIRS += \
1117 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1118 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1119 g-stsifd.adb<libgnat/g-stsifd__sockets.adb
1124 # x86/x86_64 VxWorks
1125 ifeq ($(strip $(filter-out %86 x86_64 wrs vxworks vxworks7%,$(target_cpu) $(target_vendor) $(target_os))),)
1129 VX=$(strip $(if $(filter vxworks7%, $(target_os)), vxworks7, vxworks))
1132 ifeq ($(strip $(filter-out x86_64, $(target_cpu))),)
1134 LIBGNAT_TARGET_PAIRS=$(X86_64_TARGET_PAIRS)
1137 LIBGNAT_TARGET_PAIRS=$(X86_TARGET_PAIRS)
1140 LIBGNAT_TARGET_PAIRS+= \
1141 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1142 i-vxwork.ads<libgnat/i-vxwork__x86.ads \
1143 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1144 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1145 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
1146 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1147 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1148 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
1149 s-parame.ads<libgnat/s-parame__vxworks.ads \
1150 s-parame.adb<libgnat/s-parame__vxworks.adb \
1151 s-stchop.ads<libgnat/s-stchop__limit.ads \
1152 s-stchop.adb<libgnat/s-stchop__vxworks.adb \
1153 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1154 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1155 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1156 s-vxwork.ads<libgnarl/s-vxwork__x86.ads \
1157 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1158 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1159 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
1160 $(ATOMICS_TARGET_PAIRS)
1162 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1164 # The CPU setting for VxSim varies with the
1165 # host (Windows or Linux)
1166 # target (VxWorks6 or VxWorks7)
1167 # runtime (rtp or kernel)
1168 # -------------------------------------------------------------
1170 # Windows (host_os = mingw32)
1171 # kernel SIMNT SIMNT
1172 # rtp SIMPENTIUM SIMNT
1173 # Linux (host_os = linux-gnu)
1174 # kernel SIMLINUX SIMLINUX
1175 # rtp SIMPENTIUM SIMLINUX
1176 # -------------------------------------------------------------
1177 # It is overridden by VXSIM_CPU only in files init-vxsim.c and
1178 # sigtramp-vxworks-vxsim.c which contain functions determined at
1179 # runtime to be called if a program is running on VxSim vs real hardware
1180 # (due to differences in signal context for unwinding).
1182 ifneq ($(strip $(filter-out vxworks7, $(target_os))),)
1183 ifeq ($(strip $(filter-out vxworks rtp rtp-smp,$(target_os) $(THREAD_KIND))),)
1184 VXSIM_CPU = SIMPENTIUM
1186 ifeq ($(strip $(filter-out kernel kernel-smp rtp rtp-smp,$(THREAD_KIND))),)
1187 ifeq ($(strip $(filter-out linux%,$(host_os))),)
1189 VXSIM_CPU = SIMLINUX
1197 GNATLIBCFLAGS_FOR_C := $(GNATLIBCFLAGS_FOR_C) -D__VXSIM_CPU__=$(VXSIM_CPU)
1200 ifeq ($(strip $(filter-out rtp,$(THREAD_KIND))),)
1201 LIBGNAT_TARGET_PAIRS += \
1202 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1203 s-vxwext.adb<libgnarl/s-vxwext__rtp.adb \
1204 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-rtp.adb \
1205 system.ads<libgnat/$(SVX)-x86-rtp.ads
1207 ifeq ($(strip $(filter-out rtp-smp, $(THREAD_KIND))),)
1208 LIBGNAT_TARGET_PAIRS += \
1209 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1210 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1211 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \
1212 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1213 system.ads<libgnat/$(SVX)-$(X86CPU)-rtp-smp.ads
1215 EXTRA_LIBGNAT_OBJS+=affinity.o
1217 ifeq ($(strip $(filter-out kernel-smp, $(THREAD_KIND))),)
1218 LIBGNAT_TARGET_PAIRS += \
1219 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1220 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1221 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1222 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1223 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \
1224 system.ads<libgnat/$(SVX)-$(X86CPU)-kernel.ads
1226 EXTRA_LIBGNAT_OBJS+=affinity.o
1228 LIBGNAT_TARGET_PAIRS += \
1229 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1230 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb
1232 ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
1233 LIBGNAT_TARGET_PAIRS += \
1234 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1235 s-vxwext.adb<libgnarl/s-vxwext__kernel.adb \
1236 system.ads<libgnat/$(SVX)-x86-kernel.ads
1238 LIBGNAT_TARGET_PAIRS += \
1239 system.ads<libgnat/system-vxworks-x86.ads
1243 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o
1247 EXTRA_GNATRTL_NONTASKING_OBJS += s-stchop.o
1248 EXTRA_GNATRTL_TASKING_OBJS += i-vxinco.o s-vxwork.o s-vxwext.o
1250 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1252 EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o
1253 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1255 ifeq ($(strip $(filter-out vxworks7%, $(target_os))),)
1256 GCC_SPEC_FILES+=vxworks7-$(X86CPU)-rtp-base-link.spec
1258 GCC_SPEC_FILES+=vxworks-x86-link.spec
1259 GCC_SPEC_FILES+=vxworks-cert-x86-link.spec
1260 GCC_SPEC_FILES+=vxworks-smp-x86-link.spec
1264 # ARM and Aarch64 VxWorks
1265 ifeq ($(strip $(filter-out aarch64 arm% coff wrs vx%,$(target_cpu) $(target_vendor) $(target_os))),)
1267 ifeq ($(strip $(filter-out aarch64, $(target_cpu))),)
1271 SIGTRAMP_OBJ=sigtramp-vxworks.o
1273 ifeq ($(strip $(filter-out arm%, $(target_cpu))),)
1275 ifeq ($(strip $(filter-out vxworks7%, $(target_os))),)
1278 SIGTRAMP_OBJ=sigtramp-armvxworks.o
1282 SIGTRAMP_OBJ=sigtramp-vxworks.o
1291 LIBGNAT_TARGET_PAIRS = \
1292 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1293 a-numaux.ads<libgnat/a-numaux__vxworks.ads \
1294 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
1295 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1296 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1297 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1298 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1299 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1300 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
1301 s-parame.ads<libgnat/s-parame__vxworks.ads \
1302 s-parame.adb<libgnat/s-parame__vxworks.adb \
1303 s-stchop.ads<libgnat/s-stchop__limit.ads \
1304 s-stchop.adb<libgnat/s-stchop__vxworks.adb \
1305 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1306 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1307 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1308 s-vxwork.ads<libgnarl/s-vxwork__$(ARCH_STR).ads \
1309 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1310 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1311 g-stsifd.adb<libgnat/g-stsifd__sockets.adb
1313 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1315 ifeq ($(strip $(filter-out rtp-smp,$(THREAD_KIND))),)
1316 LIBGNAT_TARGET_PAIRS += \
1317 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1318 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1319 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \
1320 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1321 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp-smp.ads
1323 EXTRA_LIBGNAT_OBJS+=affinity.o
1325 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1326 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1328 ifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),)
1329 LIBGNAT_TARGET_PAIRS += \
1330 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1331 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1332 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1333 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \
1334 system.ads<libgnat/$(SVX)-$(ARCH_STR).ads
1336 EXTRA_LIBGNAT_OBJS+=affinity.o
1338 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1339 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1341 LIBGNAT_TARGET_PAIRS += \
1342 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb \
1343 system.ads<libgnat/$(SVX)-$(ARCH_STR).ads
1345 ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
1346 LIBGNAT_TARGET_PAIRS += \
1347 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1348 s-vxwext.adb<libgnarl/s-vxwext__kernel.adb
1350 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1351 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1356 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o \
1358 EXTRA_GNATRTL_TASKING_OBJS=i-vxinco.o s-vxwork.o s-vxwext.o
1360 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1362 ifeq ($(strip $(filter-out arm vxworks7%, $(target_cpu) $(target_os))),)
1363 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec
1365 ifeq ($(strip $(filter-out aarch64, $(target_cpu))),)
1366 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec
1369 ifneq ($(strip $(filter-out vxworks7%, $(target_os))),)
1370 GCC_SPEC_FILES+=vxworks-arm-link.spec
1371 GCC_SPEC_FILES+=vxworks-smp-arm-link.spec
1377 ifeq ($(strip $(filter-out arm% linux-androideabi,$(target_cpu) $(target_os))),)
1378 LIBGNAT_TARGET_PAIRS = \
1379 a-intnam.ads<libgnarl/a-intnam__linux.ads \
1380 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1381 s-intman.adb<libgnarl/s-intman__android.adb \
1382 s-linux.ads<libgnarl/s-linux__android.ads \
1383 s-osinte.adb<libgnarl/s-osinte__android.adb \
1384 s-osinte.ads<libgnarl/s-osinte__android.ads \
1385 s-osprim.adb<libgnat/s-osprim__posix.adb \
1386 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1387 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1388 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1389 $(ATOMICS_TARGET_PAIRS) \
1390 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1391 system.ads<libgnat/system-linux-arm.ads
1393 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1395 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
1396 EXTRA_LIBGNAT_OBJS+=sigtramp-armdroid.o
1397 EXTRA_LIBGNAT_SRCS+=sigtramp.h
1400 GNATLIB_SHARED = gnatlib-shared-dual
1401 LIBRARY_VERSION := $(LIB_VERSION)
1405 ifeq ($(strip $(filter-out aarch64 %qnx,$(target_cpu) $(target_os))),)
1406 LIBGNAT_TARGET_PAIRS = \
1407 a-intnam.ads<libgnarl/a-intnam__qnx.ads \
1408 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1409 s-intman.adb<libgnarl/s-intman__qnx.adb \
1410 s-osinte.adb<libgnarl/s-osinte__qnx.adb \
1411 s-osinte.ads<libgnarl/s-osinte__qnx.ads \
1412 s-osprim.adb<libgnat/s-osprim__posix.adb \
1413 s-qnx.ads<libgnarl/s-qnx.ads \
1414 s-taprop.adb<libgnarl/s-taprop__qnx.adb \
1415 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1416 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1417 g-soliop.ads<libgnat/g-soliop__qnx.ads \
1418 $(ATOMICS_TARGET_PAIRS) \
1419 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1420 system.ads<libgnat/system-qnx-aarch64.ads
1422 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1424 EXTRA_GNATRTL_TASKING_OBJS=s-qnx.o
1425 EXTRA_LIBGNAT_OBJS+=sigtramp-qnx.o
1426 EXTRA_LIBGNAT_SRCS+=sigtramp.h
1429 SO_OPTS= -shared-libgcc -Wl,-soname,
1432 GNATLIB_SHARED = gnatlib-shared-dual
1433 LIBRARY_VERSION := $(LIB_VERSION)
1437 ifeq ($(strip $(filter-out sparc% sun solaris%,$(target_cpu) $(target_vendor) $(target_os))),)
1438 LIBGNAT_TARGET_PAIRS = \
1439 a-intnam.ads<libgnarl/a-intnam__solaris.ads \
1440 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1441 s-intman.adb<libgnarl/s-intman__solaris.adb \
1442 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1443 s-osinte.adb<libgnarl/s-osinte__solaris.adb \
1444 s-osinte.ads<libgnarl/s-osinte__solaris.ads \
1445 s-osprim.adb<libgnat/s-osprim__solaris.adb \
1446 s-taprop.adb<libgnarl/s-taprop__solaris.adb \
1447 s-tasinf.adb<libgnarl/s-tasinf__solaris.adb \
1448 s-tasinf.ads<libgnarl/s-tasinf__solaris.ads \
1449 s-taspri.ads<libgnarl/s-taspri__solaris.ads \
1450 s-tpopsp.adb<libgnarl/s-tpopsp__solaris.adb \
1451 g-soliop.ads<libgnat/g-soliop__solaris.ads \
1452 $(TRASYM_DWARF_UNIX_PAIRS) \
1453 $(ATOMICS_TARGET_PAIRS) \
1454 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1455 system.ads<libgnat/system-solaris-sparc.ads
1457 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1460 THREADSLIB = -lposix4 -lthread
1461 MISCLIB = -lposix4 -lnsl -lsocket
1463 GNATLIB_SHARED = gnatlib-shared-dual
1465 LIBRARY_VERSION := $(LIB_VERSION)
1468 # x86 and x86-64 solaris
1469 ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(target_cpu) $(target_os))),)
1470 LIBGNAT_TARGET_PAIRS_COMMON = \
1471 a-intnam.ads<libgnarl/a-intnam__solaris.ads \
1472 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1473 s-intman.adb<libgnarl/s-intman__solaris.adb \
1474 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1475 s-osinte.adb<libgnarl/s-osinte__solaris.adb \
1476 s-osinte.ads<libgnarl/s-osinte__solaris.ads \
1477 s-osprim.adb<libgnat/s-osprim__solaris.adb \
1478 s-taprop.adb<libgnarl/s-taprop__solaris.adb \
1479 s-tasinf.adb<libgnarl/s-tasinf__solaris.adb \
1480 s-tasinf.ads<libgnarl/s-tasinf__solaris.ads \
1481 s-taspri.ads<libgnarl/s-taspri__solaris.ads \
1482 s-tpopsp.adb<libgnarl/s-tpopsp__solaris.adb \
1483 g-soliop.ads<libgnat/g-soliop__solaris.ads \
1484 $(TRASYM_DWARF_UNIX_PAIRS) \
1485 $(ATOMICS_TARGET_PAIRS) \
1486 system.ads<libgnat/system-solaris-x86.ads
1488 ifeq ($(strip $(filter-out %86 solaris2%,$(target_cpu) $(target_os))),)
1489 ifeq ($(strip $(MULTISUBDIR)),/amd64)
1490 LIBGNAT_TARGET_PAIRS = \
1491 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_64_TARGET_PAIRS)
1493 LIBGNAT_TARGET_PAIRS = \
1494 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_TARGET_PAIRS)
1497 ifeq ($(strip $(MULTISUBDIR)),/32)
1498 LIBGNAT_TARGET_PAIRS = \
1499 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_TARGET_PAIRS)
1501 LIBGNAT_TARGET_PAIRS = \
1502 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_64_TARGET_PAIRS)
1506 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1507 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1510 THREADSLIB = -lposix4 -lthread
1511 MISCLIB = -lposix4 -lnsl -lsocket
1513 GNATLIB_SHARED = gnatlib-shared-dual
1515 LIBRARY_VERSION := $(LIB_VERSION)
1519 ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),)
1520 LIBGNAT_TARGET_PAIRS = \
1521 a-intnam.ads<libgnarl/a-intnam__linux.ads \
1522 a-synbar.adb<libgnarl/a-synbar__posix.adb \
1523 a-synbar.ads<libgnarl/a-synbar__posix.ads \
1524 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1525 s-intman.adb<libgnarl/s-intman__posix.adb \
1526 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
1527 $(TRASYM_DWARF_UNIX_PAIRS) \
1528 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
1529 a-exetim.adb<libgnarl/a-exetim__posix.adb \
1530 a-exetim.ads<libgnarl/a-exetim__default.ads \
1531 s-linux.ads<libgnarl/s-linux.ads \
1532 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1533 $(ATOMICS_TARGET_PAIRS) \
1534 system.ads<libgnat/system-linux-x86.ads
1536 ifeq ($(strip $(MULTISUBDIR)),/64)
1537 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
1539 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
1542 LIBGNAT_TARGET_PAIRS += \
1543 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1544 s-osinte.ads<libgnarl/s-osinte__linux.ads \
1545 s-osprim.adb<libgnat/s-osprim__posix.adb \
1546 s-taprop.adb<libgnarl/s-taprop__linux.adb \
1547 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
1548 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
1549 s-taspri.ads<libgnarl/s-taspri__posix.ads
1552 THREADSLIB = -lpthread -lrt
1553 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1554 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1555 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
1557 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1559 GNATLIB_SHARED = gnatlib-shared-dual
1562 LIBRARY_VERSION := $(LIB_VERSION)
1564 GNATLIBCFLAGS_FOR_GCCSJLJ+=-fno-omit-frame-pointer -momit-leaf-frame-pointer
1568 ifeq ($(strip $(filter-out %86 kfreebsd%,$(target_cpu) $(target_os))),)
1569 LIBGNAT_TARGET_PAIRS = \
1570 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1571 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1572 s-intman.adb<libgnarl/s-intman__posix.adb \
1573 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1574 s-osinte.ads<libgnarl/s-osinte__kfreebsd-gnu.ads \
1575 s-osprim.adb<libgnat/s-osprim__posix.adb \
1576 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1577 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1578 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1579 $(TRASYM_DWARF_UNIX_PAIRS) \
1580 $(ATOMICS_TARGET_PAIRS) \
1581 $(X86_TARGET_PAIRS) \
1582 system.ads<libgnat/system-freebsd.ads
1584 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1586 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1587 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1590 THREADSLIB = -lpthread
1591 GNATLIB_SHARED = gnatlib-shared-dual
1593 LIBRARY_VERSION := $(LIB_VERSION)
1597 # i[3456]86-pc-gnu i.e. GNU Hurd
1598 ifeq ($(strip $(filter-out %86 pc gnu,$(target_cpu) $(target_vendor) $(target_os))),)
1599 LIBGNAT_TARGET_PAIRS = \
1600 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1601 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1602 s-intman.adb<libgnarl/s-intman__posix.adb \
1603 s-osinte.adb<libgnarl/s-osinte__gnu.adb \
1604 s-osinte.ads<libgnarl/s-osinte__gnu.ads \
1605 s-osprim.adb<libgnat/s-osprim__posix.adb \
1606 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1607 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1608 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1609 $(ATOMICS_TARGET_PAIRS) \
1610 $(X86_TARGET_PAIRS) \
1611 system.ads<libgnat/system-freebsd.ads
1613 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1615 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
1618 THREADSLIB = -lpthread
1619 GNATLIB_SHARED = gnatlib-shared-dual
1621 LIBRARY_VERSION := $(LIB_VERSION)
1624 ifeq ($(strip $(filter-out x86_64 kfreebsd%,$(target_cpu) $(target_os))),)
1625 LIBGNAT_TARGET_PAIRS = \
1626 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1627 a-numaux.adb<libgnat/a-numaux__x86.adb \
1628 a-numaux.ads<libgnat/a-numaux__x86.ads \
1629 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1630 s-intman.adb<libgnarl/s-intman__posix.adb \
1631 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1632 s-osinte.ads<libgnarl/s-osinte__kfreebsd-gnu.ads \
1633 s-osprim.adb<libgnat/s-osprim__posix.adb \
1634 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1635 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1636 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1637 system.ads<libgnat/system-freebsd.ads
1639 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1642 THREADSLIB = -lpthread
1643 GNATLIB_SHARED = gnatlib-shared-dual
1645 LIBRARY_VERSION := $(LIB_VERSION)
1649 ifeq ($(strip $(filter-out %aarch64 freebsd%,$(target_cpu) $(target_os))),)
1650 LIBGNAT_TARGET_PAIRS = \
1651 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1652 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1653 s-intman.adb<libgnarl/s-intman__posix.adb \
1654 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1655 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1656 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1657 s-osprim.adb<libgnat/s-osprim__posix.adb \
1658 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1659 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1660 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1661 $(ATOMICS_TARGET_PAIRS) \
1662 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1663 system.ads<libgnat/system-freebsd.ads
1665 GNATLIB_SHARED = gnatlib-shared-dual
1668 THREADSLIB= -lpthread
1670 LIBRARY_VERSION := $(LIB_VERSION)
1675 ifeq ($(strip $(filter-out %86 freebsd%,$(target_cpu) $(target_os))),)
1676 LIBGNAT_TARGET_PAIRS = \
1677 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1678 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1679 s-intman.adb<libgnarl/s-intman__posix.adb \
1680 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1681 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1682 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1683 s-osprim.adb<libgnat/s-osprim__posix.adb \
1684 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1685 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1686 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1687 $(TRASYM_DWARF_UNIX_PAIRS) \
1688 $(ATOMICS_TARGET_PAIRS) \
1689 $(X86_TARGET_PAIRS) \
1690 system.ads<libgnat/system-freebsd.ads
1692 GNATLIB_SHARED = gnatlib-shared-dual
1694 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1695 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1698 THREADSLIB= -lpthread
1700 LIBRARY_VERSION := $(LIB_VERSION)
1705 ifeq ($(strip $(filter-out %86_64 freebsd%,$(target_cpu) $(target_os))),)
1706 LIBGNAT_TARGET_PAIRS = \
1707 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1708 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1709 s-intman.adb<libgnarl/s-intman__posix.adb \
1710 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1711 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1712 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1713 s-osprim.adb<libgnat/s-osprim__posix.adb \
1714 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1715 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1716 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1717 $(TRASYM_DWARF_UNIX_PAIRS) \
1718 $(ATOMICS_TARGET_PAIRS) \
1719 $(X86_64_TARGET_PAIRS) \
1720 system.ads<libgnat/system-freebsd.ads
1722 GNATLIB_SHARED = gnatlib-shared-dual
1724 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1725 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1728 THREADSLIB= -lpthread
1730 LIBRARY_VERSION := $(LIB_VERSION)
1735 ifeq ($(strip $(filter-out %86_64 dragonfly%,$(target_cpu) $(target_os))),)
1736 LIBGNAT_TARGET_PAIRS = \
1737 a-intnam.ads<libgnarl/a-intnam__dragonfly.ads \
1738 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1739 s-intman.adb<libgnarl/s-intman__posix.adb \
1740 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1741 s-osinte.adb<libgnarl/s-osinte__dragonfly.adb \
1742 s-osinte.ads<libgnarl/s-osinte__dragonfly.ads \
1743 s-osprim.adb<libgnat/s-osprim__posix.adb \
1744 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1745 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1746 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1747 $(ATOMICS_TARGET_PAIRS) \
1748 $(X86_64_TARGET_PAIRS) \
1749 system.ads<libgnat/system-dragonfly-x86_64.ads
1751 GNATLIB_SHARED = gnatlib-shared-dual
1753 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
1756 THREADSLIB= -lpthread
1758 LIBRARY_VERSION := $(LIB_VERSION)
1763 ifeq ($(strip $(filter-out s390% linux%,$(target_cpu) $(target_os))),)
1764 LIBGNAT_TARGET_PAIRS = \
1765 a-intnam.ads<libgnarl/a-intnam__linux.ads \
1766 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1767 s-intman.adb<libgnarl/s-intman__posix.adb \
1768 s-linux.ads<libgnarl/s-linux.ads \
1769 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1770 s-osinte.ads<libgnarl/s-osinte__linux.ads \
1771 s-osprim.adb<libgnat/s-osprim__posix.adb \
1772 s-taprop.adb<libgnarl/s-taprop__linux.adb \
1773 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
1774 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
1775 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
1776 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1777 system.ads<libgnat/system-linux-s390.ads
1779 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1781 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
1783 THREADSLIB = -lpthread
1784 GNATLIB_SHARED = gnatlib-shared-dual
1785 LIBRARY_VERSION := $(LIB_VERSION)
1789 ifeq ($(strip $(filter-out hppa% hp hpux10%,$(target_cpu) $(target_vendor) $(target_os))),)
1790 LIBGNAT_TARGET_PAIRS = \
1791 a-excpol.adb<libgnat/a-excpol__abort.adb \
1792 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
1793 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1794 s-interr.adb<libgnarl/s-interr__sigaction.adb \
1795 s-intman.adb<libgnarl/s-intman__posix.adb \
1796 s-osinte.adb<libgnarl/s-osinte__hpux-dce.adb \
1797 s-osinte.ads<libgnarl/s-osinte__hpux-dce.ads \
1798 s-parame.ads<libgnat/s-parame__hpux.ads \
1799 s-osprim.adb<libgnat/s-osprim__posix.adb \
1800 s-taprop.adb<libgnarl/s-taprop__hpux-dce.adb \
1801 s-taspri.ads<libgnarl/s-taspri__hpux-dce.ads \
1802 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1803 system.ads<libgnat/system-hpux.ads
1809 ifeq ($(strip $(filter-out hppa% hp hpux11%,$(target_cpu) $(target_vendor) $(target_os))),)
1810 LIBGNAT_TARGET_PAIRS = \
1811 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
1812 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1813 s-intman.adb<libgnarl/s-intman__posix.adb \
1814 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1815 s-osinte.ads<libgnarl/s-osinte__hpux.ads \
1816 s-parame.ads<libgnat/s-parame__hpux.ads \
1817 s-osprim.adb<libgnat/s-osprim__posix.adb \
1818 s-traceb.adb<libgnat/s-traceb__hpux.adb \
1819 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1820 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1821 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1822 system.ads<libgnat/system-hpux.ads
1825 TGT_LIB = /usr/lib/libcl.a
1826 THREADSLIB = -lpthread
1830 GNATLIB_SHARED = gnatlib-shared-dual
1831 LIBRARY_VERSION := $(LIB_VERSION)
1835 ifeq ($(strip $(filter-out ibm aix%,$(target_vendor) $(target_os))),)
1836 LIBGNAT_TARGET_PAIRS = \
1837 a-intnam.ads<libgnarl/a-intnam__aix.ads \
1838 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1839 s-intman.adb<libgnarl/s-intman__posix.adb \
1840 s-osinte.adb<libgnarl/s-osinte__aix.adb \
1841 s-osinte.ads<libgnarl/s-osinte__aix.ads \
1842 s-osprim.adb<libgnat/s-osprim__posix.adb \
1843 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1844 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1845 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1846 $(TRASYM_DWARF_UNIX_PAIRS) \
1847 $(ATOMICS_TARGET_PAIRS) \
1848 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1849 system.ads<libgnat/system-aix.ads
1851 ifneq ($(target_os),)
1852 ifeq ($(findstring ppc64, \
1853 $(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) \
1854 -print-multi-os-directory)), \
1856 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-aix.adb
1858 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1862 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1864 THREADSLIB = -lpthreads
1870 # LynxOS 178 and LynxOS 178 Elf
1871 ifeq ($(strip $(filter-out lynxos178%,$(target_os))),)
1872 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1874 LIBGNAT_TARGET_PAIRS = \
1875 a-intnam.ads<libgnarl/a-intnam__lynxos.ads \
1876 g-soliop.ads<libgnat/g-soliop__lynxos.ads \
1877 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1878 s-intman.adb<libgnarl/s-intman__lynxos.adb \
1879 s-osinte.adb<libgnarl/s-osinte__lynxos178.adb \
1880 s-osprim.ads<libgnat/s-osprim__lynxos.ads \
1881 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1882 s-taspri.ads<libgnarl/s-taspri__lynxos.ads \
1883 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb
1885 ifeq ($(strip $(filter-out powerpc%, $(target_cpu))),)
1886 LIBGNAT_TARGET_PAIRS += system.ads<libgnat/system-lynxos178-ppc.ads
1888 ifeq ($(strip $(filter-out %86, $(target_cpu))),)
1889 LIBGNAT_TARGET_PAIRS += system.ads<libgnat/system-lynxos178-x86.ads
1890 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
1893 ifeq ($(strip $(filter-out lynxos178e,$(target_os))),)
1894 LIBGNAT_TARGET_PAIRS += \
1895 s-osinte.ads<libgnarl/s-osinte__lynxos178e.ads \
1896 s-osprim.adb<libgnat/s-osprim__posix2008.adb \
1897 s-tracon.adb<hie/s-tracon__ppc-eabi.adb
1904 ifeq ($(strip $(filter-out rtems%,$(target_os))),)
1905 LIBGNAT_TARGET_PAIRS = \
1906 system.ads<libgnat/system-rtems.ads \
1907 a-intnam.ads<libgnarl/a-intnam__rtems.ads \
1908 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1909 s-intman.adb<libgnarl/s-intman__posix.adb \
1910 s-osinte.adb<libgnarl/s-osinte__rtems.adb \
1911 s-osinte.ads<libgnarl/s-osinte__rtems.ads \
1912 s-osprim.adb<libgnat/s-osprim__rtems.adb \
1913 s-parame.adb<libgnat/s-parame__rtems.adb \
1914 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1915 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1916 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
1917 s-stchop.adb<libgnat/s-stchop__rtems.adb \
1918 s-interr.adb<libgnarl/s-interr__hwint.adb
1919 ifeq ($(strip $(filter-out arm%, $(target_cpu))),)
1927 ifeq ($(strip $(filter-out powerpc% %86 sysgo pikeos,$(target_cpu) $(target_vendor) $(target_os)))),)
1928 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1931 # *-elf, *-eabi, or *-eabispe
1932 ifeq ($(strip $(filter-out elf eabi eabispe,$(target_os))),)
1933 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1936 ifeq ($(strip $(filter-out %djgpp,$(target_os))),)
1937 GNATRTL_SOCKETS_OBJS =
1939 LIBGNAT_TARGET_PAIRS = \
1940 a-intnam.ads<libgnarl/a-intnam__dummy.ads \
1941 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
1942 s-intman.adb<libgnarl/s-intman__dummy.adb \
1943 s-osinte.ads<libgnarl/s-osinte__dummy.ads \
1944 s-osprim.adb<libgnat/s-osprim__unix.adb \
1945 s-taprop.adb<libgnarl/s-taprop__dummy.adb \
1946 s-taspri.ads<libgnarl/s-taspri__dummy.ads \
1947 system.ads<libgnat/system-djgpp.ads \
1948 $(DUMMY_SOCKETS_TARGET_PAIRS)
1954 ifeq ($(strip $(filter-out cygwin% mingw32% pe,$(target_os))),)
1955 # Cygwin provides a full Posix environment, and so we use the default
1956 # versions g-socthi rather than the Windows-specific MinGW version.
1957 # Ideally we would use all the default versions for Cygwin and none
1958 # of the MinGW versions, but for historical reasons the Cygwin port
1959 # has always been a CygMing frankenhybrid and it is a long-term project
1960 # to disentangle them.
1961 ifeq ($(strip $(filter-out cygwin%,$(target_os))),)
1962 LIBGNAT_TARGET_PAIRS = \
1963 g-socthi.ads<libgnat/g-socthi.ads \
1964 g-socthi.adb<libgnat/g-socthi.adb
1966 LIBGNAT_TARGET_PAIRS = \
1967 g-socthi.ads<libgnat/g-socthi__mingw.ads \
1968 g-socthi.adb<libgnat/g-socthi__mingw.adb
1970 LIBGNAT_TARGET_PAIRS += \
1971 a-dirval.adb<libgnat/a-dirval__mingw.adb \
1972 a-excpol.adb<libgnat/a-excpol__abort.adb \
1973 s-gloloc.adb<libgnat/s-gloloc__mingw.adb \
1974 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
1975 s-taspri.ads<libgnarl/s-taspri__mingw.ads \
1976 s-tasinf.adb<libgnarl/s-tasinf__mingw.adb \
1977 s-tasinf.ads<libgnarl/s-tasinf__mingw.ads \
1978 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
1979 g-soliop.ads<libgnat/g-soliop__mingw.ads \
1980 $(ATOMICS_TARGET_PAIRS) \
1981 system.ads<libgnat/system-mingw.ads
1983 LIBGNAT_TARGET_PAIRS += \
1984 a-exetim.adb<libgnarl/a-exetim__mingw.adb \
1985 a-exetim.ads<libgnarl/a-exetim__mingw.ads \
1986 a-intnam.ads<libgnarl/a-intnam__mingw.ads \
1987 g-sercom.adb<libgnat/g-sercom__mingw.adb \
1988 $(TRASYM_DWARF_MINGW_PAIRS) \
1989 s-tsmona.adb<libgnat/s-tsmona__mingw.adb \
1990 s-interr.adb<libgnarl/s-interr__sigaction.adb \
1991 s-intman.adb<libgnarl/s-intman__mingw.adb \
1992 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1993 s-osinte.ads<libgnarl/s-osinte__mingw.ads \
1994 s-osprim.adb<libgnat/s-osprim__mingw.adb \
1995 s-taprop.adb<libgnarl/s-taprop__mingw.adb
1997 ifeq ($(strip $(filter-out x86_64%,$(target_cpu))),)
1998 ifeq ($(strip $(MULTISUBDIR)),/32)
1999 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2000 SO_OPTS= -m32 -Wl,-soname,
2002 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2003 SO_OPTS = -m64 -Wl,-soname,
2006 ifeq ($(strip $(MULTISUBDIR)),/64)
2007 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2008 SO_OPTS = -m64 -Wl,-soname,
2010 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2011 SO_OPTS = -m32 -Wl,-soname,
2015 EXTRA_GNATRTL_NONTASKING_OBJS += \
2016 s-win32.o s-winext.o g-regist.o g-sse.o g-ssvety.o
2017 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_MINGW_OBJS)
2018 EXTRA_GNATRTL_TASKING_OBJS = a-exetim.o
2019 EXTRA_LIBGNAT_SRCS+=mingw32.h
2022 # ??? This will be replaced by gnatlib-shared-dual-win32 when GNAT
2023 # auto-import support for array/record will be done.
2024 GNATLIB_SHARED = gnatlib-shared-win32
2028 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
2031 EXTRA_GNATTOOLS = ../../gnatdll$(exeext)
2032 EXTRA_GNATMAKE_OBJS = mdll.o mdll-utl.o mdll-fil.o
2034 LIBRARY_VERSION := $(LIB_VERSION)
2038 ifeq ($(strip $(filter-out mips% linux%,$(target_cpu) $(target_os))),)
2039 LIBGNAT_TARGET_PAIRS = \
2040 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2041 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2042 s-intman.adb<libgnarl/s-intman__posix.adb \
2043 s-linux.ads<libgnarl/s-linux__mips.ads \
2044 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2045 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2046 s-osprim.adb<libgnat/s-osprim__posix.adb \
2047 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2048 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2049 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2050 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2051 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2052 system.ads<libgnat/system-linux-mips.ads
2054 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2056 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2058 THREADSLIB = -lpthread
2059 GNATLIB_SHARED = gnatlib-shared-dual
2061 LIBRARY_VERSION := $(LIB_VERSION)
2064 # PowerPC and e500v2 Linux
2065 ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
2066 LIBGNAT_TARGET_PAIRS_COMMON = \
2067 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2068 a-exetim.ads<libgnarl/a-exetim__default.ads \
2069 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2070 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2071 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2072 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2073 s-intman.adb<libgnarl/s-intman__posix.adb \
2074 s-linux.ads<libgnarl/s-linux.ads \
2075 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2076 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2077 $(TRASYM_DWARF_UNIX_PAIRS) \
2078 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2079 $(ATOMICS_TARGET_PAIRS) \
2080 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2081 system.ads<libgnat/system-linux-ppc.ads
2083 LIBGNAT_TARGET_PAIRS = \
2084 $(LIBGNAT_TARGET_PAIRS_COMMON) \
2085 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2086 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2087 s-osprim.adb<libgnat/s-osprim__posix.adb \
2088 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2089 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2090 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2091 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads
2093 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2095 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2096 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2099 THREADSLIB = -lpthread -lrt
2100 GNATLIB_SHARED = gnatlib-shared-dual
2103 LIBRARY_VERSION := $(LIB_VERSION)
2106 # ARM linux, GNU eabi
2107 ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),)
2108 LIBGNAT_TARGET_PAIRS = \
2109 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2110 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2111 s-intman.adb<libgnarl/s-intman__posix.adb \
2112 s-linux.ads<libgnarl/s-linux.ads \
2113 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2114 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2115 s-osprim.adb<libgnat/s-osprim__posix.adb \
2116 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2117 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2118 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2119 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2120 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2121 $(ATOMICS_TARGET_PAIRS) \
2122 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2123 system.ads<libgnat/system-linux-arm.ads
2125 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2127 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2129 THREADSLIB = -lpthread
2130 GNATLIB_SHARED = gnatlib-shared-dual
2132 LIBRARY_VERSION := $(LIB_VERSION)
2136 ifeq ($(strip $(filter-out aarch64% linux%,$(target_cpu) $(target_os))),)
2137 LIBGNAT_TARGET_PAIRS = \
2138 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2139 a-exetim.ads<libgnarl/a-exetim__default.ads \
2140 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2141 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2142 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2143 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2144 s-intman.adb<libgnarl/s-intman__posix.adb \
2145 s-linux.ads<libgnarl/s-linux.ads \
2146 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2147 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2148 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2149 s-osprim.adb<libgnat/s-osprim__posix.adb \
2150 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2151 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2152 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2153 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2154 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2155 $(ATOMICS_TARGET_PAIRS) \
2156 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2157 system.ads<libgnat/system-linux-arm.ads
2159 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2161 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2163 THREADSLIB=-lpthread -lrt
2164 GNATLIB_SHARED=gnatlib-shared-dual
2166 LIBRARY_VERSION := $(LIB_VERSION)
2170 ifeq ($(strip $(filter-out sparc% linux%,$(target_cpu) $(target_os))),)
2171 LIBGNAT_TARGET_PAIRS = \
2172 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2173 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2174 s-intman.adb<libgnarl/s-intman__posix.adb \
2175 s-linux.ads<libgnarl/s-linux__sparc.ads \
2176 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2177 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2178 s-osprim.adb<libgnat/s-osprim__posix.adb \
2179 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2180 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2181 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2182 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2183 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2184 system.ads<libgnat/system-linux-sparc.ads
2186 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2188 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2190 THREADSLIB = -lpthread
2191 GNATLIB_SHARED = gnatlib-shared-dual
2193 LIBRARY_VERSION := $(LIB_VERSION)
2197 ifeq ($(strip $(filter-out hppa% linux%,$(target_cpu) $(target_os))),)
2198 LIBGNAT_TARGET_PAIRS = \
2199 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2200 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2201 s-intman.adb<libgnarl/s-intman__posix.adb \
2202 s-linux.ads<libgnarl/s-linux__hppa.ads \
2203 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2204 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2205 s-osprim.adb<libgnat/s-osprim__posix.adb \
2206 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2207 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2208 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2209 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2210 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2211 system.ads<libgnat/system-linux-hppa.ads
2213 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2215 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2217 THREADSLIB = -lpthread
2218 GNATLIB_SHARED = gnatlib-shared-dual
2220 LIBRARY_VERSION := $(LIB_VERSION)
2224 ifeq ($(strip $(filter-out m68k% linux%,$(target_cpu) $(target_os))),)
2225 LIBGNAT_TARGET_PAIRS = \
2226 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2227 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2228 s-intman.adb<libgnarl/s-intman__posix.adb \
2229 s-linux.ads<libgnarl/s-linux.ads \
2230 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2231 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2232 s-osprim.adb<libgnat/s-osprim__posix.adb \
2233 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2234 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2235 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2236 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2237 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2238 system.ads<libgnat/system-linux-m68k.ads
2240 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2242 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2244 THREADSLIB = -lpthread
2245 GNATLIB_SHARED = gnatlib-shared-dual
2247 LIBRARY_VERSION := $(LIB_VERSION)
2251 ifeq ($(strip $(filter-out sh4% linux%,$(target_cpu) $(target_os))),)
2252 LIBGNAT_TARGET_PAIRS = \
2253 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2254 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2255 s-intman.adb<libgnarl/s-intman__posix.adb \
2256 s-linux.ads<libgnarl/s-linux.ads \
2257 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2258 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2259 s-osprim.adb<libgnat/s-osprim__posix.adb \
2260 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2261 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2262 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2263 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2264 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2265 system.ads<libgnat/system-linux-sh4.ads
2267 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-linux.adb
2269 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2272 THREADSLIB = -lpthread
2273 GNATLIB_SHARED = gnatlib-shared-dual
2275 LIBRARY_VERSION := $(LIB_VERSION)
2279 ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
2280 LIBGNAT_TARGET_PAIRS = \
2281 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2282 a-exetim.ads<libgnarl/a-exetim__default.ads \
2283 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2284 a-numaux.ads<libgnat/a-numaux__libc-x86.ads \
2285 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2286 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2287 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2288 s-intman.adb<libgnarl/s-intman__posix.adb \
2289 s-linux.ads<libgnarl/s-linux.ads \
2290 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2291 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2292 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2293 s-osprim.adb<libgnat/s-osprim__posix.adb \
2294 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2295 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2296 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2297 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2298 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2299 $(TRASYM_DWARF_UNIX_PAIRS) \
2300 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2301 $(ATOMICS_TARGET_PAIRS) \
2302 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2303 system.ads<libgnat/system-linux-ia64.ads
2305 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2307 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2308 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2310 THREADSLIB=-lpthread -lrt
2311 GNATLIB_SHARED=gnatlib-shared-dual
2314 LIBRARY_VERSION := $(LIB_VERSION)
2318 ifeq ($(strip $(filter-out ia64% hp hpux%,$(target_cpu) $(target_vendor) $(target_os))),)
2319 LIBGNAT_TARGET_PAIRS = \
2320 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
2321 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2322 s-intman.adb<libgnarl/s-intman__posix.adb \
2323 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2324 s-osinte.ads<libgnarl/s-osinte__hpux.ads \
2325 s-osprim.adb<libgnat/s-osprim__posix.adb \
2326 s-taprop.adb<libgnarl/s-taprop__posix.adb \
2327 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2328 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2329 $(TRASYM_DWARF_UNIX_PAIRS) \
2330 $(ATOMICS_TARGET_PAIRS) \
2331 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2332 system.ads<libgnat/system-hpux-ia64.ads
2334 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2338 THREADSLIB=-lpthread
2339 GNATLIB_SHARED=gnatlib-shared-dual
2343 LIBRARY_VERSION := $(LIB_VERSION)
2347 ifeq ($(strip $(filter-out alpha% linux%,$(target_cpu) $(target_os))),)
2348 LIBGNAT_TARGET_PAIRS = \
2349 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2350 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2351 s-intman.adb<libgnarl/s-intman__posix.adb \
2352 s-linux.ads<libgnarl/s-linux__alpha.ads \
2353 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2354 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2355 s-osprim.adb<libgnat/s-osprim__posix.adb \
2356 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2357 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2358 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2359 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2360 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2361 $(ATOMICS_TARGET_PAIRS) \
2362 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2363 system.ads<libgnat/system-linux-alpha.ads
2365 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2367 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2370 THREADSLIB=-lpthread
2371 GNATLIB_SHARED=gnatlib-shared-dual
2372 LIBRARY_VERSION := $(LIB_VERSION)
2376 ifeq ($(strip $(filter-out %x86_64 linux%,$(target_cpu) $(target_os))),)
2377 LIBGNAT_TARGET_PAIRS = \
2378 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2379 a-exetim.ads<libgnarl/a-exetim__default.ads \
2380 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2381 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2382 a-synbar.ads<libgnarl/a-synbar__posix.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.ads \
2386 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2387 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2388 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2389 s-osprim.adb<libgnat/s-osprim__posix.adb \
2390 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2391 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2392 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2393 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2394 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2395 $(TRASYM_DWARF_UNIX_PAIRS) \
2396 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2397 $(ATOMICS_TARGET_PAIRS) \
2398 $(X86_64_TARGET_PAIRS) \
2399 system.ads<libgnat/system-linux-x86.ads
2401 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2403 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
2404 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2405 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2408 THREADSLIB=-lpthread -lrt
2410 GNATLIB_SHARED=gnatlib-shared-dual
2412 LIBRARY_VERSION := $(LIB_VERSION)
2414 GNATLIBCFLAGS_FOR_GCCSJLJ+=-fno-omit-frame-pointer -momit-leaf-frame-pointer
2417 ifeq ($(strip $(filter-out %x32 linux%,$(target_cpu) $(target_os))),)
2418 LIBGNAT_TARGET_PAIRS = \
2419 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2420 a-exetim.ads<libgnarl/a-exetim__default.ads \
2421 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2422 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2423 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2424 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2425 s-intman.adb<libgnarl/s-intman__posix.adb \
2426 s-linux.ads<libgnarl/s-linux__x32.ads \
2427 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2428 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2429 s-osinte.adb<libgnarl/s-osinte__x32.adb \
2430 s-osprim.adb<libgnat/s-osprim__x32.adb \
2431 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2432 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2433 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2434 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2435 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2436 $(ATOMICS_TARGET_PAIRS) \
2437 $(X86_64_TARGET_PAIRS) \
2438 system.ads<libgnat/system-linux-x86.ads
2440 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2442 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
2443 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2445 THREADSLIB=-lpthread -lrt
2446 GNATLIB_SHARED=gnatlib-shared-dual
2448 LIBRARY_VERSION := $(LIB_VERSION)
2452 ifeq ($(strip $(filter-out riscv% linux%,$(target_cpu) $(target_os))),)
2453 LIBGNAT_TARGET_PAIRS = \
2454 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2455 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2456 s-intman.adb<libgnarl/s-intman__posix.adb \
2457 s-linux.ads<libgnarl/s-linux__riscv.ads \
2458 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2459 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2460 s-osprim.adb<libgnat/s-osprim__posix.adb \
2461 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2462 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2463 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2464 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2465 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2466 system.ads<libgnat/system-linux-riscv.ads
2468 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2470 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2472 THREADSLIB = -lpthread
2473 GNATLIB_SHARED = gnatlib-shared-dual
2475 LIBRARY_VERSION := $(LIB_VERSION)
2479 ifeq ($(strip $(filter-out darwin%,$(target_os))),)
2480 SO_OPTS = -shared-libgcc
2481 LIBGNAT_TARGET_PAIRS = \
2482 a-intnam.ads<libgnarl/a-intnam__darwin.ads \
2483 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2484 s-osinte.adb<libgnarl/s-osinte__darwin.adb \
2485 s-osinte.ads<libgnarl/s-osinte__darwin.ads \
2486 s-taprop.adb<libgnarl/s-taprop__posix.adb \
2487 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2488 g-sercom.adb<libgnat/g-sercom__linux.adb \
2489 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb
2491 ifeq ($(strip $(filter-out %86,$(target_cpu))),)
2492 LIBGNAT_TARGET_PAIRS += \
2493 s-intman.adb<libgnarl/s-intman__susv3.adb \
2494 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2495 $(ATOMICS_TARGET_PAIRS) \
2496 system.ads<libgnat/system-darwin-x86.ads
2498 ifeq ($(strip $(MULTISUBDIR)),/x86_64)
2500 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2502 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2505 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
2508 ifeq ($(strip $(filter-out %x86_64,$(target_cpu))),)
2509 LIBGNAT_TARGET_PAIRS += \
2510 s-intman.adb<libgnarl/s-intman__susv3.adb \
2511 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2512 a-exetim.ads<libgnarl/a-exetim__default.ads \
2513 a-exetim.adb<libgnarl/a-exetim__darwin.adb \
2514 $(ATOMICS_TARGET_PAIRS) \
2515 system.ads<libgnat/system-darwin-x86.ads
2517 ifeq ($(strip $(MULTISUBDIR)),/i386)
2519 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2521 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2524 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
2525 EXTRA_GNATRTL_TASKING_OBJS=a-exetim.o
2528 ifeq ($(strip $(filter-out powerpc%,$(target_cpu))),)
2529 LIBGNAT_TARGET_PAIRS += \
2530 s-intman.adb<libgnarl/s-intman__posix.adb \
2531 s-osprim.adb<libgnat/s-osprim__posix.adb \
2532 a-numaux.ads<libgnat/a-numaux__darwin.ads \
2533 a-numaux.adb<libgnat/a-numaux__darwin.adb \
2534 $(ATOMICS_TARGET_PAIRS) \
2535 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2536 system.ads<libgnat/system-darwin-ppc.ads
2538 ifeq ($(strip $(MULTISUBDIR)),/ppc64)
2543 ifeq ($(strip $(filter-out arm,$(target_cpu))),)
2544 LIBGNAT_TARGET_PAIRS += \
2545 s-intman.adb<libgnarl/s-intman__susv3.adb \
2546 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2547 $(ATOMICS_TARGET_PAIRS) \
2548 $(ATOMICS_BUILTINS_TARGET_PAIRS)
2550 LIBGNAT_TARGET_PAIRS += \
2551 system.ads<libgnat/system-darwin-arm.ads
2554 ifeq ($(strip $(filter-out arm64 aarch64,$(target_cpu))),)
2555 LIBGNAT_TARGET_PAIRS += \
2556 s-intman.adb<libgnarl/s-intman__susv3.adb \
2557 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2558 $(ATOMICS_TARGET_PAIRS) \
2559 $(ATOMICS_BUILTINS_TARGET_PAIRS)
2561 EXTRA_LIBGNAT_OBJS+=sigtramp-ios.o
2562 EXTRA_LIBGNAT_SRCS+=sigtramp.h
2563 LIBGNAT_TARGET_PAIRS += \
2564 system.ads<libgnat/system-darwin-arm.ads
2567 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-darwin.adb
2570 GNATLIB_SHARED = gnatlib-shared-darwin
2572 LIBRARY_VERSION := $(LIB_VERSION)
2574 GCC_LINK_FLAGS=-static-libstdc++
2577 ifeq ($(EH_MECHANISM),-gcc)
2578 LIBGNAT_TARGET_PAIRS += \
2579 s-excmac.ads<libgnat/s-excmac__gcc.ads \
2580 s-excmac.adb<libgnat/s-excmac__gcc.adb
2581 EXTRA_LIBGNAT_OBJS+=raise-gcc.o
2582 EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o
2585 ifeq ($(EH_MECHANISM),-arm)
2586 LIBGNAT_TARGET_PAIRS += \
2587 s-excmac.ads<libgnat/s-excmac__arm.ads \
2588 s-excmac.adb<libgnat/s-excmac__arm.adb
2589 EXTRA_LIBGNAT_OBJS+=raise-gcc.o
2590 EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o
2593 ifeq ($(strip $(filter-out linux%,$(target_os))),)
2594 LIBGNAT_TARGET_PAIRS += \
2595 g-sercom.adb<libgnat/g-sercom__linux.adb
2598 # LIBGNAT_SRCS is the list of all C files (including headers) of the runtime
2599 # library. LIBGNAT_OBJS is the list of object files for libgnat.
2600 # thread.c is special as put into GNATRTL_TASKING_OBJS
2601 LIBGNAT_OBJS = adadecode.o adaint.o argv.o aux-io.o \
2602 cal.o cio.o cstreams.o ctrl_c.o \
2603 env.o errno.o exit.o expect.o final.o rtfinal.o rtinit.o \
2604 init.o initialize.o locales.o mkdir.o \
2605 raise.o seh_init.o socket.o sysdep.o \
2606 targext.o terminals.o tracebak.o \
2607 $(EXTRA_LIBGNAT_OBJS)
2609 # NOTE ??? - when the -I option for compiling Ada code is made to work,
2610 # the library installation will change and there will be a
2611 # GNAT_RTL_SRCS. Right now we count on being able to build GNATRTL_OBJS
2612 # from ADA_INCLUDE_SRCS.
2614 LIBGNAT_SRCS = $(patsubst %.o,%.c,$(LIBGNAT_OBJS)) \
2615 adadecode.h adaint.h env.h gsocket.h raise.h standard.ads.h \
2616 tb-gcc.c runtime.h libgnarl/thread.c $(EXTRA_LIBGNAT_SRCS)
2618 # memtrack.o is special as not put into libgnat.
2619 GNATRTL_OBJS = $(GNATRTL_NONTASKING_OBJS) $(GNATRTL_TASKING_OBJS) \
2622 # Run time source files
2623 # Note that libgnat contains a significant number of files. In orde to avoid
2624 # command line length limitations the source regexp has been split for that
2627 libgnat/ada.ads libgnat/calendar.ads libgnat/directio.ads libgnat/gnat.ads libgnat/interfac.ads libgnat/ioexcept.ads \
2628 libgnat/machcode.ads libgnat/text_io.ads libgnat/unchconv.ads libgnat/unchdeal.ads \
2629 libgnat/sequenio.ads libgnat/system.ads Makefile.adalib libgnat/memtrack.adb \
2630 libgnat/a-[a-o]*.adb libgnat/a-[a-o]*.ads \
2631 libgnat/a-[p-z]*.adb libgnat/a-[p-z]*.ads \
2632 libgnat/g-[a-o]*.adb libgnat/g-[a-o]*.ads \
2633 libgnat/g-[p-z]*.adb libgnat/g-[p-z]*.ads \
2634 libgnat/s-[a-o]*.adb libgnat/s-[a-o]*.ads \
2635 libgnat/s-[p-z]*.adb libgnat/s-[p-z]*.ads \
2636 libgnat/i-[a-o]*.adb libgnat/i-[a-o]*.ads \
2637 libgnat/i-[p-z]*.adb libgnat/i-[p-z]*.ads \
2638 libgnarl/[agis]-[a-z]*.ad[sb]
2641 # Files that are in ADA_INCLUDE_SRCS but not in all configurations.
2642 # They will be removed from the run time if not used.
2644 g-allein.ads g-alleve.adb g-alleve.ads g-altcon.adb g-altcon.ads \
2645 g-altive.ads g-alveop.adb g-alveop.ads g-alvety.ads g-alvevi.ads \
2646 g-intpri.ads g-regist.adb g-regist.ads g-sse.ads g-ssvety.ads \
2647 i-vxinco.adb i-vxinco.ads i-vxwoio.adb i-vxwoio.ads i-vxwork.ads \
2648 s-bb.ads s-bbbosu.ads s-bbcaco.ads s-bbcppr.ads s-bbexti.adb \
2649 s-bbexti.ads s-bbinte.adb s-bbinte.ads s-bbprot.adb s-bbprot.ads \
2650 s-bbsle3.ads s-bbsuer.ads s-bbsule.ads s-bbthqu.adb s-bbthqu.ads \
2651 s-bbthre.adb s-bbthre.ads s-bbtiev.adb s-bbtiev.ads s-bbtime.adb \
2652 s-bbtime.ads s-bcprmu.adb s-bcprmu.ads s-btstch.adb s-btstch.ads \
2653 s-gcc.adb s-gcc.ads s-gccdiv.adb s-gccdiv.ads \
2654 s-gccshi.adb s-gccshi.ads \
2655 s-init.ads s-init.adb s-linux.ads s-macres.ads \
2656 s-memcom.adb s-memcom.ads s-memmov.adb s-memmov.ads s-memset.adb \
2657 s-memset.ads s-mufalo.adb s-mufalo.ads s-musplo.adb s-musplo.ads \
2658 s-sam4.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb s-sopco4.ads \
2659 s-sopco5.adb s-sopco5.ads s-stchop.ads s-stchop.adb s-stm32.ads \
2660 s-strcom.adb s-strcom.ads s-thread.ads \
2661 s-vxwext.adb s-vxwext.ads \
2662 s-win32.ads s-winext.ads
2664 # ADA_EXCLUDE_SRCS without the sources used by the target
2665 ADA_EXCLUDE_FILES=$(filter-out \
2666 $(patsubst %$(objext),%.ads,$(GNATRTL_OBJS)) \
2667 $(patsubst %$(objext),%.adb,$(GNATRTL_OBJS)), \
2668 $(ADA_EXCLUDE_SRCS))
2673 $(CHMOD) u+w $(RTSDIR)
2674 # Copy target independent sources
2675 $(foreach f,$(ADA_INCLUDE_SRCS) $(LIBGNAT_SRCS), \
2676 $(LN_S) $(GNAT_SRC)/$(f) $(RTSDIR) ;) true
2677 # Remove files not used
2678 $(RM) $(patsubst %,$(RTSDIR)/%,$(ADA_EXCLUDE_FILES))
2679 # Remove files to be replaced by target dependent sources
2680 $(RM) $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \
2681 $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR))))
2682 for f in $(RTSDIR)/*-*__*.ads $(RTSDIR)/*-*__*.adb; do \
2684 $(RTSDIR)/s-stratt__*) ;; \
2688 # Copy new target dependent sources
2689 $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \
2690 $(LN_S) $(GNAT_SRC)/$(word 2,$(subst <, ,$(PAIR))) \
2691 $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR)));)
2693 # Special flags. It is recommended not to change the compilation flags
2694 # without a careful analysis of the consequences because (part of) the
2695 # runtime implements low-level support that is outside of the semantics
2696 # of the language and therefore needs to be treated differently from the
2697 # other units. For example, the part of the runtime implementing the
2698 # propagation of exceptions cannot itself be compiled with checks that
2699 # may give rise to exceptions, e.g. stack overflow checks.
2701 # Generate target-dependent info into a file named ada_target_properties.
2702 # This information is used by tools for static analysis: they need to know
2703 # the size of standard types for a given run-time library. This metadata
2704 # is meant to be saved at the root of the run-time directory.
2706 ADA_TARGET_PROPERTIES = -gnatet=ada_target_properties
2708 system.o : system.ads
2709 $(ADAC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< \
2710 $(ADA_TARGET_PROPERTIES) \
2713 # Force no sibling call optimization on s-traceb.o so the number of stack
2714 # frames to be skipped when computing a call chain is not modified by
2715 # optimization. We don't want inlining, either.
2717 s-traceb.o : s-traceb.adb s-traceb.ads
2718 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) \
2719 $(NO_INLINE_ADAFLAGS) $(NO_SIBLING_ADAFLAGS) $(ADA_INCLUDES) $< \
2722 # Compile s-tasdeb.o without optimization and with debug info so that it is
2723 # always possible to set conditional breakpoints on tasks.
2725 s-tasdeb.o : s-tasdeb.adb s-tasdeb.ads
2726 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O0 $(ADA_INCLUDES) \
2729 # Force no function reordering on a-except.o because of the exclusion bounds
2730 # mechanism (see the source file for more detailed information).
2731 # force debugging information on a-except.o so that it is always
2732 # possible to set conditional breakpoints on exceptions.
2733 # use -O1 otherwise gdb isn't able to get a full backtrace on mips targets.
2735 a-except.o : a-except.adb a-except.ads
2736 $(ADAC) -c $(ALL_ADAFLAGS) -O1 $(FORCE_DEBUG_ADAFLAGS) \
2737 $(NO_INLINE_ADAFLAGS) $(NO_REORDER_ADAFLAGS) $(ADA_INCLUDES) \
2740 # Compile s-excdeb.o without optimization and with debug info to let the
2741 # debugger set breakpoints and inspect subprogram parameters on exception
2744 s-excdeb.o : s-excdeb.adb s-excdeb.ads s-except.ads
2745 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O0 \
2746 $(ADA_INCLUDES) $< $(OUTPUT_OPTION)
2748 # Force debugging information on s-assert.o so that it is always
2749 # possible to set breakpoint on assert failures.
2751 s-assert.o : s-assert.adb s-assert.ads
2752 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \
2755 # Force debugging information on a-tags.o so that the debugger can find
2756 # the description of Ada.Tags.Type_Specific_Data.
2758 a-tags.o : a-tags.adb a-tags.ads
2759 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \
2762 # Force no sibling call optimization on s-memory.o to avoid turning the
2763 # tail recursion in Alloc into a loop that confuses branch prediction.
2765 s-memory.o : s-memory.adb s-memory.ads
2766 $(ADAC) -c $(ALL_ADAFLAGS) $(NO_SIBLING_ADAFLAGS) $(ADA_INCLUDES) \