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= \
725 $(GNATRTL_ALTIVEC_OBJS) \
726 $(GNATRTL_SOCKETS_OBJS) \
727 $(EXTRA_GNATRTL_NONTASKING_OBJS)
729 # LIBGNAT_TARGET_PAIRS is a list of pairs of filenames.
730 # The members of each pair must be separated by a '<' and no whitespace.
731 # Each pair must be separated by some amount of whitespace from the following
736 LIBGNAT_TARGET_PAIRS = \
737 a-intnam.ads<libgnarl/a-intnam__dummy.ads \
738 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
739 s-intman.adb<libgnarl/s-intman__dummy.adb \
740 s-osinte.ads<libgnarl/s-osinte__dummy.ads \
741 s-osprim.adb<libgnat/s-osprim__posix.adb \
742 s-taprop.adb<libgnarl/s-taprop__dummy.adb \
743 s-taspri.ads<libgnarl/s-taspri__dummy.ads
745 # When using the GCC exception handling mechanism, we need to use an
746 # alternate body for a-exexpr.adb (a-exexpr-gcc.adb)
750 # Compilation options for the GCC-SJLJ RTS. This may be augmented for
751 # target specific contexts, e.g. to add -fno-omit-frame-pointer for backtrace
753 GNATLIBCFLAGS_FOR_GCCSJLJ=-fsjlj
755 # Default shared object option. Note that we rely on the fact that the "soname"
756 # option will always be present and last in this flag, so that we can have
757 # $(SO_OPTS)libgnat-x.xx
759 SO_OPTS = -Wl,-soname,
761 # Default gnatlib-shared target.
762 # By default, equivalent to gnatlib.
763 # Set to gnatlib-shared-default, gnatlib-shared-dual, or a platform specific
764 # target when supported.
765 GNATLIB_SHARED = gnatlib
767 # By default, build socket support units. On platforms that do not support
768 # sockets, reset this variable to empty and add DUMMY_SOCKETS_TARGET_PAIRS
769 # to LIBGNAT_TARGET_PAIRS.
771 GNATRTL_SOCKETS_OBJS = g-soccon$(objext) g-socket$(objext) g-socthi$(objext) \
772 g-soliop$(objext) g-sothco$(objext)
774 DUMMY_SOCKETS_TARGET_PAIRS = \
775 g-socket.adb<libgnat/g-socket__dummy.adb \
776 g-socket.ads<libgnat/g-socket__dummy.ads \
777 g-socthi.adb<libgnat/g-socthi__dummy.adb \
778 g-socthi.ads<libgnat/g-socthi__dummy.ads \
779 g-sothco.adb<libgnat/g-sothco__dummy.adb \
780 g-sothco.ads<libgnat/g-sothco__dummy.ads
782 # On platforms where atomic increment/decrement operations are supported,
783 # special version of Ada.Strings.Unbounded package can be used.
785 ATOMICS_TARGET_PAIRS = \
786 a-coinho.adb<libgnat/a-coinho__shared.adb \
787 a-coinho.ads<libgnat/a-coinho__shared.ads \
788 a-stunau.adb<libgnat/a-stunau__shared.adb \
789 a-suteio.adb<libgnat/a-suteio__shared.adb \
790 a-strunb.ads<libgnat/a-strunb__shared.ads \
791 a-strunb.adb<libgnat/a-strunb__shared.adb \
792 a-stwiun.adb<libgnat/a-stwiun__shared.adb \
793 a-stwiun.ads<libgnat/a-stwiun__shared.ads \
794 a-swunau.adb<libgnat/a-swunau__shared.adb \
795 a-swuwti.adb<libgnat/a-swuwti__shared.adb \
796 a-stzunb.adb<libgnat/a-stzunb__shared.adb \
797 a-stzunb.ads<libgnat/a-stzunb__shared.ads \
798 a-szunau.adb<libgnat/a-szunau__shared.adb \
799 a-szuzti.adb<libgnat/a-szuzti__shared.adb
801 ATOMICS_BUILTINS_TARGET_PAIRS = \
802 s-atocou.adb<libgnat/s-atocou__builtin.adb
804 # Special version of units for x86 and x86-64 platforms.
807 a-numaux.ads<libgnat/a-numaux__x86.ads \
808 a-numaux.adb<libgnat/a-numaux__x86.adb \
809 s-atocou.adb<libgnat/s-atocou__x86.adb
811 X86_64_TARGET_PAIRS = \
812 a-numaux.ads<libgnat/a-numaux__x86.ads \
813 a-numaux.adb<libgnat/a-numaux__x86.adb \
814 s-atocou.adb<libgnat/s-atocou__builtin.adb
816 # Implementation of symbolic traceback based on dwarf
817 TRASYM_DWARF_UNIX_PAIRS = \
818 s-trasym.adb<libgnat/s-trasym__dwarf.adb \
819 s-mmosin.ads<libgnat/s-mmosin__unix.ads \
820 s-mmosin.adb<libgnat/s-mmosin__unix.adb \
821 s-mmauni.ads<libgnat/s-mmauni__long.ads
823 TRASYM_DWARF_MINGW_PAIRS = \
824 s-trasym.adb<libgnat/s-trasym__dwarf.adb \
825 s-mmosin.ads<libgnat/s-mmosin__mingw.ads \
826 s-mmosin.adb<libgnat/s-mmosin__mingw.adb
828 TRASYM_DWARF_COMMON_OBJS = s-objrea$(objext) s-dwalin$(objext) s-mmap$(objext) \
831 TRASYM_DWARF_UNIX_OBJS = $(TRASYM_DWARF_COMMON_OBJS) s-mmauni$(objext)
833 TRASYM_DWARF_MINGW_OBJS = $(TRASYM_DWARF_COMMON_OBJS)
835 # Shared library version
836 LIB_VERSION = $(strip $(shell grep ' Library_Version :' $(GNAT_SRC)/gnatvsn.ads | sed -e 's/.*"\(.*\)".*/\1/'))
838 # Additional object files from C source to be added to libgnat.
841 # Additional C source files to be added to libgnat without corresponding
842 # object file (#included files). This should include at least the GNAT
843 # specific header files required to rebuild the runtime library from sources.
846 # Additional object files from Ada sources to be added in libgnat
847 EXTRA_GNATRTL_NONTASKING_OBJS=
849 # Additional object files from Ada sources to be added in libgnarl
850 EXTRA_GNATRTL_TASKING_OBJS=
852 # Subsets of extra libgnat sources that always go together
853 VX_SIGTRAMP_EXTRA_SRCS=sigtramp.h sigtramp-vxworks-target.inc
855 # Additional object files that should go in the same directory as libgnat,
856 # aside the library itself. Typically useful for crtbegin/crtend kind of files.
859 # crt files for VxWorks exception tables registration, referenced by
860 # spec files in the runtime library.
861 VX_CRTBE_EXTRA_ADALIB_OBJS=vx_crtbegin.o vx_crtbegin_array.o vx_crtend.o
863 # Contructor attributes (with priorities) are only supported on VxWorks 7
865 ifneq ($(strip $(filter vxworks7% rtp%,$(target_os) $(THREAD_KIND))),)
866 VX_CRTBE_EXTRA_ADALIB_OBJS+=vx_crtbegin_attr.o
869 # GCC spec files to be installed in $(libsubdir), so --specs=<spec-filename>
870 # finds them at runtime.
873 # $(filter-out PATTERN...,TEXT) removes all PATTERN words from TEXT.
874 # $(strip STRING) removes leading and trailing spaces from STRING.
875 # If what's left is null then it's a match.
877 # PowerPC and e500v2 VxWorks
878 ifeq ($(strip $(filter-out powerpc% wrs vxworks vxworksspe vxworks7 vxworks7spe,$(target_cpu) $(target_vendor) $(target_os))),)
880 ifeq ($(strip $(filter-out e500%, $(target_alias))),)
882 # gcc config translates the target e500v2-wrs-vxworks to
883 # powerpc-wrs-vxworksspe. Let's keep the original alias here when
884 # generating s-oscons.ads.
885 target=$(target_alias)
887 ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),)
894 VX=$(strip $(if $(filter vxworks7%, $(target_os)), vxworks7, vxworks))
896 GCC_SPEC_FILES+=$(VX)-gnat-crtbe-link.spec
898 LIBGNAT_TARGET_PAIRS = \
899 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
900 a-numaux.ads<libgnat/a-numaux__vxworks.ads \
901 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
902 s-intman.ads<libgnarl/s-intman__vxworks.ads \
903 s-intman.adb<libgnarl/s-intman__vxworks.adb \
904 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
905 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
906 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
907 s-parame.ads<libgnat/s-parame__vxworks.ads \
908 s-parame.adb<libgnat/s-parame__vxworks.adb \
909 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
910 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
911 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
912 s-vxwork.ads<libgnarl/s-vxwork__ppc.ads \
913 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
914 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
915 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
916 $(ATOMICS_TARGET_PAIRS) \
917 $(ATOMICS_BUILTINS_TARGET_PAIRS)
919 # VxWorks 5 and 6 both use the same target triplet making them
920 # indistinguishable in the context of this make file. Package
921 # System.Stack_Checking.Operations is not needed on VxWorks 6 as it leads to
922 # an undefined symbol when building a dynamic shared library. To alleviate
923 # this problem and distinguish this case, we use the THREAD_KIND and include
924 # the package only in default mode.
926 ifeq ($(strip $(filter-out default,$(THREAD_KIND))),)
927 LIBGNAT_TARGET_PAIRS += \
928 s-stchop.ads<libgnat/s-stchop__limit.ads \
929 s-stchop.adb<libgnat/s-stchop__vxworks.adb
930 EXTRA_GNATRTL_NONTASKING_OBJS+=s-stchop.o
933 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
935 ifeq ($(strip $(filter-out rtp,$(THREAD_KIND))),)
936 LIBGNAT_TARGET_PAIRS += \
937 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
938 s-vxwext.adb<libgnarl/s-vxwext__rtp.adb \
939 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-rtp.adb \
940 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp.ads
944 ifeq ($(strip $(filter-out rtp-smp,$(THREAD_KIND))),)
945 LIBGNAT_TARGET_PAIRS += \
946 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
947 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
948 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \
949 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
950 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp-smp.ads
953 EXTRA_LIBGNAT_OBJS+=affinity.o
955 ifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),)
956 LIBGNAT_TARGET_PAIRS += \
957 s-interr.adb<libgnarl/s-interr__vxworks.adb \
958 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
959 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
960 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
961 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \
962 system.ads<libgnat/$(SVX)-$(ARCH_STR)-kernel.ads
965 EXTRA_LIBGNAT_OBJS+=affinity.o
967 LIBGNAT_TARGET_PAIRS += \
968 s-interr.adb<libgnarl/s-interr__vxworks.adb \
969 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb
971 ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
973 LIBGNAT_TARGET_PAIRS += \
974 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
975 s-vxwext.adb<libgnarl/s-vxwext__kernel.adb \
976 system.ads<libgnat/$(SVX)-$(ARCH_STR)-kernel.ads
978 LIBGNAT_TARGET_PAIRS += \
979 system.ads<libgnat/system-vxworks-ppc.ads
982 EXTRA_GNATRTL_NONTASKING_OBJS+=i-vxinco.o i-vxwork.o i-vxwoio.o
986 EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o
987 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
989 EXTRA_GNATRTL_TASKING_OBJS += s-vxwork.o s-vxwext.o
991 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
993 EXTRA_ADALIB_OBJS+=$(VX_CRTBE_EXTRA_ADALIB_OBJS)
994 EXTRA_LIBGNAT_SRCS+=vx_crtbegin.inc
996 ifeq ($(strip $(filter-out vxworks7%, $(target_os))),)
997 ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),)
998 GCC_SPEC_FILES+=vxworks7-ppc64-rtp-base-link.spec
1000 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec
1003 GCC_SPEC_FILES+=vxworks-$(ARCH_STR)-link.spec
1004 GCC_SPEC_FILES+=vxworks-cert-$(ARCH_STR)-link.spec
1005 GCC_SPEC_FILES+=vxworks-smp-$(ARCH_STR)-link.spec
1009 # PowerPC and e500v2 VxWorks 653
1010 ifeq ($(strip $(filter-out powerpc% wrs vxworksae vxworksaespe,$(target_cpu) $(target_vendor) $(target_os))),)
1012 ifeq ($(strip $(filter-out e500%, $(target_alias))),)
1014 # gcc config translates the target e500v2-wrs-vxworks to
1015 # powerpc-wrs-vxworksspe. Let's keep the original alias here when
1016 # generating s-oscons.ads.
1017 target=$(target_alias)
1022 # target pairs for vthreads runtime
1023 LIBGNAT_TARGET_PAIRS = \
1024 a-elchha.adb<libgnat/a-elchha__vxworks-ppc-full.adb \
1025 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1026 a-numaux.ads<libgnat/a-numaux__vxworks.ads \
1027 g-io.adb<hie/g-io__vxworks-ppc-cert.adb \
1028 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
1029 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1030 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1031 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1032 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1033 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1034 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
1035 s-parame.ads<libgnat/s-parame__ae653.ads \
1036 s-parame.adb<libgnat/s-parame__vxworks.adb \
1037 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1038 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1039 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1040 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb \
1041 s-vxwext.adb<libgnarl/s-vxwext__noints.adb \
1042 s-vxwext.ads<libgnarl/s-vxwext__vthreads.ads \
1043 s-vxwork.ads<libgnarl/s-vxwork__ppc.ads \
1044 system.ads<libgnat/system-vxworks-$(ARCH_STR)-vthread.ads \
1045 $(ATOMICS_TARGET_PAIRS) \
1046 $(ATOMICS_BUILTINS_TARGET_PAIRS)
1050 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1052 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o
1053 EXTRA_GNATRTL_TASKING_OBJS=i-vxinco.o s-vxwork.o s-vxwext.o
1055 EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o
1056 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1058 # Extra pairs for the vthreads runtime
1059 ifeq ($(strip $(filter-out vthreads,$(THREAD_KIND))),)
1060 LIBGNAT_TARGET_PAIRS += \
1061 s-thread.adb<libgnat/s-thread__ae653.adb \
1062 s-osvers.ads<libgnat/s-osvers__vxworks-653.ads \
1063 $(DUMMY_SOCKETS_TARGET_PAIRS)
1065 GNATRTL_SOCKETS_OBJS =
1066 EXTRA_GNATRTL_NONTASKING_OBJS += s-thread.o s-osvers.o
1068 LIBGNAT_TARGET_PAIRS += \
1069 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1070 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1071 g-stsifd.adb<libgnat/g-stsifd__sockets.adb
1076 # VxWorksae / VxWorks 653 for x86 (vxsim) - ?? VxWorks mils not implemented
1077 ifeq ($(strip $(filter-out %86 wrs vxworksae,$(target_cpu) $(target_vendor) $(target_os))),)
1078 # target pairs for kernel + vthreads runtime
1079 LIBGNAT_TARGET_PAIRS = \
1080 a-elchha.adb<libgnat/a-elchha__vxworks-ppc-full.adb \
1081 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1082 a-numaux.ads<libgnat/a-numaux__vxworks.ads \
1083 g-io.adb<hie/g-io__vxworks-ppc-cert.adb \
1084 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
1085 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1086 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1087 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1088 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1089 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1090 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
1091 s-parame.ads<libgnat/s-parame__ae653.ads \
1092 s-parame.adb<libgnat/s-parame__vxworks.adb \
1093 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1094 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1095 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1096 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb \
1097 s-vxwext.adb<libgnarl/s-vxwext__noints.adb \
1098 s-vxwext.ads<libgnarl/s-vxwext__vthreads.ads \
1099 s-vxwork.ads<libgnarl/s-vxwork__x86.ads \
1100 system.ads<libgnat/system-vxworks-x86-vthread.ads \
1101 $(ATOMICS_TARGET_PAIRS) \
1102 $(ATOMICS_BUILTINS_TARGET_PAIRS)
1106 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1108 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-thread.o
1109 EXTRA_GNATRTL_TASKING_OBJS=i-vxinco.o s-vxwork.o s-vxwext.o
1111 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1112 GNATRTL_SOCKETS_OBJS =
1114 # Extra pairs for the vthreads runtime
1115 ifeq ($(strip $(filter-out vthreads,$(THREAD_KIND))),)
1116 LIBGNAT_TARGET_PAIRS += \
1117 s-thread.adb<libgnat/s-thread__ae653.adb \
1118 s-osvers.ads<libgnat/s-osvers__vxworks-653.ads \
1119 $(DUMMY_SOCKETS_TARGET_PAIRS)
1121 GNATRTL_SOCKETS_OBJS =
1122 EXTRA_GNATRTL_NONTASKING_OBJS += s-thread.o s-osvers.o
1124 LIBGNAT_TARGET_PAIRS += \
1125 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1126 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1127 g-stsifd.adb<libgnat/g-stsifd__sockets.adb
1132 # x86/x86_64 VxWorks
1133 ifeq ($(strip $(filter-out %86 x86_64 wrs vxworks vxworks7,$(target_cpu) $(target_vendor) $(target_os))),)
1137 VX=$(strip $(if $(filter vxworks7%, $(target_os)), vxworks7, vxworks))
1139 GCC_SPEC_FILES+=$(VX)-gnat-crtbe-link.spec
1141 ifeq ($(strip $(filter-out x86_64, $(target_cpu))),)
1143 LIBGNAT_TARGET_PAIRS=$(X86_64_TARGET_PAIRS)
1146 LIBGNAT_TARGET_PAIRS=$(X86_TARGET_PAIRS)
1149 LIBGNAT_TARGET_PAIRS+= \
1150 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1151 i-vxwork.ads<libgnat/i-vxwork__x86.ads \
1152 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1153 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1154 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
1155 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1156 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1157 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
1158 s-parame.ads<libgnat/s-parame__vxworks.ads \
1159 s-parame.adb<libgnat/s-parame__vxworks.adb \
1160 s-stchop.ads<libgnat/s-stchop__limit.ads \
1161 s-stchop.adb<libgnat/s-stchop__vxworks.adb \
1162 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1163 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1164 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1165 s-vxwork.ads<libgnarl/s-vxwork__x86.ads \
1166 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1167 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1168 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
1169 $(ATOMICS_TARGET_PAIRS)
1171 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1173 # The CPU setting for VxSim varies with the
1174 # host (Windows or Linux)
1175 # target (VxWorks6 or VxWorks7)
1176 # runtime (rtp or kernel)
1177 # -------------------------------------------------------------
1179 # Windows (host_os = mingw32)
1180 # kernel SIMNT SIMNT
1181 # rtp SIMPENTIUM SIMNT
1182 # Linux (host_os = linux-gnu)
1183 # kernel SIMLINUX SIMLINUX
1184 # rtp SIMPENTIUM SIMLINUX
1185 # -------------------------------------------------------------
1186 # It is overridden by VXSIM_CPU only in files init-vxsim.c and
1187 # sigtramp-vxworks-vxsim.c which contain functions determined at
1188 # runtime to be called if a program is running on VxSim vs real hardware
1189 # (due to differences in signal context for unwinding).
1191 ifneq ($(strip $(filter-out vxworks7, $(target_os))),)
1192 ifeq ($(strip $(filter-out vxworks rtp rtp-smp,$(target_os) $(THREAD_KIND))),)
1193 VXSIM_CPU = SIMPENTIUM
1195 ifeq ($(strip $(filter-out kernel kernel-smp rtp rtp-smp,$(THREAD_KIND))),)
1196 ifeq ($(strip $(filter-out linux%,$(host_os))),)
1198 VXSIM_CPU = SIMLINUX
1206 GNATLIBCFLAGS_FOR_C := $(GNATLIBCFLAGS_FOR_C) -D__VXSIM_CPU__=$(VXSIM_CPU)
1209 ifeq ($(strip $(filter-out rtp,$(THREAD_KIND))),)
1210 LIBGNAT_TARGET_PAIRS += \
1211 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1212 s-vxwext.adb<libgnarl/s-vxwext__rtp.adb \
1213 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-rtp.adb \
1214 system.ads<libgnat/$(SVX)-x86-rtp.ads
1216 ifeq ($(strip $(filter-out rtp-smp, $(THREAD_KIND))),)
1217 LIBGNAT_TARGET_PAIRS += \
1218 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1219 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1220 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \
1221 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1222 system.ads<libgnat/$(SVX)-$(X86CPU)-rtp-smp.ads
1224 EXTRA_LIBGNAT_OBJS+=affinity.o
1226 ifeq ($(strip $(filter-out kernel-smp, $(THREAD_KIND))),)
1227 LIBGNAT_TARGET_PAIRS += \
1228 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1229 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1230 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1231 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1232 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \
1233 system.ads<libgnat/$(SVX)-$(X86CPU)-kernel.ads
1235 EXTRA_LIBGNAT_OBJS+=affinity.o
1237 LIBGNAT_TARGET_PAIRS += \
1238 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1239 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb
1241 ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
1242 LIBGNAT_TARGET_PAIRS += \
1243 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1244 s-vxwext.adb<libgnarl/s-vxwext__kernel.adb \
1245 system.ads<libgnat/$(SVX)-x86-kernel.ads
1247 LIBGNAT_TARGET_PAIRS += \
1248 system.ads<libgnat/system-vxworks-x86.ads
1252 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o
1256 EXTRA_GNATRTL_NONTASKING_OBJS += s-stchop.o
1257 EXTRA_GNATRTL_TASKING_OBJS += i-vxinco.o s-vxwork.o s-vxwext.o
1259 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1261 EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o
1262 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1264 EXTRA_ADALIB_OBJS+=$(VX_CRTBE_EXTRA_ADALIB_OBJS)
1265 EXTRA_LIBGNAT_SRCS+=vx_crtbegin.inc
1267 ifeq ($(strip $(filter-out vxworks7%, $(target_os))),)
1268 GCC_SPEC_FILES+=vxworks7-$(X86CPU)-rtp-base-link.spec
1270 GCC_SPEC_FILES+=vxworks-x86-link.spec
1271 GCC_SPEC_FILES+=vxworks-cert-x86-link.spec
1272 GCC_SPEC_FILES+=vxworks-smp-x86-link.spec
1276 # ARM and Aarch64 VxWorks
1277 ifeq ($(strip $(filter-out aarch64 arm% coff wrs vx%,$(target_cpu) $(target_vendor) $(target_os))),)
1279 ifeq ($(strip $(filter-out aarch64, $(target_cpu))),)
1283 SIGTRAMP_OBJ=sigtramp-vxworks.o
1285 ifeq ($(strip $(filter-out arm%, $(target_cpu))),)
1287 ifeq ($(strip $(filter-out vxworks7%, $(target_os))),)
1290 SIGTRAMP_OBJ=sigtramp-armvxworks.o
1294 SIGTRAMP_OBJ=sigtramp-vxworks.o
1302 GCC_SPEC_FILES+=$(VX)-gnat-crtbe-link.spec
1304 LIBGNAT_TARGET_PAIRS = \
1305 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1306 a-numaux.ads<libgnat/a-numaux__vxworks.ads \
1307 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
1308 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1309 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1310 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1311 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1312 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1313 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
1314 s-parame.ads<libgnat/s-parame__vxworks.ads \
1315 s-parame.adb<libgnat/s-parame__vxworks.adb \
1316 s-stchop.ads<libgnat/s-stchop__limit.ads \
1317 s-stchop.adb<libgnat/s-stchop__vxworks.adb \
1318 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1319 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1320 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1321 s-vxwork.ads<libgnarl/s-vxwork__$(ARCH_STR).ads \
1322 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1323 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1324 g-stsifd.adb<libgnat/g-stsifd__sockets.adb
1326 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1328 ifeq ($(strip $(filter-out rtp-smp,$(THREAD_KIND))),)
1329 LIBGNAT_TARGET_PAIRS += \
1330 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1331 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1332 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \
1333 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1334 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp-smp.ads
1336 EXTRA_LIBGNAT_OBJS+=affinity.o
1338 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1339 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1341 ifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),)
1342 LIBGNAT_TARGET_PAIRS += \
1343 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1344 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1345 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1346 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \
1347 system.ads<libgnat/$(SVX)-$(ARCH_STR).ads
1349 EXTRA_LIBGNAT_OBJS+=affinity.o
1351 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1352 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1354 LIBGNAT_TARGET_PAIRS += \
1355 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb \
1356 system.ads<libgnat/$(SVX)-$(ARCH_STR).ads
1358 ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
1359 LIBGNAT_TARGET_PAIRS += \
1360 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1361 s-vxwext.adb<libgnarl/s-vxwext__kernel.adb
1363 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1364 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1369 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o \
1371 EXTRA_GNATRTL_TASKING_OBJS=i-vxinco.o s-vxwork.o s-vxwext.o
1373 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1375 ifeq ($(strip $(filter-out arm vxworks7%, $(target_cpu) $(target_os))),)
1376 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec
1378 ifeq ($(strip $(filter-out aarch64, $(target_cpu))),)
1379 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec
1381 EXTRA_ADALIB_OBJS+=$(VX_CRTBE_EXTRA_ADALIB_OBJS)
1382 EXTRA_LIBGNAT_SRCS+=vx_crtbegin.inc
1384 ifneq ($(strip $(filter-out vxworks7%, $(target_os))),)
1385 GCC_SPEC_FILES+=vxworks-arm-link.spec
1386 GCC_SPEC_FILES+=vxworks-smp-arm-link.spec
1392 ifeq ($(strip $(filter-out arm% linux-androideabi,$(target_cpu) $(target_os))),)
1393 LIBGNAT_TARGET_PAIRS = \
1394 a-intnam.ads<libgnarl/a-intnam__linux.ads \
1395 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1396 s-intman.adb<libgnarl/s-intman__android.adb \
1397 s-linux.ads<libgnarl/s-linux__android.ads \
1398 s-osinte.adb<libgnarl/s-osinte__android.adb \
1399 s-osinte.ads<libgnarl/s-osinte__android.ads \
1400 s-osprim.adb<libgnat/s-osprim__posix.adb \
1401 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1402 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1403 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1404 $(ATOMICS_TARGET_PAIRS) \
1405 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1406 system.ads<libgnat/system-linux-arm.ads
1408 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1410 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
1411 EXTRA_LIBGNAT_OBJS+=sigtramp-armdroid.o
1412 EXTRA_LIBGNAT_SRCS+=sigtramp.h
1415 GNATLIB_SHARED = gnatlib-shared-dual
1416 LIBRARY_VERSION := $(LIB_VERSION)
1420 ifeq ($(strip $(filter-out aarch64 %qnx,$(target_cpu) $(target_os))),)
1421 LIBGNAT_TARGET_PAIRS = \
1422 a-intnam.ads<libgnarl/a-intnam__qnx.ads \
1423 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1424 s-intman.adb<libgnarl/s-intman__qnx.adb \
1425 s-osinte.adb<libgnarl/s-osinte__qnx.adb \
1426 s-osinte.ads<libgnarl/s-osinte__qnx.ads \
1427 s-osprim.adb<libgnat/s-osprim__posix.adb \
1428 s-qnx.ads<libgnarl/s-qnx.ads \
1429 s-taprop.adb<libgnarl/s-taprop__qnx.adb \
1430 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1431 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1432 g-soliop.ads<libgnat/g-soliop__qnx.ads \
1433 $(ATOMICS_TARGET_PAIRS) \
1434 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1435 system.ads<libgnat/system-qnx-aarch64.ads
1437 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1439 EXTRA_GNATRTL_TASKING_OBJS=s-qnx.o
1440 EXTRA_LIBGNAT_OBJS+=sigtramp-qnx.o
1441 EXTRA_LIBGNAT_SRCS+=sigtramp.h
1444 SO_OPTS= -shared-libgcc -Wl,-soname,
1447 GNATLIB_SHARED = gnatlib-shared-dual
1448 LIBRARY_VERSION := $(LIB_VERSION)
1452 ifeq ($(strip $(filter-out sparc% sun solaris%,$(target_cpu) $(target_vendor) $(target_os))),)
1453 LIBGNAT_TARGET_PAIRS = \
1454 a-intnam.ads<libgnarl/a-intnam__solaris.ads \
1455 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1456 s-intman.adb<libgnarl/s-intman__solaris.adb \
1457 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1458 s-osinte.adb<libgnarl/s-osinte__solaris.adb \
1459 s-osinte.ads<libgnarl/s-osinte__solaris.ads \
1460 s-osprim.adb<libgnat/s-osprim__solaris.adb \
1461 s-taprop.adb<libgnarl/s-taprop__solaris.adb \
1462 s-tasinf.adb<libgnarl/s-tasinf__solaris.adb \
1463 s-tasinf.ads<libgnarl/s-tasinf__solaris.ads \
1464 s-taspri.ads<libgnarl/s-taspri__solaris.ads \
1465 s-tpopsp.adb<libgnarl/s-tpopsp__solaris.adb \
1466 g-soliop.ads<libgnat/g-soliop__solaris.ads \
1467 $(TRASYM_DWARF_UNIX_PAIRS) \
1468 $(ATOMICS_TARGET_PAIRS) \
1469 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1470 system.ads<libgnat/system-solaris-sparc.ads
1472 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1475 THREADSLIB = -lposix4 -lthread
1476 MISCLIB = -lposix4 -lnsl -lsocket
1478 GNATLIB_SHARED = gnatlib-shared-dual
1480 LIBRARY_VERSION := $(LIB_VERSION)
1483 # x86 and x86-64 solaris
1484 ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(target_cpu) $(target_os))),)
1485 LIBGNAT_TARGET_PAIRS_COMMON = \
1486 a-intnam.ads<libgnarl/a-intnam__solaris.ads \
1487 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1488 s-intman.adb<libgnarl/s-intman__solaris.adb \
1489 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1490 s-osinte.adb<libgnarl/s-osinte__solaris.adb \
1491 s-osinte.ads<libgnarl/s-osinte__solaris.ads \
1492 s-osprim.adb<libgnat/s-osprim__solaris.adb \
1493 s-taprop.adb<libgnarl/s-taprop__solaris.adb \
1494 s-tasinf.adb<libgnarl/s-tasinf__solaris.adb \
1495 s-tasinf.ads<libgnarl/s-tasinf__solaris.ads \
1496 s-taspri.ads<libgnarl/s-taspri__solaris.ads \
1497 s-tpopsp.adb<libgnarl/s-tpopsp__solaris.adb \
1498 g-soliop.ads<libgnat/g-soliop__solaris.ads \
1499 $(TRASYM_DWARF_UNIX_PAIRS) \
1500 $(ATOMICS_TARGET_PAIRS) \
1501 system.ads<libgnat/system-solaris-x86.ads
1503 ifeq ($(strip $(filter-out %86 solaris2%,$(target_cpu) $(target_os))),)
1504 ifeq ($(strip $(MULTISUBDIR)),/amd64)
1505 LIBGNAT_TARGET_PAIRS = \
1506 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_64_TARGET_PAIRS)
1508 LIBGNAT_TARGET_PAIRS = \
1509 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_TARGET_PAIRS)
1512 ifeq ($(strip $(MULTISUBDIR)),/32)
1513 LIBGNAT_TARGET_PAIRS = \
1514 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_TARGET_PAIRS)
1516 LIBGNAT_TARGET_PAIRS = \
1517 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_64_TARGET_PAIRS)
1521 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1522 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1525 THREADSLIB = -lposix4 -lthread
1526 MISCLIB = -lposix4 -lnsl -lsocket
1528 GNATLIB_SHARED = gnatlib-shared-dual
1530 LIBRARY_VERSION := $(LIB_VERSION)
1534 ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),)
1535 LIBGNAT_TARGET_PAIRS = \
1536 a-intnam.ads<libgnarl/a-intnam__linux.ads \
1537 a-synbar.adb<libgnarl/a-synbar__posix.adb \
1538 a-synbar.ads<libgnarl/a-synbar__posix.ads \
1539 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1540 s-intman.adb<libgnarl/s-intman__posix.adb \
1541 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
1542 $(TRASYM_DWARF_UNIX_PAIRS) \
1543 g-sercom.adb<libgnat/g-sercom__linux.adb \
1544 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
1545 a-exetim.adb<libgnarl/a-exetim__posix.adb \
1546 a-exetim.ads<libgnarl/a-exetim__default.ads \
1547 s-linux.ads<libgnarl/s-linux.ads \
1548 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1549 $(ATOMICS_TARGET_PAIRS) \
1550 system.ads<libgnat/system-linux-x86.ads
1552 ifeq ($(strip $(MULTISUBDIR)),/64)
1553 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
1555 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
1558 LIBGNAT_TARGET_PAIRS += \
1559 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1560 s-osinte.ads<libgnarl/s-osinte__linux.ads \
1561 s-osprim.adb<libgnat/s-osprim__posix.adb \
1562 s-taprop.adb<libgnarl/s-taprop__linux.adb \
1563 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
1564 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
1565 s-taspri.ads<libgnarl/s-taspri__posix.ads
1568 THREADSLIB = -lpthread -lrt
1569 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1570 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1571 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
1573 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1575 GNATLIB_SHARED = gnatlib-shared-dual
1578 LIBRARY_VERSION := $(LIB_VERSION)
1580 GNATLIBCFLAGS_FOR_GCCSJLJ+=-fno-omit-frame-pointer -momit-leaf-frame-pointer
1584 ifeq ($(strip $(filter-out %86 kfreebsd%,$(target_cpu) $(target_os))),)
1585 LIBGNAT_TARGET_PAIRS = \
1586 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1587 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1588 s-intman.adb<libgnarl/s-intman__posix.adb \
1589 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1590 s-osinte.ads<libgnarl/s-osinte__kfreebsd-gnu.ads \
1591 s-osprim.adb<libgnat/s-osprim__posix.adb \
1592 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1593 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1594 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1595 $(TRASYM_DWARF_UNIX_PAIRS) \
1596 $(ATOMICS_TARGET_PAIRS) \
1597 $(X86_TARGET_PAIRS) \
1598 system.ads<libgnat/system-freebsd.ads
1600 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1602 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1603 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1606 THREADSLIB = -lpthread
1607 GNATLIB_SHARED = gnatlib-shared-dual
1609 LIBRARY_VERSION := $(LIB_VERSION)
1613 # i[3456]86-pc-gnu i.e. GNU Hurd
1614 ifeq ($(strip $(filter-out %86 pc gnu,$(target_cpu) $(target_vendor) $(target_os))),)
1615 LIBGNAT_TARGET_PAIRS = \
1616 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1617 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1618 s-intman.adb<libgnarl/s-intman__posix.adb \
1619 s-osinte.adb<libgnarl/s-osinte__gnu.adb \
1620 s-osinte.ads<libgnarl/s-osinte__gnu.ads \
1621 s-osprim.adb<libgnat/s-osprim__posix.adb \
1622 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1623 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1624 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1625 $(ATOMICS_TARGET_PAIRS) \
1626 $(X86_TARGET_PAIRS) \
1627 system.ads<libgnat/system-freebsd.ads
1629 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1631 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
1634 THREADSLIB = -lpthread
1635 GNATLIB_SHARED = gnatlib-shared-dual
1637 LIBRARY_VERSION := $(LIB_VERSION)
1640 ifeq ($(strip $(filter-out x86_64 kfreebsd%,$(target_cpu) $(target_os))),)
1641 LIBGNAT_TARGET_PAIRS = \
1642 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1643 a-numaux.adb<libgnat/a-numaux__x86.adb \
1644 a-numaux.ads<libgnat/a-numaux__x86.ads \
1645 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1646 s-intman.adb<libgnarl/s-intman__posix.adb \
1647 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1648 s-osinte.ads<libgnarl/s-osinte__kfreebsd-gnu.ads \
1649 s-osprim.adb<libgnat/s-osprim__posix.adb \
1650 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1651 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1652 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1653 system.ads<libgnat/system-freebsd.ads
1655 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1658 THREADSLIB = -lpthread
1659 GNATLIB_SHARED = gnatlib-shared-dual
1661 LIBRARY_VERSION := $(LIB_VERSION)
1665 ifeq ($(strip $(filter-out %aarch64 freebsd%,$(target_cpu) $(target_os))),)
1666 LIBGNAT_TARGET_PAIRS = \
1667 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1668 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1669 s-intman.adb<libgnarl/s-intman__posix.adb \
1670 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1671 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1672 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1673 s-osprim.adb<libgnat/s-osprim__posix.adb \
1674 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1675 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1676 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1677 $(ATOMICS_TARGET_PAIRS) \
1678 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1679 system.ads<libgnat/system-freebsd.ads
1681 GNATLIB_SHARED = gnatlib-shared-dual
1684 THREADSLIB= -lpthread
1686 LIBRARY_VERSION := $(LIB_VERSION)
1691 ifeq ($(strip $(filter-out %86 freebsd%,$(target_cpu) $(target_os))),)
1692 LIBGNAT_TARGET_PAIRS = \
1693 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1694 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1695 s-intman.adb<libgnarl/s-intman__posix.adb \
1696 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1697 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1698 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1699 s-osprim.adb<libgnat/s-osprim__posix.adb \
1700 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1701 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1702 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1703 $(TRASYM_DWARF_UNIX_PAIRS) \
1704 $(ATOMICS_TARGET_PAIRS) \
1705 $(X86_TARGET_PAIRS) \
1706 system.ads<libgnat/system-freebsd.ads
1708 GNATLIB_SHARED = gnatlib-shared-dual
1710 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1711 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1714 THREADSLIB= -lpthread
1716 LIBRARY_VERSION := $(LIB_VERSION)
1721 ifeq ($(strip $(filter-out %86_64 freebsd%,$(target_cpu) $(target_os))),)
1722 LIBGNAT_TARGET_PAIRS = \
1723 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1724 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1725 s-intman.adb<libgnarl/s-intman__posix.adb \
1726 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1727 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1728 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1729 s-osprim.adb<libgnat/s-osprim__posix.adb \
1730 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1731 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1732 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1733 $(TRASYM_DWARF_UNIX_PAIRS) \
1734 $(ATOMICS_TARGET_PAIRS) \
1735 $(X86_64_TARGET_PAIRS) \
1736 system.ads<libgnat/system-freebsd.ads
1738 GNATLIB_SHARED = gnatlib-shared-dual
1740 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1741 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1744 THREADSLIB= -lpthread
1746 LIBRARY_VERSION := $(LIB_VERSION)
1751 ifeq ($(strip $(filter-out %86_64 dragonfly%,$(target_cpu) $(target_os))),)
1752 LIBGNAT_TARGET_PAIRS = \
1753 a-intnam.ads<libgnarl/a-intnam__dragonfly.ads \
1754 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1755 s-intman.adb<libgnarl/s-intman__posix.adb \
1756 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1757 s-osinte.adb<libgnarl/s-osinte__dragonfly.adb \
1758 s-osinte.ads<libgnarl/s-osinte__dragonfly.ads \
1759 s-osprim.adb<libgnat/s-osprim__posix.adb \
1760 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1761 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1762 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1763 $(ATOMICS_TARGET_PAIRS) \
1764 $(X86_64_TARGET_PAIRS) \
1765 system.ads<libgnat/system-dragonfly-x86_64.ads
1767 GNATLIB_SHARED = gnatlib-shared-dual
1769 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
1772 THREADSLIB= -lpthread
1774 LIBRARY_VERSION := $(LIB_VERSION)
1779 ifeq ($(strip $(filter-out s390% linux%,$(target_cpu) $(target_os))),)
1780 LIBGNAT_TARGET_PAIRS = \
1781 a-intnam.ads<libgnarl/a-intnam__linux.ads \
1782 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1783 s-intman.adb<libgnarl/s-intman__posix.adb \
1784 s-linux.ads<libgnarl/s-linux.ads \
1785 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1786 s-osinte.ads<libgnarl/s-osinte__linux.ads \
1787 s-osprim.adb<libgnat/s-osprim__posix.adb \
1788 s-taprop.adb<libgnarl/s-taprop__linux.adb \
1789 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
1790 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
1791 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
1792 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1793 system.ads<libgnat/system-linux-s390.ads
1795 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1797 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
1799 THREADSLIB = -lpthread
1800 GNATLIB_SHARED = gnatlib-shared-dual
1801 LIBRARY_VERSION := $(LIB_VERSION)
1805 ifeq ($(strip $(filter-out hppa% hp hpux10%,$(target_cpu) $(target_vendor) $(target_os))),)
1806 LIBGNAT_TARGET_PAIRS = \
1807 a-excpol.adb<libgnat/a-excpol__abort.adb \
1808 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
1809 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1810 s-interr.adb<libgnarl/s-interr__sigaction.adb \
1811 s-intman.adb<libgnarl/s-intman__posix.adb \
1812 s-osinte.adb<libgnarl/s-osinte__hpux-dce.adb \
1813 s-osinte.ads<libgnarl/s-osinte__hpux-dce.ads \
1814 s-parame.ads<libgnat/s-parame__hpux.ads \
1815 s-osprim.adb<libgnat/s-osprim__posix.adb \
1816 s-taprop.adb<libgnarl/s-taprop__hpux-dce.adb \
1817 s-taspri.ads<libgnarl/s-taspri__hpux-dce.ads \
1818 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1819 system.ads<libgnat/system-hpux.ads
1825 ifeq ($(strip $(filter-out hppa% hp hpux11%,$(target_cpu) $(target_vendor) $(target_os))),)
1826 LIBGNAT_TARGET_PAIRS = \
1827 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
1828 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1829 s-intman.adb<libgnarl/s-intman__posix.adb \
1830 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1831 s-osinte.ads<libgnarl/s-osinte__hpux.ads \
1832 s-parame.ads<libgnat/s-parame__hpux.ads \
1833 s-osprim.adb<libgnat/s-osprim__posix.adb \
1834 s-traceb.adb<libgnat/s-traceb__hpux.adb \
1835 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1836 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1837 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1838 system.ads<libgnat/system-hpux.ads
1841 TGT_LIB = /usr/lib/libcl.a
1842 THREADSLIB = -lpthread
1846 GNATLIB_SHARED = gnatlib-shared-dual
1847 LIBRARY_VERSION := $(LIB_VERSION)
1851 ifeq ($(strip $(filter-out ibm aix%,$(target_vendor) $(target_os))),)
1852 LIBGNAT_TARGET_PAIRS = \
1853 a-intnam.ads<libgnarl/a-intnam__aix.ads \
1854 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1855 s-intman.adb<libgnarl/s-intman__posix.adb \
1856 s-osinte.adb<libgnarl/s-osinte__aix.adb \
1857 s-osinte.ads<libgnarl/s-osinte__aix.ads \
1858 s-osprim.adb<libgnat/s-osprim__posix.adb \
1859 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1860 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1861 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1862 $(TRASYM_DWARF_UNIX_PAIRS) \
1863 $(ATOMICS_TARGET_PAIRS) \
1864 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1865 system.ads<libgnat/system-aix.ads
1867 ifneq ($(target_os),)
1868 ifeq ($(findstring ppc64, \
1869 $(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) \
1870 -print-multi-os-directory)), \
1872 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-aix.adb
1874 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1878 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1880 THREADSLIB = -lpthreads
1886 # LynxOS 178 and LynxOS 178 Elf
1887 ifeq ($(strip $(filter-out lynxos178%,$(target_os))),)
1888 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1890 LIBGNAT_TARGET_PAIRS = \
1891 a-intnam.ads<libgnarl/a-intnam__lynxos.ads \
1892 g-soliop.ads<libgnat/g-soliop__lynxos.ads \
1893 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1894 s-intman.adb<libgnarl/s-intman__lynxos.adb \
1895 s-osinte.adb<libgnarl/s-osinte__lynxos178.adb \
1896 s-osprim.ads<libgnat/s-osprim__lynxos.ads \
1897 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1898 s-taspri.ads<libgnarl/s-taspri__lynxos.ads \
1899 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb
1901 ifeq ($(strip $(filter-out powerpc%, $(target_cpu))),)
1902 LIBGNAT_TARGET_PAIRS += system.ads<libgnat/system-lynxos178-ppc.ads
1904 ifeq ($(strip $(filter-out %86, $(target_cpu))),)
1905 LIBGNAT_TARGET_PAIRS += system.ads<libgnat/system-lynxos178-x86.ads
1906 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
1909 ifeq ($(strip $(filter-out lynxos178e,$(target_os))),)
1910 LIBGNAT_TARGET_PAIRS += \
1911 s-osinte.ads<libgnarl/s-osinte__lynxos178e.ads \
1912 s-osprim.adb<libgnat/s-osprim__posix2008.adb \
1913 s-tracon.adb<hie/s-tracon__ppc-eabi.adb
1920 ifeq ($(strip $(filter-out rtems%,$(target_os))),)
1921 LIBGNAT_TARGET_PAIRS = \
1922 system.ads<libgnat/system-rtems.ads \
1923 a-intnam.ads<libgnarl/a-intnam__rtems.ads \
1924 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1925 s-intman.adb<libgnarl/s-intman__posix.adb \
1926 s-osinte.adb<libgnarl/s-osinte__rtems.adb \
1927 s-osinte.ads<libgnarl/s-osinte__rtems.ads \
1928 s-osprim.adb<libgnat/s-osprim__rtems.adb \
1929 s-parame.adb<libgnat/s-parame__rtems.adb \
1930 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1931 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1932 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
1933 s-stchop.adb<libgnat/s-stchop__rtems.adb \
1934 s-interr.adb<libgnarl/s-interr__hwint.adb
1935 ifeq ($(strip $(filter-out arm%, $(target_cpu))),)
1943 ifeq ($(strip $(filter-out powerpc% %86 sysgo pikeos,$(target_cpu) $(target_vendor) $(target_os)))),)
1944 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1947 # *-elf, *-eabi, or *-eabispe
1948 ifeq ($(strip $(filter-out elf eabi eabispe,$(target_os))),)
1949 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1952 ifeq ($(strip $(filter-out %djgpp,$(target_os))),)
1953 GNATRTL_SOCKETS_OBJS =
1955 LIBGNAT_TARGET_PAIRS = \
1956 a-intnam.ads<libgnarl/a-intnam__dummy.ads \
1957 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
1958 s-intman.adb<libgnarl/s-intman__dummy.adb \
1959 s-osinte.ads<libgnarl/s-osinte__dummy.ads \
1960 s-osprim.adb<libgnat/s-osprim__unix.adb \
1961 s-taprop.adb<libgnarl/s-taprop__dummy.adb \
1962 s-taspri.ads<libgnarl/s-taspri__dummy.ads \
1963 system.ads<libgnat/system-djgpp.ads \
1964 $(DUMMY_SOCKETS_TARGET_PAIRS)
1970 ifeq ($(strip $(filter-out cygwin% mingw32% pe,$(target_os))),)
1971 # Cygwin provides a full Posix environment, and so we use the default
1972 # versions g-socthi rather than the Windows-specific MinGW version.
1973 # Ideally we would use all the default versions for Cygwin and none
1974 # of the MinGW versions, but for historical reasons the Cygwin port
1975 # has always been a CygMing frankenhybrid and it is a long-term project
1976 # to disentangle them.
1977 ifeq ($(strip $(filter-out cygwin%,$(target_os))),)
1978 LIBGNAT_TARGET_PAIRS = \
1979 g-socthi.ads<libgnat/g-socthi.ads \
1980 g-socthi.adb<libgnat/g-socthi.adb
1982 LIBGNAT_TARGET_PAIRS = \
1983 g-socthi.ads<libgnat/g-socthi__mingw.ads \
1984 g-socthi.adb<libgnat/g-socthi__mingw.adb
1986 LIBGNAT_TARGET_PAIRS += \
1987 a-dirval.adb<libgnat/a-dirval__mingw.adb \
1988 a-excpol.adb<libgnat/a-excpol__abort.adb \
1989 s-gloloc.adb<libgnat/s-gloloc__mingw.adb \
1990 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
1991 s-taspri.ads<libgnarl/s-taspri__mingw.ads \
1992 s-tasinf.adb<libgnarl/s-tasinf__mingw.adb \
1993 s-tasinf.ads<libgnarl/s-tasinf__mingw.ads \
1994 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
1995 g-soliop.ads<libgnat/g-soliop__mingw.ads \
1996 $(ATOMICS_TARGET_PAIRS) \
1997 system.ads<libgnat/system-mingw.ads
1999 LIBGNAT_TARGET_PAIRS += \
2000 a-exetim.adb<libgnarl/a-exetim__mingw.adb \
2001 a-exetim.ads<libgnarl/a-exetim__mingw.ads \
2002 a-intnam.ads<libgnarl/a-intnam__mingw.ads \
2003 g-sercom.adb<libgnat/g-sercom__mingw.adb \
2004 $(TRASYM_DWARF_MINGW_PAIRS) \
2005 s-tsmona.adb<libgnat/s-tsmona__mingw.adb \
2006 s-interr.adb<libgnarl/s-interr__sigaction.adb \
2007 s-intman.adb<libgnarl/s-intman__mingw.adb \
2008 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2009 s-osinte.ads<libgnarl/s-osinte__mingw.ads \
2010 s-osprim.adb<libgnat/s-osprim__mingw.adb \
2011 s-taprop.adb<libgnarl/s-taprop__mingw.adb
2013 ifeq ($(strip $(filter-out x86_64%,$(target_cpu))),)
2014 ifeq ($(strip $(MULTISUBDIR)),/32)
2015 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2016 SO_OPTS= -m32 -Wl,-soname,
2018 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2019 SO_OPTS = -m64 -Wl,-soname,
2022 ifeq ($(strip $(MULTISUBDIR)),/64)
2023 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2024 SO_OPTS = -m64 -Wl,-soname,
2026 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2027 SO_OPTS = -m32 -Wl,-soname,
2031 EXTRA_GNATRTL_NONTASKING_OBJS += \
2032 s-win32.o s-winext.o g-regist.o g-sse.o g-ssvety.o
2033 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_MINGW_OBJS)
2034 EXTRA_GNATRTL_TASKING_OBJS = a-exetim.o
2035 EXTRA_LIBGNAT_SRCS+=mingw32.h
2038 # ??? This will be replaced by gnatlib-shared-dual-win32 when GNAT
2039 # auto-import support for array/record will be done.
2040 GNATLIB_SHARED = gnatlib-shared-win32
2044 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
2047 EXTRA_GNATTOOLS = ../../gnatdll$(exeext)
2048 EXTRA_GNATMAKE_OBJS = mdll.o mdll-utl.o mdll-fil.o
2050 LIBRARY_VERSION := $(LIB_VERSION)
2054 ifeq ($(strip $(filter-out mips% linux%,$(target_cpu) $(target_os))),)
2055 LIBGNAT_TARGET_PAIRS = \
2056 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2057 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2058 s-intman.adb<libgnarl/s-intman__posix.adb \
2059 s-linux.ads<libgnarl/s-linux__mips.ads \
2060 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2061 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2062 s-osprim.adb<libgnat/s-osprim__posix.adb \
2063 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2064 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2065 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2066 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2067 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2068 g-sercom.adb<libgnat/g-sercom__linux.adb \
2069 system.ads<libgnat/system-linux-mips.ads
2071 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2073 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2075 THREADSLIB = -lpthread
2076 GNATLIB_SHARED = gnatlib-shared-dual
2078 LIBRARY_VERSION := $(LIB_VERSION)
2081 # PowerPC and e500v2 Linux
2082 ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
2083 LIBGNAT_TARGET_PAIRS_COMMON = \
2084 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2085 a-exetim.ads<libgnarl/a-exetim__default.ads \
2086 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2087 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2088 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2089 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2090 s-intman.adb<libgnarl/s-intman__posix.adb \
2091 s-linux.ads<libgnarl/s-linux.ads \
2092 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2093 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2094 g-sercom.adb<libgnat/g-sercom__linux.adb \
2095 $(TRASYM_DWARF_UNIX_PAIRS) \
2096 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2097 $(ATOMICS_TARGET_PAIRS) \
2098 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2099 system.ads<libgnat/system-linux-ppc.ads
2101 LIBGNAT_TARGET_PAIRS = \
2102 $(LIBGNAT_TARGET_PAIRS_COMMON) \
2103 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2104 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2105 s-osprim.adb<libgnat/s-osprim__posix.adb \
2106 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2107 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2108 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2109 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads
2111 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2113 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2114 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2117 THREADSLIB = -lpthread -lrt
2118 GNATLIB_SHARED = gnatlib-shared-dual
2121 LIBRARY_VERSION := $(LIB_VERSION)
2124 # ARM linux, GNU eabi
2125 ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),)
2126 LIBGNAT_TARGET_PAIRS = \
2127 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2128 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2129 s-intman.adb<libgnarl/s-intman__posix.adb \
2130 s-linux.ads<libgnarl/s-linux.ads \
2131 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2132 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2133 s-osprim.adb<libgnat/s-osprim__posix.adb \
2134 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2135 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2136 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2137 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2138 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2139 $(ATOMICS_TARGET_PAIRS) \
2140 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2141 system.ads<libgnat/system-linux-arm.ads
2143 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2145 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2147 THREADSLIB = -lpthread
2148 GNATLIB_SHARED = gnatlib-shared-dual
2150 LIBRARY_VERSION := $(LIB_VERSION)
2154 ifeq ($(strip $(filter-out aarch64% linux%,$(target_cpu) $(target_os))),)
2155 LIBGNAT_TARGET_PAIRS = \
2156 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2157 a-exetim.ads<libgnarl/a-exetim__default.ads \
2158 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2159 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2160 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2161 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2162 s-intman.adb<libgnarl/s-intman__posix.adb \
2163 s-linux.ads<libgnarl/s-linux.ads \
2164 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2165 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2166 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2167 s-osprim.adb<libgnat/s-osprim__posix.adb \
2168 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2169 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2170 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2171 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2172 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2173 g-sercom.adb<libgnat/g-sercom__linux.adb \
2174 $(ATOMICS_TARGET_PAIRS) \
2175 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2176 system.ads<libgnat/system-linux-arm.ads
2178 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2180 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2182 THREADSLIB=-lpthread -lrt
2183 GNATLIB_SHARED=gnatlib-shared-dual
2185 LIBRARY_VERSION := $(LIB_VERSION)
2189 ifeq ($(strip $(filter-out sparc% linux%,$(target_cpu) $(target_os))),)
2190 LIBGNAT_TARGET_PAIRS = \
2191 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2192 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2193 s-intman.adb<libgnarl/s-intman__posix.adb \
2194 s-linux.ads<libgnarl/s-linux__sparc.ads \
2195 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2196 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2197 s-osprim.adb<libgnat/s-osprim__posix.adb \
2198 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2199 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2200 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2201 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2202 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2203 system.ads<libgnat/system-linux-sparc.ads
2205 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2207 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2209 THREADSLIB = -lpthread
2210 GNATLIB_SHARED = gnatlib-shared-dual
2212 LIBRARY_VERSION := $(LIB_VERSION)
2216 ifeq ($(strip $(filter-out hppa% linux%,$(target_cpu) $(target_os))),)
2217 LIBGNAT_TARGET_PAIRS = \
2218 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2219 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2220 s-intman.adb<libgnarl/s-intman__posix.adb \
2221 s-linux.ads<libgnarl/s-linux__hppa.ads \
2222 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2223 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2224 s-osprim.adb<libgnat/s-osprim__posix.adb \
2225 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2226 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2227 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2228 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2229 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2230 system.ads<libgnat/system-linux-hppa.ads
2232 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2234 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2236 THREADSLIB = -lpthread
2237 GNATLIB_SHARED = gnatlib-shared-dual
2239 LIBRARY_VERSION := $(LIB_VERSION)
2243 ifeq ($(strip $(filter-out m68k% linux%,$(target_cpu) $(target_os))),)
2244 LIBGNAT_TARGET_PAIRS = \
2245 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2246 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2247 s-intman.adb<libgnarl/s-intman__posix.adb \
2248 s-linux.ads<libgnarl/s-linux.ads \
2249 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2250 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2251 s-osprim.adb<libgnat/s-osprim__posix.adb \
2252 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2253 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2254 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2255 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2256 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2257 system.ads<libgnat/system-linux-m68k.ads
2259 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2261 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2263 THREADSLIB = -lpthread
2264 GNATLIB_SHARED = gnatlib-shared-dual
2266 LIBRARY_VERSION := $(LIB_VERSION)
2270 ifeq ($(strip $(filter-out sh4% linux%,$(target_cpu) $(target_os))),)
2271 LIBGNAT_TARGET_PAIRS = \
2272 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2273 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2274 s-intman.adb<libgnarl/s-intman__posix.adb \
2275 s-linux.ads<libgnarl/s-linux.ads \
2276 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2277 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2278 s-osprim.adb<libgnat/s-osprim__posix.adb \
2279 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2280 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2281 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2282 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2283 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2284 system.ads<libgnat/system-linux-sh4.ads
2286 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-linux.adb
2288 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2291 THREADSLIB = -lpthread
2292 GNATLIB_SHARED = gnatlib-shared-dual
2294 LIBRARY_VERSION := $(LIB_VERSION)
2298 ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
2299 LIBGNAT_TARGET_PAIRS = \
2300 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2301 a-exetim.ads<libgnarl/a-exetim__default.ads \
2302 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2303 a-numaux.ads<libgnat/a-numaux__libc-x86.ads \
2304 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2305 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2306 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2307 s-intman.adb<libgnarl/s-intman__posix.adb \
2308 s-linux.ads<libgnarl/s-linux.ads \
2309 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2310 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2311 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2312 s-osprim.adb<libgnat/s-osprim__posix.adb \
2313 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2314 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2315 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2316 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2317 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2318 g-sercom.adb<libgnat/g-sercom__linux.adb \
2319 $(TRASYM_DWARF_UNIX_PAIRS) \
2320 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2321 $(ATOMICS_TARGET_PAIRS) \
2322 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2323 system.ads<libgnat/system-linux-ia64.ads
2325 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2327 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2328 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2330 THREADSLIB=-lpthread -lrt
2331 GNATLIB_SHARED=gnatlib-shared-dual
2334 LIBRARY_VERSION := $(LIB_VERSION)
2338 ifeq ($(strip $(filter-out ia64% hp hpux%,$(target_cpu) $(target_vendor) $(target_os))),)
2339 LIBGNAT_TARGET_PAIRS = \
2340 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
2341 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2342 s-intman.adb<libgnarl/s-intman__posix.adb \
2343 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2344 s-osinte.ads<libgnarl/s-osinte__hpux.ads \
2345 s-osprim.adb<libgnat/s-osprim__posix.adb \
2346 s-taprop.adb<libgnarl/s-taprop__posix.adb \
2347 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2348 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2349 $(TRASYM_DWARF_UNIX_PAIRS) \
2350 $(ATOMICS_TARGET_PAIRS) \
2351 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2352 system.ads<libgnat/system-hpux-ia64.ads
2354 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2358 THREADSLIB=-lpthread
2359 GNATLIB_SHARED=gnatlib-shared-dual
2363 LIBRARY_VERSION := $(LIB_VERSION)
2367 ifeq ($(strip $(filter-out alpha% linux%,$(target_cpu) $(target_os))),)
2368 LIBGNAT_TARGET_PAIRS = \
2369 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2370 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2371 s-intman.adb<libgnarl/s-intman__posix.adb \
2372 s-linux.ads<libgnarl/s-linux__alpha.ads \
2373 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2374 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2375 s-osprim.adb<libgnat/s-osprim__posix.adb \
2376 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2377 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2378 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2379 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2380 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2381 $(ATOMICS_TARGET_PAIRS) \
2382 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2383 system.ads<libgnat/system-linux-alpha.ads
2385 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2387 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2390 THREADSLIB=-lpthread
2391 GNATLIB_SHARED=gnatlib-shared-dual
2392 LIBRARY_VERSION := $(LIB_VERSION)
2396 ifeq ($(strip $(filter-out %x86_64 linux%,$(target_cpu) $(target_os))),)
2397 LIBGNAT_TARGET_PAIRS = \
2398 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2399 a-exetim.ads<libgnarl/a-exetim__default.ads \
2400 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2401 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2402 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2403 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2404 s-intman.adb<libgnarl/s-intman__posix.adb \
2405 s-linux.ads<libgnarl/s-linux.ads \
2406 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2407 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2408 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2409 s-osprim.adb<libgnat/s-osprim__posix.adb \
2410 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2411 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2412 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2413 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2414 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2415 g-sercom.adb<libgnat/g-sercom__linux.adb \
2416 $(TRASYM_DWARF_UNIX_PAIRS) \
2417 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2418 $(ATOMICS_TARGET_PAIRS) \
2419 $(X86_64_TARGET_PAIRS) \
2420 system.ads<libgnat/system-linux-x86.ads
2422 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2424 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
2425 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2426 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2429 THREADSLIB=-lpthread -lrt
2431 GNATLIB_SHARED=gnatlib-shared-dual
2433 LIBRARY_VERSION := $(LIB_VERSION)
2435 GNATLIBCFLAGS_FOR_GCCSJLJ+=-fno-omit-frame-pointer -momit-leaf-frame-pointer
2438 ifeq ($(strip $(filter-out %x32 linux%,$(target_cpu) $(target_os))),)
2439 LIBGNAT_TARGET_PAIRS = \
2440 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2441 a-exetim.ads<libgnarl/a-exetim__default.ads \
2442 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2443 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2444 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2445 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2446 s-intman.adb<libgnarl/s-intman__posix.adb \
2447 s-linux.ads<libgnarl/s-linux__x32.ads \
2448 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2449 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2450 s-osinte.adb<libgnarl/s-osinte__x32.adb \
2451 s-osprim.adb<libgnat/s-osprim__x32.adb \
2452 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2453 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2454 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2455 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2456 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2457 g-sercom.adb<libgnat/g-sercom__linux.adb \
2458 $(ATOMICS_TARGET_PAIRS) \
2459 $(X86_64_TARGET_PAIRS) \
2460 system.ads<libgnat/system-linux-x86.ads
2462 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2464 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
2465 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2467 THREADSLIB=-lpthread -lrt
2468 GNATLIB_SHARED=gnatlib-shared-dual
2470 LIBRARY_VERSION := $(LIB_VERSION)
2474 ifeq ($(strip $(filter-out riscv% linux%,$(target_cpu) $(target_os))),)
2475 LIBGNAT_TARGET_PAIRS = \
2476 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2477 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2478 s-intman.adb<libgnarl/s-intman__posix.adb \
2479 s-linux.ads<libgnarl/s-linux__riscv.ads \
2480 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2481 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2482 s-osprim.adb<libgnat/s-osprim__posix.adb \
2483 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2484 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2485 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2486 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2487 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2488 g-sercom.adb<libgnat/g-sercom__linux.adb \
2489 system.ads<libgnat/system-linux-riscv.ads
2491 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2493 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2495 THREADSLIB = -lpthread
2496 GNATLIB_SHARED = gnatlib-shared-dual
2498 LIBRARY_VERSION := $(LIB_VERSION)
2502 ifeq ($(strip $(filter-out darwin%,$(target_os))),)
2503 SO_OPTS = -shared-libgcc
2504 LIBGNAT_TARGET_PAIRS = \
2505 a-intnam.ads<libgnarl/a-intnam__darwin.ads \
2506 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2507 s-osinte.adb<libgnarl/s-osinte__darwin.adb \
2508 s-osinte.ads<libgnarl/s-osinte__darwin.ads \
2509 s-taprop.adb<libgnarl/s-taprop__posix.adb \
2510 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2511 g-sercom.adb<libgnat/g-sercom__linux.adb \
2512 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb
2514 ifeq ($(strip $(filter-out %86,$(target_cpu))),)
2515 LIBGNAT_TARGET_PAIRS += \
2516 s-intman.adb<libgnarl/s-intman__susv3.adb \
2517 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2518 $(ATOMICS_TARGET_PAIRS) \
2519 system.ads<libgnat/system-darwin-x86.ads
2521 ifeq ($(strip $(MULTISUBDIR)),/x86_64)
2523 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2525 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2528 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
2531 ifeq ($(strip $(filter-out %x86_64,$(target_cpu))),)
2532 LIBGNAT_TARGET_PAIRS += \
2533 s-intman.adb<libgnarl/s-intman__susv3.adb \
2534 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2535 a-exetim.ads<libgnarl/a-exetim__default.ads \
2536 a-exetim.adb<libgnarl/a-exetim__darwin.adb \
2537 $(ATOMICS_TARGET_PAIRS) \
2538 system.ads<libgnat/system-darwin-x86.ads
2540 ifeq ($(strip $(MULTISUBDIR)),/i386)
2542 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2544 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2547 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
2548 EXTRA_GNATRTL_TASKING_OBJS=a-exetim.o
2551 ifeq ($(strip $(filter-out powerpc%,$(target_cpu))),)
2552 LIBGNAT_TARGET_PAIRS += \
2553 s-intman.adb<libgnarl/s-intman__posix.adb \
2554 s-osprim.adb<libgnat/s-osprim__posix.adb \
2555 a-numaux.ads<libgnat/a-numaux__darwin.ads \
2556 a-numaux.adb<libgnat/a-numaux__darwin.adb \
2557 $(ATOMICS_TARGET_PAIRS) \
2558 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2559 system.ads<libgnat/system-darwin-ppc.ads
2561 ifeq ($(strip $(MULTISUBDIR)),/ppc64)
2566 ifeq ($(strip $(filter-out arm,$(target_cpu))),)
2567 LIBGNAT_TARGET_PAIRS += \
2568 s-intman.adb<libgnarl/s-intman__susv3.adb \
2569 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2570 $(ATOMICS_TARGET_PAIRS) \
2571 $(ATOMICS_BUILTINS_TARGET_PAIRS)
2573 LIBGNAT_TARGET_PAIRS += \
2574 system.ads<libgnat/system-darwin-arm.ads
2577 ifeq ($(strip $(filter-out arm64 aarch64,$(target_cpu))),)
2578 LIBGNAT_TARGET_PAIRS += \
2579 s-intman.adb<libgnarl/s-intman__susv3.adb \
2580 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2581 $(ATOMICS_TARGET_PAIRS) \
2582 $(ATOMICS_BUILTINS_TARGET_PAIRS)
2584 EXTRA_LIBGNAT_OBJS+=sigtramp-ios.o
2585 EXTRA_LIBGNAT_SRCS+=sigtramp.h
2586 LIBGNAT_TARGET_PAIRS += \
2587 system.ads<libgnat/system-darwin-arm.ads
2590 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-darwin.adb
2593 GNATLIB_SHARED = gnatlib-shared-darwin
2595 LIBRARY_VERSION := $(LIB_VERSION)
2597 GCC_LINK_FLAGS=-static-libstdc++
2600 ifeq ($(EH_MECHANISM),-gcc)
2601 LIBGNAT_TARGET_PAIRS += \
2602 s-excmac.ads<libgnat/s-excmac__gcc.ads \
2603 s-excmac.adb<libgnat/s-excmac__gcc.adb
2604 EXTRA_LIBGNAT_OBJS+=raise-gcc.o
2605 EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o
2608 ifeq ($(EH_MECHANISM),-arm)
2609 LIBGNAT_TARGET_PAIRS += \
2610 s-excmac.ads<libgnat/s-excmac__arm.ads \
2611 s-excmac.adb<libgnat/s-excmac__arm.adb
2612 EXTRA_LIBGNAT_OBJS+=raise-gcc.o
2613 EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o
2616 # LIBGNAT_SRCS is the list of all C files (including headers) of the runtime
2617 # library. LIBGNAT_OBJS is the list of object files for libgnat.
2618 # thread.c is special as put into GNATRTL_TASKING_OBJS
2619 LIBGNAT_OBJS = adadecode.o adaint.o argv.o aux-io.o \
2620 cal.o cio.o cstreams.o ctrl_c.o \
2621 env.o errno.o exit.o expect.o final.o rtfinal.o rtinit.o \
2622 init.o initialize.o locales.o mkdir.o \
2623 raise.o seh_init.o socket.o sysdep.o \
2624 targext.o terminals.o tracebak.o \
2625 $(EXTRA_LIBGNAT_OBJS)
2627 # NOTE ??? - when the -I option for compiling Ada code is made to work,
2628 # the library installation will change and there will be a
2629 # GNAT_RTL_SRCS. Right now we count on being able to build GNATRTL_OBJS
2630 # from ADA_INCLUDE_SRCS.
2632 LIBGNAT_SRCS = $(patsubst %.o,%.c,$(LIBGNAT_OBJS)) \
2633 adadecode.h adaint.h env.h gsocket.h raise.h standard.ads.h \
2634 tb-gcc.c libgnarl/thread.c $(EXTRA_LIBGNAT_SRCS)
2636 # memtrack.o is special as not put into libgnat.
2637 GNATRTL_OBJS = $(GNATRTL_NONTASKING_OBJS) $(GNATRTL_TASKING_OBJS) \
2640 # Run time source files
2641 # Note that libgnat contains a significant number of files. In orde to avoid
2642 # command line length limitations the source regexp has been split for that
2645 libgnat/ada.ads libgnat/calendar.ads libgnat/directio.ads libgnat/gnat.ads libgnat/interfac.ads libgnat/ioexcept.ads \
2646 libgnat/machcode.ads libgnat/text_io.ads libgnat/unchconv.ads libgnat/unchdeal.ads \
2647 libgnat/sequenio.ads libgnat/system.ads Makefile.adalib libgnat/memtrack.adb \
2648 libgnat/a-[a-o]*.adb libgnat/a-[a-o]*.ads \
2649 libgnat/a-[p-z]*.adb libgnat/a-[p-z]*.ads \
2650 libgnat/g-[a-o]*.adb libgnat/g-[a-o]*.ads \
2651 libgnat/g-[p-z]*.adb libgnat/g-[p-z]*.ads \
2652 libgnat/s-[a-o]*.adb libgnat/s-[a-o]*.ads \
2653 libgnat/s-[p-z]*.adb libgnat/s-[p-z]*.ads \
2654 libgnat/i-[a-o]*.adb libgnat/i-[a-o]*.ads \
2655 libgnat/i-[p-z]*.adb libgnat/i-[p-z]*.ads \
2656 libgnarl/[agis]-[a-z]*.ad[sb]
2659 # Files that are in ADA_INCLUDE_SRCS but not in all configurations.
2660 # They will be removed from the run time if not used.
2662 g-allein.ads g-alleve.adb g-alleve.ads g-altcon.adb g-altcon.ads \
2663 g-altive.ads g-alveop.adb g-alveop.ads g-alvety.ads g-alvevi.ads \
2664 g-intpri.ads g-regist.adb g-regist.ads g-sse.ads g-ssvety.ads \
2665 i-vxinco.adb i-vxinco.ads i-vxwoio.adb i-vxwoio.ads i-vxwork.ads \
2666 s-bb.ads s-bbbosu.ads s-bbcaco.ads s-bbcppr.ads s-bbexti.adb \
2667 s-bbexti.ads s-bbinte.adb s-bbinte.ads s-bbprot.adb s-bbprot.ads \
2668 s-bbsle3.ads s-bbsuer.ads s-bbsule.ads s-bbthqu.adb s-bbthqu.ads \
2669 s-bbthre.adb s-bbthre.ads s-bbtiev.adb s-bbtiev.ads s-bbtime.adb \
2670 s-bbtime.ads s-bcprmu.adb s-bcprmu.ads s-btstch.adb s-btstch.ads \
2671 s-gcc.adb s-gcc.ads s-gccdiv.adb s-gccdiv.ads \
2672 s-gccshi.adb s-gccshi.ads \
2673 s-init.ads s-init.adb s-linux.ads s-macres.ads \
2674 s-memcom.adb s-memcom.ads s-memmov.adb s-memmov.ads s-memset.adb \
2675 s-memset.ads s-mufalo.adb s-mufalo.ads s-musplo.adb s-musplo.ads \
2676 s-sam4.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb s-sopco4.ads \
2677 s-sopco5.adb s-sopco5.ads s-stchop.ads s-stchop.adb s-stm32.ads \
2678 s-strcom.adb s-strcom.ads s-thread.ads \
2679 s-vxwext.adb s-vxwext.ads \
2680 s-win32.ads s-winext.ads
2682 # ADA_EXCLUDE_SRCS without the sources used by the target
2683 ADA_EXCLUDE_FILES=$(filter-out \
2684 $(patsubst %$(objext),%.ads,$(GNATRTL_OBJS)) \
2685 $(patsubst %$(objext),%.adb,$(GNATRTL_OBJS)), \
2686 $(ADA_EXCLUDE_SRCS))
2691 $(CHMOD) u+w $(RTSDIR)
2692 # Copy target independent sources
2693 $(foreach f,$(ADA_INCLUDE_SRCS) $(LIBGNAT_SRCS), \
2694 $(LN_S) $(GNAT_SRC)/$(f) $(RTSDIR) ;) true
2695 # Remove files not used
2696 $(RM) $(patsubst %,$(RTSDIR)/%,$(ADA_EXCLUDE_FILES))
2697 # Remove files to be replaced by target dependent sources
2698 $(RM) $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \
2699 $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR))))
2700 for f in $(RTSDIR)/*-*__*.ads $(RTSDIR)/*-*__*.adb; do \
2702 $(RTSDIR)/s-stratt__*) ;; \
2706 # Copy new target dependent sources
2707 $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \
2708 $(LN_S) $(GNAT_SRC)/$(word 2,$(subst <, ,$(PAIR))) \
2709 $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR)));)
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) $(FORCE_DEBUG_ADAFLAGS) \
2737 $(NO_INLINE_ADAFLAGS) $(NO_REORDER_ADAFLAGS) -O1 $(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) \