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= \
716 $(GNATRTL_ALTIVEC_OBJS) \
717 $(GNATRTL_SOCKETS_OBJS) \
718 $(EXTRA_GNATRTL_NONTASKING_OBJS)
720 # LIBGNAT_TARGET_PAIRS is a list of pairs of filenames.
721 # The members of each pair must be separated by a '<' and no whitespace.
722 # Each pair must be separated by some amount of whitespace from the following
727 LIBGNAT_TARGET_PAIRS = \
728 a-intnam.ads<libgnarl/a-intnam__dummy.ads \
729 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
730 s-intman.adb<libgnarl/s-intman__dummy.adb \
731 s-osinte.ads<libgnarl/s-osinte__dummy.ads \
732 s-osprim.adb<libgnat/s-osprim__posix.adb \
733 s-taprop.adb<libgnarl/s-taprop__dummy.adb \
734 s-taspri.ads<libgnarl/s-taspri__dummy.ads
736 # When using the GCC exception handling mechanism, we need to use an
737 # alternate body for a-exexpr.adb (a-exexpr-gcc.adb)
741 # Compilation options for the GCC-SJLJ RTS. This may be augmented for
742 # target specific contexts, e.g. to add -fno-omit-frame-pointer for backtrace
744 GNATLIBCFLAGS_FOR_GCCSJLJ=-fsjlj
746 # Default shared object option. Note that we rely on the fact that the "soname"
747 # option will always be present and last in this flag, so that we can have
748 # $(SO_OPTS)libgnat-x.xx
750 SO_OPTS = -Wl,-soname,
752 # Default gnatlib-shared target.
753 # By default, equivalent to gnatlib.
754 # Set to gnatlib-shared-default, gnatlib-shared-dual, or a platform specific
755 # target when supported.
756 GNATLIB_SHARED = gnatlib
758 # By default, build socket support units. On platforms that do not support
759 # sockets, reset this variable to empty and add DUMMY_SOCKETS_TARGET_PAIRS
760 # to LIBGNAT_TARGET_PAIRS.
762 GNATRTL_SOCKETS_OBJS = g-soccon$(objext) g-socket$(objext) g-socthi$(objext) \
763 g-soliop$(objext) g-sothco$(objext)
765 DUMMY_SOCKETS_TARGET_PAIRS = \
766 g-socket.adb<libgnat/g-socket__dummy.adb \
767 g-socket.ads<libgnat/g-socket__dummy.ads \
768 g-socthi.adb<libgnat/g-socthi__dummy.adb \
769 g-socthi.ads<libgnat/g-socthi__dummy.ads \
770 g-sothco.adb<libgnat/g-sothco__dummy.adb \
771 g-sothco.ads<libgnat/g-sothco__dummy.ads
773 # On platforms where atomic increment/decrement operations are supported,
774 # special version of Ada.Strings.Unbounded package can be used.
776 ATOMICS_TARGET_PAIRS = \
777 a-coinho.adb<libgnat/a-coinho__shared.adb \
778 a-coinho.ads<libgnat/a-coinho__shared.ads \
779 a-stunau.adb<libgnat/a-stunau__shared.adb \
780 a-suteio.adb<libgnat/a-suteio__shared.adb \
781 a-strunb.ads<libgnat/a-strunb__shared.ads \
782 a-strunb.adb<libgnat/a-strunb__shared.adb \
783 a-stwiun.adb<libgnat/a-stwiun__shared.adb \
784 a-stwiun.ads<libgnat/a-stwiun__shared.ads \
785 a-swunau.adb<libgnat/a-swunau__shared.adb \
786 a-swuwti.adb<libgnat/a-swuwti__shared.adb \
787 a-stzunb.adb<libgnat/a-stzunb__shared.adb \
788 a-stzunb.ads<libgnat/a-stzunb__shared.ads \
789 a-szunau.adb<libgnat/a-szunau__shared.adb \
790 a-szuzti.adb<libgnat/a-szuzti__shared.adb
792 ATOMICS_BUILTINS_TARGET_PAIRS = \
793 s-atocou.adb<libgnat/s-atocou__builtin.adb
795 # Special version of units for x86 and x86-64 platforms.
798 a-numaux.ads<libgnat/a-numaux__x86.ads \
799 a-numaux.adb<libgnat/a-numaux__x86.adb \
800 s-atocou.adb<libgnat/s-atocou__x86.adb
802 X86_64_TARGET_PAIRS = \
803 a-numaux.ads<libgnat/a-numaux__x86.ads \
804 a-numaux.adb<libgnat/a-numaux__x86.adb \
805 s-atocou.adb<libgnat/s-atocou__builtin.adb
807 # Implementation of symbolic traceback based on dwarf
808 TRASYM_DWARF_UNIX_PAIRS = \
809 s-trasym.adb<libgnat/s-trasym__dwarf.adb \
810 s-mmosin.ads<libgnat/s-mmosin__unix.ads \
811 s-mmosin.adb<libgnat/s-mmosin__unix.adb \
812 s-mmauni.ads<libgnat/s-mmauni__long.ads
814 TRASYM_DWARF_MINGW_PAIRS = \
815 s-trasym.adb<libgnat/s-trasym__dwarf.adb \
816 s-mmosin.ads<libgnat/s-mmosin__mingw.ads \
817 s-mmosin.adb<libgnat/s-mmosin__mingw.adb
819 TRASYM_DWARF_COMMON_OBJS = s-objrea$(objext) s-dwalin$(objext) s-mmap$(objext) \
822 TRASYM_DWARF_UNIX_OBJS = $(TRASYM_DWARF_COMMON_OBJS) s-mmauni$(objext)
824 TRASYM_DWARF_MINGW_OBJS = $(TRASYM_DWARF_COMMON_OBJS)
826 # Shared library version
827 LIB_VERSION = $(strip $(shell grep ' Library_Version :' $(GNAT_SRC)/gnatvsn.ads | sed -e 's/.*"\(.*\)".*/\1/'))
829 # Additional object files from C source to be added to libgnat.
832 # Additional C source files to be added to libgnat without corresponding
833 # object file (#included files). This should include at least the GNAT
834 # specific header files required to rebuild the runtime library from sources.
837 # Additional object files from Ada sources to be added in libgnat
838 EXTRA_GNATRTL_NONTASKING_OBJS=
840 # Additional object files from Ada sources to be added in libgnarl
841 EXTRA_GNATRTL_TASKING_OBJS=
843 # Subsets of extra libgnat sources that always go together
844 VX_SIGTRAMP_EXTRA_SRCS=sigtramp.h sigtramp-vxworks-target.inc
846 # Additional object files that should go in the same directory as libgnat,
847 # aside the library itself. Typically useful for crtbegin/crtend kind of files.
850 # crt files for VxWorks exception tables registration, referenced by
851 # spec files in the runtime library.
852 VX_CRTBE_EXTRA_ADALIB_OBJS=vx_crtbegin.o vx_crtbegin_array.o vx_crtend.o
854 # Contructor attributes (with priorities) are only supported on VxWorks 7
856 ifneq ($(strip $(filter vxworks7% rtp%,$(target_os) $(THREAD_KIND))),)
857 VX_CRTBE_EXTRA_ADALIB_OBJS+=vx_crtbegin_attr.o
860 # GCC spec files to be installed in $(libsubdir), so --specs=<spec-filename>
861 # finds them at runtime.
864 # $(filter-out PATTERN...,TEXT) removes all PATTERN words from TEXT.
865 # $(strip STRING) removes leading and trailing spaces from STRING.
866 # If what's left is null then it's a match.
868 # PowerPC and e500v2 VxWorks
869 ifeq ($(strip $(filter-out powerpc% wrs vxworks vxworksspe vxworks7 vxworks7spe,$(target_cpu) $(target_vendor) $(target_os))),)
871 ifeq ($(strip $(filter-out e500%, $(target_alias))),)
873 # gcc config translates the target e500v2-wrs-vxworks to
874 # powerpc-wrs-vxworksspe. Let's keep the original alias here when
875 # generating s-oscons.ads.
876 target=$(target_alias)
878 ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),)
885 VX=$(strip $(if $(filter vxworks7%, $(target_os)), vxworks7, vxworks))
887 GCC_SPEC_FILES+=$(VX)-gnat-crtbe-link.spec
889 LIBGNAT_TARGET_PAIRS = \
890 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
891 a-numaux.ads<libgnat/a-numaux__vxworks.ads \
892 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
893 s-intman.ads<libgnarl/s-intman__vxworks.ads \
894 s-intman.adb<libgnarl/s-intman__vxworks.adb \
895 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
896 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
897 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
898 s-parame.ads<libgnat/s-parame__vxworks.ads \
899 s-parame.adb<libgnat/s-parame__vxworks.adb \
900 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
901 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
902 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
903 s-vxwork.ads<libgnarl/s-vxwork__ppc.ads \
904 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
905 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
906 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
907 $(ATOMICS_TARGET_PAIRS) \
908 $(ATOMICS_BUILTINS_TARGET_PAIRS)
910 # VxWorks 5 and 6 both use the same target triplet making them
911 # indistinguishable in the context of this make file. Package
912 # System.Stack_Checking.Operations is not needed on VxWorks 6 as it leads to
913 # an undefined symbol when building a dynamic shared library. To alleviate
914 # this problem and distinguish this case, we use the THREAD_KIND and include
915 # the package only in default mode.
917 ifeq ($(strip $(filter-out default,$(THREAD_KIND))),)
918 LIBGNAT_TARGET_PAIRS += \
919 s-stchop.ads<libgnat/s-stchop__limit.ads \
920 s-stchop.adb<libgnat/s-stchop__vxworks.adb
921 EXTRA_GNATRTL_NONTASKING_OBJS+=s-stchop.o
924 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
926 ifeq ($(strip $(filter-out rtp,$(THREAD_KIND))),)
927 LIBGNAT_TARGET_PAIRS += \
928 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
929 s-vxwext.adb<libgnarl/s-vxwext__rtp.adb \
930 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-rtp.adb \
931 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp.ads
935 ifeq ($(strip $(filter-out rtp-smp,$(THREAD_KIND))),)
936 LIBGNAT_TARGET_PAIRS += \
937 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
938 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
939 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \
940 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
941 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp-smp.ads
944 EXTRA_LIBGNAT_OBJS+=affinity.o
946 ifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),)
947 LIBGNAT_TARGET_PAIRS += \
948 s-interr.adb<libgnarl/s-interr__vxworks.adb \
949 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
950 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
951 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
952 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \
953 system.ads<libgnat/$(SVX)-$(ARCH_STR)-kernel.ads
956 EXTRA_LIBGNAT_OBJS+=affinity.o
958 LIBGNAT_TARGET_PAIRS += \
959 s-interr.adb<libgnarl/s-interr__vxworks.adb \
960 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb
962 ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
964 LIBGNAT_TARGET_PAIRS += \
965 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
966 s-vxwext.adb<libgnarl/s-vxwext__kernel.adb \
967 system.ads<libgnat/$(SVX)-$(ARCH_STR)-kernel.ads
969 LIBGNAT_TARGET_PAIRS += \
970 system.ads<libgnat/system-vxworks-ppc.ads
973 EXTRA_GNATRTL_NONTASKING_OBJS+=i-vxinco.o i-vxwork.o i-vxwoio.o
977 EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o
978 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
980 EXTRA_GNATRTL_TASKING_OBJS += s-vxwork.o s-vxwext.o
982 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
984 EXTRA_ADALIB_OBJS+=$(VX_CRTBE_EXTRA_ADALIB_OBJS)
985 EXTRA_LIBGNAT_SRCS+=vx_crtbegin.inc
987 ifeq ($(strip $(filter-out vxworks7%, $(target_os))),)
988 ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),)
989 GCC_SPEC_FILES+=vxworks7-ppc64-rtp-base-link.spec
991 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec
994 GCC_SPEC_FILES+=vxworks-$(ARCH_STR)-link.spec
995 GCC_SPEC_FILES+=vxworks-cert-$(ARCH_STR)-link.spec
996 GCC_SPEC_FILES+=vxworks-smp-$(ARCH_STR)-link.spec
1000 # PowerPC and e500v2 VxWorks 653
1001 ifeq ($(strip $(filter-out powerpc% wrs vxworksae vxworksaespe,$(target_cpu) $(target_vendor) $(target_os))),)
1003 ifeq ($(strip $(filter-out e500%, $(target_alias))),)
1005 # gcc config translates the target e500v2-wrs-vxworks to
1006 # powerpc-wrs-vxworksspe. Let's keep the original alias here when
1007 # generating s-oscons.ads.
1008 target=$(target_alias)
1013 # target pairs for vthreads runtime
1014 LIBGNAT_TARGET_PAIRS = \
1015 a-elchha.adb<libgnat/a-elchha__vxworks-ppc-full.adb \
1016 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1017 a-numaux.ads<libgnat/a-numaux__vxworks.ads \
1018 g-io.adb<hie/g-io__vxworks-ppc-cert.adb \
1019 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
1020 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1021 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1022 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1023 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1024 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1025 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
1026 s-parame.ads<libgnat/s-parame__ae653.ads \
1027 s-parame.adb<libgnat/s-parame__vxworks.adb \
1028 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1029 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1030 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1031 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb \
1032 s-vxwext.adb<libgnarl/s-vxwext__noints.adb \
1033 s-vxwext.ads<libgnarl/s-vxwext__vthreads.ads \
1034 s-vxwork.ads<libgnarl/s-vxwork__ppc.ads \
1035 system.ads<libgnat/system-vxworks-$(ARCH_STR)-vthread.ads \
1036 $(ATOMICS_TARGET_PAIRS) \
1037 $(ATOMICS_BUILTINS_TARGET_PAIRS)
1041 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1043 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o
1044 EXTRA_GNATRTL_TASKING_OBJS=i-vxinco.o s-vxwork.o s-vxwext.o
1046 EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o
1047 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1049 # Extra pairs for the vthreads runtime
1050 ifeq ($(strip $(filter-out vthreads,$(THREAD_KIND))),)
1051 LIBGNAT_TARGET_PAIRS += \
1052 s-thread.adb<libgnat/s-thread__ae653.adb \
1053 s-osvers.ads<libgnat/s-osvers__vxworks-653.ads \
1054 $(DUMMY_SOCKETS_TARGET_PAIRS)
1056 GNATRTL_SOCKETS_OBJS =
1057 EXTRA_GNATRTL_NONTASKING_OBJS += s-thread.o s-osvers.o
1059 LIBGNAT_TARGET_PAIRS += \
1060 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1061 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1062 g-stsifd.adb<libgnat/g-stsifd__sockets.adb
1067 # VxWorksae / VxWorks 653 for x86 (vxsim) - ?? VxWorks mils not implemented
1068 ifeq ($(strip $(filter-out %86 wrs vxworksae,$(target_cpu) $(target_vendor) $(target_os))),)
1069 # target pairs for kernel + vthreads runtime
1070 LIBGNAT_TARGET_PAIRS = \
1071 a-elchha.adb<libgnat/a-elchha__vxworks-ppc-full.adb \
1072 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1073 a-numaux.ads<libgnat/a-numaux__vxworks.ads \
1074 g-io.adb<hie/g-io__vxworks-ppc-cert.adb \
1075 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
1076 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1077 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1078 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1079 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1080 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1081 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
1082 s-parame.ads<libgnat/s-parame__ae653.ads \
1083 s-parame.adb<libgnat/s-parame__vxworks.adb \
1084 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1085 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1086 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1087 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb \
1088 s-vxwext.adb<libgnarl/s-vxwext__noints.adb \
1089 s-vxwext.ads<libgnarl/s-vxwext__vthreads.ads \
1090 s-vxwork.ads<libgnarl/s-vxwork__x86.ads \
1091 system.ads<libgnat/system-vxworks-x86-vthread.ads \
1092 $(ATOMICS_TARGET_PAIRS) \
1093 $(ATOMICS_BUILTINS_TARGET_PAIRS)
1097 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1099 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-thread.o
1100 EXTRA_GNATRTL_TASKING_OBJS=i-vxinco.o s-vxwork.o s-vxwext.o
1102 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1103 GNATRTL_SOCKETS_OBJS =
1105 # Extra pairs for the vthreads runtime
1106 ifeq ($(strip $(filter-out vthreads,$(THREAD_KIND))),)
1107 LIBGNAT_TARGET_PAIRS += \
1108 s-thread.adb<libgnat/s-thread__ae653.adb \
1109 s-osvers.ads<libgnat/s-osvers__vxworks-653.ads \
1110 $(DUMMY_SOCKETS_TARGET_PAIRS)
1112 GNATRTL_SOCKETS_OBJS =
1113 EXTRA_GNATRTL_NONTASKING_OBJS += s-thread.o s-osvers.o
1115 LIBGNAT_TARGET_PAIRS += \
1116 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1117 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1118 g-stsifd.adb<libgnat/g-stsifd__sockets.adb
1123 # x86/x86_64 VxWorks
1124 ifeq ($(strip $(filter-out %86 x86_64 wrs vxworks vxworks7,$(target_cpu) $(target_vendor) $(target_os))),)
1128 VX=$(strip $(if $(filter vxworks7%, $(target_os)), vxworks7, vxworks))
1130 GCC_SPEC_FILES+=$(VX)-gnat-crtbe-link.spec
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 EXTRA_ADALIB_OBJS+=$(VX_CRTBE_EXTRA_ADALIB_OBJS)
1256 EXTRA_LIBGNAT_SRCS+=vx_crtbegin.inc
1258 ifeq ($(strip $(filter-out vxworks7%, $(target_os))),)
1259 GCC_SPEC_FILES+=vxworks7-$(X86CPU)-rtp-base-link.spec
1261 GCC_SPEC_FILES+=vxworks-x86-link.spec
1262 GCC_SPEC_FILES+=vxworks-cert-x86-link.spec
1263 GCC_SPEC_FILES+=vxworks-smp-x86-link.spec
1267 # ARM and Aarch64 VxWorks
1268 ifeq ($(strip $(filter-out aarch64 arm% coff wrs vx%,$(target_cpu) $(target_vendor) $(target_os))),)
1270 ifeq ($(strip $(filter-out aarch64, $(target_cpu))),)
1274 SIGTRAMP_OBJ=sigtramp-vxworks.o
1276 ifeq ($(strip $(filter-out arm%, $(target_cpu))),)
1278 ifeq ($(strip $(filter-out vxworks7%, $(target_os))),)
1281 SIGTRAMP_OBJ=sigtramp-armvxworks.o
1285 SIGTRAMP_OBJ=sigtramp-vxworks.o
1293 GCC_SPEC_FILES+=$(VX)-gnat-crtbe-link.spec
1295 LIBGNAT_TARGET_PAIRS = \
1296 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \
1297 a-numaux.ads<libgnat/a-numaux__vxworks.ads \
1298 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \
1299 s-interr.adb<libgnarl/s-interr__vxworks.adb \
1300 s-intman.ads<libgnarl/s-intman__vxworks.ads \
1301 s-intman.adb<libgnarl/s-intman__vxworks.adb \
1302 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \
1303 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \
1304 s-osprim.adb<libgnat/s-osprim__vxworks.adb \
1305 s-parame.ads<libgnat/s-parame__vxworks.ads \
1306 s-parame.adb<libgnat/s-parame__vxworks.adb \
1307 s-stchop.ads<libgnat/s-stchop__limit.ads \
1308 s-stchop.adb<libgnat/s-stchop__vxworks.adb \
1309 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \
1310 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \
1311 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \
1312 s-vxwork.ads<libgnarl/s-vxwork__$(ARCH_STR).ads \
1313 g-socthi.ads<libgnat/g-socthi__vxworks.ads \
1314 g-socthi.adb<libgnat/g-socthi__vxworks.adb \
1315 g-stsifd.adb<libgnat/g-stsifd__sockets.adb
1317 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1319 ifeq ($(strip $(filter-out rtp-smp,$(THREAD_KIND))),)
1320 LIBGNAT_TARGET_PAIRS += \
1321 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1322 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \
1323 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \
1324 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1325 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp-smp.ads
1327 EXTRA_LIBGNAT_OBJS+=affinity.o
1329 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1330 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1332 ifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),)
1333 LIBGNAT_TARGET_PAIRS += \
1334 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1335 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \
1336 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1337 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \
1338 system.ads<libgnat/$(SVX)-$(ARCH_STR).ads
1340 EXTRA_LIBGNAT_OBJS+=affinity.o
1342 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1343 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1345 LIBGNAT_TARGET_PAIRS += \
1346 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb \
1347 system.ads<libgnat/$(SVX)-$(ARCH_STR).ads
1349 ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
1350 LIBGNAT_TARGET_PAIRS += \
1351 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \
1352 s-vxwext.adb<libgnarl/s-vxwext__kernel.adb
1354 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ)
1355 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS)
1360 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o \
1362 EXTRA_GNATRTL_TASKING_OBJS=i-vxinco.o s-vxwork.o s-vxwext.o
1364 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
1366 ifeq ($(strip $(filter-out arm vxworks7%, $(target_cpu) $(target_os))),)
1367 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec
1369 ifeq ($(strip $(filter-out aarch64, $(target_cpu))),)
1370 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec
1372 EXTRA_ADALIB_OBJS+=$(VX_CRTBE_EXTRA_ADALIB_OBJS)
1373 EXTRA_LIBGNAT_SRCS+=vx_crtbegin.inc
1375 ifneq ($(strip $(filter-out vxworks7%, $(target_os))),)
1376 GCC_SPEC_FILES+=vxworks-arm-link.spec
1377 GCC_SPEC_FILES+=vxworks-smp-arm-link.spec
1383 ifeq ($(strip $(filter-out arm% linux-androideabi,$(target_cpu) $(target_os))),)
1384 LIBGNAT_TARGET_PAIRS = \
1385 a-intnam.ads<libgnarl/a-intnam__linux.ads \
1386 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1387 s-intman.adb<libgnarl/s-intman__android.adb \
1388 s-linux.ads<libgnarl/s-linux__android.ads \
1389 s-osinte.adb<libgnarl/s-osinte__android.adb \
1390 s-osinte.ads<libgnarl/s-osinte__android.ads \
1391 s-osprim.adb<libgnat/s-osprim__posix.adb \
1392 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1393 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1394 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1395 $(ATOMICS_TARGET_PAIRS) \
1396 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1397 system.ads<libgnat/system-linux-arm.ads
1399 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1401 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
1402 EXTRA_LIBGNAT_OBJS+=sigtramp-armdroid.o
1403 EXTRA_LIBGNAT_SRCS+=sigtramp.h
1406 GNATLIB_SHARED = gnatlib-shared-dual
1407 LIBRARY_VERSION := $(LIB_VERSION)
1411 ifeq ($(strip $(filter-out aarch64 %qnx,$(target_cpu) $(target_os))),)
1412 LIBGNAT_TARGET_PAIRS = \
1413 a-intnam.ads<libgnarl/a-intnam__qnx.ads \
1414 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1415 s-intman.adb<libgnarl/s-intman__qnx.adb \
1416 s-osinte.adb<libgnarl/s-osinte__qnx.adb \
1417 s-osinte.ads<libgnarl/s-osinte__qnx.ads \
1418 s-osprim.adb<libgnat/s-osprim__posix.adb \
1419 s-qnx.ads<libgnarl/s-qnx.ads \
1420 s-taprop.adb<libgnarl/s-taprop__qnx.adb \
1421 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1422 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1423 g-soliop.ads<libgnat/g-soliop__qnx.ads \
1424 $(ATOMICS_TARGET_PAIRS) \
1425 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1426 system.ads<libgnat/system-qnx-aarch64.ads
1428 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1430 EXTRA_GNATRTL_TASKING_OBJS=s-qnx.o
1431 EXTRA_LIBGNAT_OBJS+=sigtramp-qnx.o
1432 EXTRA_LIBGNAT_SRCS+=sigtramp.h
1435 SO_OPTS= -shared-libgcc -Wl,-soname,
1438 GNATLIB_SHARED = gnatlib-shared-dual
1439 LIBRARY_VERSION := $(LIB_VERSION)
1443 ifeq ($(strip $(filter-out sparc% sun solaris%,$(target_cpu) $(target_vendor) $(target_os))),)
1444 LIBGNAT_TARGET_PAIRS = \
1445 a-intnam.ads<libgnarl/a-intnam__solaris.ads \
1446 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1447 s-intman.adb<libgnarl/s-intman__solaris.adb \
1448 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1449 s-osinte.adb<libgnarl/s-osinte__solaris.adb \
1450 s-osinte.ads<libgnarl/s-osinte__solaris.ads \
1451 s-osprim.adb<libgnat/s-osprim__solaris.adb \
1452 s-taprop.adb<libgnarl/s-taprop__solaris.adb \
1453 s-tasinf.adb<libgnarl/s-tasinf__solaris.adb \
1454 s-tasinf.ads<libgnarl/s-tasinf__solaris.ads \
1455 s-taspri.ads<libgnarl/s-taspri__solaris.ads \
1456 s-tpopsp.adb<libgnarl/s-tpopsp__solaris.adb \
1457 g-soliop.ads<libgnat/g-soliop__solaris.ads \
1458 $(TRASYM_DWARF_UNIX_PAIRS) \
1459 $(ATOMICS_TARGET_PAIRS) \
1460 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1461 system.ads<libgnat/system-solaris-sparc.ads
1463 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1466 THREADSLIB = -lposix4 -lthread
1467 MISCLIB = -lposix4 -lnsl -lsocket
1469 GNATLIB_SHARED = gnatlib-shared-dual
1471 LIBRARY_VERSION := $(LIB_VERSION)
1474 # x86 and x86-64 solaris
1475 ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(target_cpu) $(target_os))),)
1476 LIBGNAT_TARGET_PAIRS_COMMON = \
1477 a-intnam.ads<libgnarl/a-intnam__solaris.ads \
1478 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1479 s-intman.adb<libgnarl/s-intman__solaris.adb \
1480 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1481 s-osinte.adb<libgnarl/s-osinte__solaris.adb \
1482 s-osinte.ads<libgnarl/s-osinte__solaris.ads \
1483 s-osprim.adb<libgnat/s-osprim__solaris.adb \
1484 s-taprop.adb<libgnarl/s-taprop__solaris.adb \
1485 s-tasinf.adb<libgnarl/s-tasinf__solaris.adb \
1486 s-tasinf.ads<libgnarl/s-tasinf__solaris.ads \
1487 s-taspri.ads<libgnarl/s-taspri__solaris.ads \
1488 s-tpopsp.adb<libgnarl/s-tpopsp__solaris.adb \
1489 g-soliop.ads<libgnat/g-soliop__solaris.ads \
1490 $(TRASYM_DWARF_UNIX_PAIRS) \
1491 $(ATOMICS_TARGET_PAIRS) \
1492 system.ads<libgnat/system-solaris-x86.ads
1494 ifeq ($(strip $(filter-out %86 solaris2%,$(target_cpu) $(target_os))),)
1495 ifeq ($(strip $(MULTISUBDIR)),/amd64)
1496 LIBGNAT_TARGET_PAIRS = \
1497 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_64_TARGET_PAIRS)
1499 LIBGNAT_TARGET_PAIRS = \
1500 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_TARGET_PAIRS)
1503 ifeq ($(strip $(MULTISUBDIR)),/32)
1504 LIBGNAT_TARGET_PAIRS = \
1505 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_TARGET_PAIRS)
1507 LIBGNAT_TARGET_PAIRS = \
1508 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_64_TARGET_PAIRS)
1512 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1513 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1516 THREADSLIB = -lposix4 -lthread
1517 MISCLIB = -lposix4 -lnsl -lsocket
1519 GNATLIB_SHARED = gnatlib-shared-dual
1521 LIBRARY_VERSION := $(LIB_VERSION)
1525 ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),)
1526 LIBGNAT_TARGET_PAIRS = \
1527 a-intnam.ads<libgnarl/a-intnam__linux.ads \
1528 a-synbar.adb<libgnarl/a-synbar__posix.adb \
1529 a-synbar.ads<libgnarl/a-synbar__posix.ads \
1530 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1531 s-intman.adb<libgnarl/s-intman__posix.adb \
1532 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
1533 $(TRASYM_DWARF_UNIX_PAIRS) \
1534 g-sercom.adb<libgnat/g-sercom__linux.adb \
1535 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
1536 a-exetim.adb<libgnarl/a-exetim__posix.adb \
1537 a-exetim.ads<libgnarl/a-exetim__default.ads \
1538 s-linux.ads<libgnarl/s-linux.ads \
1539 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1540 $(ATOMICS_TARGET_PAIRS) \
1541 system.ads<libgnat/system-linux-x86.ads
1543 ifeq ($(strip $(MULTISUBDIR)),/64)
1544 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
1546 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
1549 LIBGNAT_TARGET_PAIRS += \
1550 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1551 s-osinte.ads<libgnarl/s-osinte__linux.ads \
1552 s-osprim.adb<libgnat/s-osprim__posix.adb \
1553 s-taprop.adb<libgnarl/s-taprop__linux.adb \
1554 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
1555 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
1556 s-taspri.ads<libgnarl/s-taspri__posix.ads
1559 THREADSLIB = -lpthread -lrt
1560 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1561 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1562 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
1564 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1566 GNATLIB_SHARED = gnatlib-shared-dual
1569 LIBRARY_VERSION := $(LIB_VERSION)
1571 GNATLIBCFLAGS_FOR_GCCSJLJ+=-fno-omit-frame-pointer -momit-leaf-frame-pointer
1575 ifeq ($(strip $(filter-out %86 kfreebsd%,$(target_cpu) $(target_os))),)
1576 LIBGNAT_TARGET_PAIRS = \
1577 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1578 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1579 s-intman.adb<libgnarl/s-intman__posix.adb \
1580 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1581 s-osinte.ads<libgnarl/s-osinte__kfreebsd-gnu.ads \
1582 s-osprim.adb<libgnat/s-osprim__posix.adb \
1583 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1584 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1585 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1586 $(TRASYM_DWARF_UNIX_PAIRS) \
1587 $(ATOMICS_TARGET_PAIRS) \
1588 $(X86_TARGET_PAIRS) \
1589 system.ads<libgnat/system-freebsd.ads
1591 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1593 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1594 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1597 THREADSLIB = -lpthread
1598 GNATLIB_SHARED = gnatlib-shared-dual
1600 LIBRARY_VERSION := $(LIB_VERSION)
1604 # i[3456]86-pc-gnu i.e. GNU Hurd
1605 ifeq ($(strip $(filter-out %86 pc gnu,$(target_cpu) $(target_vendor) $(target_os))),)
1606 LIBGNAT_TARGET_PAIRS = \
1607 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1608 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1609 s-intman.adb<libgnarl/s-intman__posix.adb \
1610 s-osinte.adb<libgnarl/s-osinte__gnu.adb \
1611 s-osinte.ads<libgnarl/s-osinte__gnu.ads \
1612 s-osprim.adb<libgnat/s-osprim__posix.adb \
1613 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1614 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1615 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1616 $(ATOMICS_TARGET_PAIRS) \
1617 $(X86_TARGET_PAIRS) \
1618 system.ads<libgnat/system-freebsd.ads
1620 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1622 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
1625 THREADSLIB = -lpthread
1626 GNATLIB_SHARED = gnatlib-shared-dual
1628 LIBRARY_VERSION := $(LIB_VERSION)
1631 ifeq ($(strip $(filter-out x86_64 kfreebsd%,$(target_cpu) $(target_os))),)
1632 LIBGNAT_TARGET_PAIRS = \
1633 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1634 a-numaux.adb<libgnat/a-numaux__x86.adb \
1635 a-numaux.ads<libgnat/a-numaux__x86.ads \
1636 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1637 s-intman.adb<libgnarl/s-intman__posix.adb \
1638 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1639 s-osinte.ads<libgnarl/s-osinte__kfreebsd-gnu.ads \
1640 s-osprim.adb<libgnat/s-osprim__posix.adb \
1641 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1642 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1643 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1644 system.ads<libgnat/system-freebsd.ads
1646 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1649 THREADSLIB = -lpthread
1650 GNATLIB_SHARED = gnatlib-shared-dual
1652 LIBRARY_VERSION := $(LIB_VERSION)
1656 ifeq ($(strip $(filter-out %aarch64 freebsd%,$(target_cpu) $(target_os))),)
1657 LIBGNAT_TARGET_PAIRS = \
1658 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1659 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1660 s-intman.adb<libgnarl/s-intman__posix.adb \
1661 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1662 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1663 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1664 s-osprim.adb<libgnat/s-osprim__posix.adb \
1665 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1666 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1667 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1668 $(ATOMICS_TARGET_PAIRS) \
1669 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1670 system.ads<libgnat/system-freebsd.ads
1672 GNATLIB_SHARED = gnatlib-shared-dual
1675 THREADSLIB= -lpthread
1677 LIBRARY_VERSION := $(LIB_VERSION)
1682 ifeq ($(strip $(filter-out %86 freebsd%,$(target_cpu) $(target_os))),)
1683 LIBGNAT_TARGET_PAIRS = \
1684 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1685 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1686 s-intman.adb<libgnarl/s-intman__posix.adb \
1687 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1688 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1689 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1690 s-osprim.adb<libgnat/s-osprim__posix.adb \
1691 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1692 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1693 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1694 $(TRASYM_DWARF_UNIX_PAIRS) \
1695 $(ATOMICS_TARGET_PAIRS) \
1696 $(X86_TARGET_PAIRS) \
1697 system.ads<libgnat/system-freebsd.ads
1699 GNATLIB_SHARED = gnatlib-shared-dual
1701 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1702 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1705 THREADSLIB= -lpthread
1707 LIBRARY_VERSION := $(LIB_VERSION)
1712 ifeq ($(strip $(filter-out %86_64 freebsd%,$(target_cpu) $(target_os))),)
1713 LIBGNAT_TARGET_PAIRS = \
1714 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \
1715 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1716 s-intman.adb<libgnarl/s-intman__posix.adb \
1717 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1718 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \
1719 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \
1720 s-osprim.adb<libgnat/s-osprim__posix.adb \
1721 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1722 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1723 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1724 $(TRASYM_DWARF_UNIX_PAIRS) \
1725 $(ATOMICS_TARGET_PAIRS) \
1726 $(X86_64_TARGET_PAIRS) \
1727 system.ads<libgnat/system-freebsd.ads
1729 GNATLIB_SHARED = gnatlib-shared-dual
1731 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
1732 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1735 THREADSLIB= -lpthread
1737 LIBRARY_VERSION := $(LIB_VERSION)
1742 ifeq ($(strip $(filter-out %86_64 dragonfly%,$(target_cpu) $(target_os))),)
1743 LIBGNAT_TARGET_PAIRS = \
1744 a-intnam.ads<libgnarl/a-intnam__dragonfly.ads \
1745 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1746 s-intman.adb<libgnarl/s-intman__posix.adb \
1747 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
1748 s-osinte.adb<libgnarl/s-osinte__dragonfly.adb \
1749 s-osinte.ads<libgnarl/s-osinte__dragonfly.ads \
1750 s-osprim.adb<libgnat/s-osprim__posix.adb \
1751 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1752 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1753 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1754 $(ATOMICS_TARGET_PAIRS) \
1755 $(X86_64_TARGET_PAIRS) \
1756 system.ads<libgnat/system-dragonfly-x86_64.ads
1758 GNATLIB_SHARED = gnatlib-shared-dual
1760 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
1763 THREADSLIB= -lpthread
1765 LIBRARY_VERSION := $(LIB_VERSION)
1770 ifeq ($(strip $(filter-out s390% linux%,$(target_cpu) $(target_os))),)
1771 LIBGNAT_TARGET_PAIRS = \
1772 a-intnam.ads<libgnarl/a-intnam__linux.ads \
1773 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1774 s-intman.adb<libgnarl/s-intman__posix.adb \
1775 s-linux.ads<libgnarl/s-linux.ads \
1776 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1777 s-osinte.ads<libgnarl/s-osinte__linux.ads \
1778 s-osprim.adb<libgnat/s-osprim__posix.adb \
1779 s-taprop.adb<libgnarl/s-taprop__linux.adb \
1780 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
1781 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
1782 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
1783 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1784 system.ads<libgnat/system-linux-s390.ads
1786 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1788 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
1790 THREADSLIB = -lpthread
1791 GNATLIB_SHARED = gnatlib-shared-dual
1792 LIBRARY_VERSION := $(LIB_VERSION)
1796 ifeq ($(strip $(filter-out hppa% hp hpux10%,$(target_cpu) $(target_vendor) $(target_os))),)
1797 LIBGNAT_TARGET_PAIRS = \
1798 a-excpol.adb<libgnat/a-excpol__abort.adb \
1799 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
1800 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1801 s-interr.adb<libgnarl/s-interr__sigaction.adb \
1802 s-intman.adb<libgnarl/s-intman__posix.adb \
1803 s-osinte.adb<libgnarl/s-osinte__hpux-dce.adb \
1804 s-osinte.ads<libgnarl/s-osinte__hpux-dce.ads \
1805 s-parame.ads<libgnat/s-parame__hpux.ads \
1806 s-osprim.adb<libgnat/s-osprim__posix.adb \
1807 s-taprop.adb<libgnarl/s-taprop__hpux-dce.adb \
1808 s-taspri.ads<libgnarl/s-taspri__hpux-dce.ads \
1809 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1810 system.ads<libgnat/system-hpux.ads
1816 ifeq ($(strip $(filter-out hppa% hp hpux11%,$(target_cpu) $(target_vendor) $(target_os))),)
1817 LIBGNAT_TARGET_PAIRS = \
1818 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
1819 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1820 s-intman.adb<libgnarl/s-intman__posix.adb \
1821 s-osinte.adb<libgnarl/s-osinte__posix.adb \
1822 s-osinte.ads<libgnarl/s-osinte__hpux.ads \
1823 s-parame.ads<libgnat/s-parame__hpux.ads \
1824 s-osprim.adb<libgnat/s-osprim__posix.adb \
1825 s-traceb.adb<libgnat/s-traceb__hpux.adb \
1826 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1827 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1828 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
1829 system.ads<libgnat/system-hpux.ads
1832 TGT_LIB = /usr/lib/libcl.a
1833 THREADSLIB = -lpthread
1837 GNATLIB_SHARED = gnatlib-shared-dual
1838 LIBRARY_VERSION := $(LIB_VERSION)
1842 ifeq ($(strip $(filter-out ibm aix%,$(target_vendor) $(target_os))),)
1843 LIBGNAT_TARGET_PAIRS = \
1844 a-intnam.ads<libgnarl/a-intnam__aix.ads \
1845 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1846 s-intman.adb<libgnarl/s-intman__posix.adb \
1847 s-osinte.adb<libgnarl/s-osinte__aix.adb \
1848 s-osinte.ads<libgnarl/s-osinte__aix.ads \
1849 s-osprim.adb<libgnat/s-osprim__posix.adb \
1850 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1851 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1852 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \
1853 $(TRASYM_DWARF_UNIX_PAIRS) \
1854 $(ATOMICS_TARGET_PAIRS) \
1855 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
1856 system.ads<libgnat/system-aix.ads
1858 ifneq ($(target_os),)
1859 ifeq ($(findstring ppc64, \
1860 $(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) \
1861 -print-multi-os-directory)), \
1863 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-aix.adb
1865 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1869 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
1871 THREADSLIB = -lpthreads
1877 # LynxOS 178 and LynxOS 178 Elf
1878 ifeq ($(strip $(filter-out lynxos178%,$(target_os))),)
1879 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
1881 LIBGNAT_TARGET_PAIRS = \
1882 a-intnam.ads<libgnarl/a-intnam__lynxos.ads \
1883 g-soliop.ads<libgnat/g-soliop__lynxos.ads \
1884 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1885 s-intman.adb<libgnarl/s-intman__lynxos.adb \
1886 s-osinte.adb<libgnarl/s-osinte__lynxos178.adb \
1887 s-osprim.ads<libgnat/s-osprim__lynxos.ads \
1888 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1889 s-taspri.ads<libgnarl/s-taspri__lynxos.ads \
1890 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb
1892 ifeq ($(strip $(filter-out powerpc%, $(target_cpu))),)
1893 LIBGNAT_TARGET_PAIRS += system.ads<libgnat/system-lynxos178-ppc.ads
1895 ifeq ($(strip $(filter-out %86, $(target_cpu))),)
1896 LIBGNAT_TARGET_PAIRS += system.ads<libgnat/system-lynxos178-x86.ads
1897 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
1900 ifeq ($(strip $(filter-out lynxos178e,$(target_os))),)
1901 LIBGNAT_TARGET_PAIRS += \
1902 s-osinte.ads<libgnarl/s-osinte__lynxos178e.ads \
1903 s-osprim.adb<libgnat/s-osprim__posix2008.adb \
1904 s-tracon.adb<hie/s-tracon__ppc-eabi.adb
1911 ifeq ($(strip $(filter-out rtems%,$(target_os))),)
1912 LIBGNAT_TARGET_PAIRS = \
1913 system.ads<libgnat/system-rtems.ads \
1914 a-intnam.ads<libgnarl/a-intnam__rtems.ads \
1915 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
1916 s-intman.adb<libgnarl/s-intman__posix.adb \
1917 s-osinte.adb<libgnarl/s-osinte__rtems.adb \
1918 s-osinte.ads<libgnarl/s-osinte__rtems.ads \
1919 s-osprim.adb<libgnat/s-osprim__rtems.adb \
1920 s-parame.adb<libgnat/s-parame__rtems.adb \
1921 s-taprop.adb<libgnarl/s-taprop__posix.adb \
1922 s-taspri.ads<libgnarl/s-taspri__posix.ads \
1923 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
1924 s-stchop.adb<libgnat/s-stchop__rtems.adb \
1925 s-interr.adb<libgnarl/s-interr__hwint.adb
1926 ifeq ($(strip $(filter-out arm%, $(target_cpu))),)
1934 ifeq ($(strip $(filter-out powerpc% %86 sysgo pikeos,$(target_cpu) $(target_vendor) $(target_os)))),)
1935 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1938 # *-elf, *-eabi, or *-eabispe
1939 ifeq ($(strip $(filter-out elf eabi eabispe,$(target_os))),)
1940 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
1943 ifeq ($(strip $(filter-out %djgpp,$(target_os))),)
1944 GNATRTL_SOCKETS_OBJS =
1946 LIBGNAT_TARGET_PAIRS = \
1947 a-intnam.ads<libgnarl/a-intnam__dummy.ads \
1948 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
1949 s-intman.adb<libgnarl/s-intman__dummy.adb \
1950 s-osinte.ads<libgnarl/s-osinte__dummy.ads \
1951 s-osprim.adb<libgnat/s-osprim__unix.adb \
1952 s-taprop.adb<libgnarl/s-taprop__dummy.adb \
1953 s-taspri.ads<libgnarl/s-taspri__dummy.ads \
1954 system.ads<libgnat/system-djgpp.ads \
1955 $(DUMMY_SOCKETS_TARGET_PAIRS)
1961 ifeq ($(strip $(filter-out cygwin% mingw32% pe,$(target_os))),)
1962 # Cygwin provides a full Posix environment, and so we use the default
1963 # versions of s-memory and g-socthi rather than the Windows-specific
1964 # MinGW versions. Ideally we would use all the default versions for
1965 # Cygwin and none of the MinGW versions, but for historical reasons
1966 # the Cygwin port has always been a CygMing frankenhybrid and it is
1967 # a long-term project to disentangle them.
1968 ifeq ($(strip $(filter-out cygwin%,$(target_os))),)
1969 LIBGNAT_TARGET_PAIRS = \
1970 s-memory.adb<libgnat/s-memory.adb \
1971 g-socthi.ads<libgnat/g-socthi.ads \
1972 g-socthi.adb<libgnat/g-socthi.adb
1974 LIBGNAT_TARGET_PAIRS = \
1975 s-memory.adb<libgnat/s-memory__mingw.adb \
1976 g-socthi.ads<libgnat/g-socthi__mingw.ads \
1977 g-socthi.adb<libgnat/g-socthi__mingw.adb
1979 LIBGNAT_TARGET_PAIRS += \
1980 a-dirval.adb<libgnat/a-dirval__mingw.adb \
1981 a-excpol.adb<libgnat/a-excpol__abort.adb \
1982 s-gloloc.adb<libgnat/s-gloloc__mingw.adb \
1983 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \
1984 s-taspri.ads<libgnarl/s-taspri__mingw.ads \
1985 s-tasinf.adb<libgnarl/s-tasinf__mingw.adb \
1986 s-tasinf.ads<libgnarl/s-tasinf__mingw.ads \
1987 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \
1988 g-soliop.ads<libgnat/g-soliop__mingw.ads \
1989 $(ATOMICS_TARGET_PAIRS) \
1990 system.ads<libgnat/system-mingw.ads
1992 LIBGNAT_TARGET_PAIRS += \
1993 a-exetim.adb<libgnarl/a-exetim__mingw.adb \
1994 a-exetim.ads<libgnarl/a-exetim__mingw.ads \
1995 a-intnam.ads<libgnarl/a-intnam__mingw.ads \
1996 g-sercom.adb<libgnat/g-sercom__mingw.adb \
1997 $(TRASYM_DWARF_MINGW_PAIRS) \
1998 s-tsmona.adb<libgnat/s-tsmona__mingw.adb \
1999 s-interr.adb<libgnarl/s-interr__sigaction.adb \
2000 s-intman.adb<libgnarl/s-intman__mingw.adb \
2001 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2002 s-osinte.ads<libgnarl/s-osinte__mingw.ads \
2003 s-osprim.adb<libgnat/s-osprim__mingw.adb \
2004 s-taprop.adb<libgnarl/s-taprop__mingw.adb
2006 ifeq ($(strip $(filter-out x86_64%,$(target_cpu))),)
2007 ifeq ($(strip $(MULTISUBDIR)),/32)
2008 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2009 SO_OPTS= -m32 -Wl,-soname,
2011 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2012 SO_OPTS = -m64 -Wl,-soname,
2015 ifeq ($(strip $(MULTISUBDIR)),/64)
2016 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2017 SO_OPTS = -m64 -Wl,-soname,
2019 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2020 SO_OPTS = -m32 -Wl,-soname,
2024 EXTRA_GNATRTL_NONTASKING_OBJS += \
2025 s-win32.o s-winext.o g-regist.o g-sse.o g-ssvety.o
2026 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_MINGW_OBJS)
2027 EXTRA_GNATRTL_TASKING_OBJS = a-exetim.o
2028 EXTRA_LIBGNAT_SRCS+=mingw32.h
2031 # ??? This will be replaced by gnatlib-shared-dual-win32 when GNAT
2032 # auto-import support for array/record will be done.
2033 GNATLIB_SHARED = gnatlib-shared-win32
2037 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb
2040 EXTRA_GNATTOOLS = ../../gnatdll$(exeext)
2041 EXTRA_GNATMAKE_OBJS = mdll.o mdll-utl.o mdll-fil.o
2043 LIBRARY_VERSION := $(LIB_VERSION)
2047 ifeq ($(strip $(filter-out mips% linux%,$(target_cpu) $(target_os))),)
2048 LIBGNAT_TARGET_PAIRS = \
2049 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2050 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2051 s-intman.adb<libgnarl/s-intman__posix.adb \
2052 s-linux.ads<libgnarl/s-linux__mips.ads \
2053 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2054 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2055 s-osprim.adb<libgnat/s-osprim__posix.adb \
2056 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2057 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2058 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2059 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2060 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2061 g-sercom.adb<libgnat/g-sercom__linux.adb \
2062 system.ads<libgnat/system-linux-mips.ads
2064 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2066 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2068 THREADSLIB = -lpthread
2069 GNATLIB_SHARED = gnatlib-shared-dual
2071 LIBRARY_VERSION := $(LIB_VERSION)
2074 # PowerPC and e500v2 Linux
2075 ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
2076 LIBGNAT_TARGET_PAIRS_COMMON = \
2077 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2078 a-exetim.ads<libgnarl/a-exetim__default.ads \
2079 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2080 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2081 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2082 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2083 s-intman.adb<libgnarl/s-intman__posix.adb \
2084 s-linux.ads<libgnarl/s-linux.ads \
2085 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2086 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2087 g-sercom.adb<libgnat/g-sercom__linux.adb \
2088 $(TRASYM_DWARF_UNIX_PAIRS) \
2089 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2090 $(ATOMICS_TARGET_PAIRS) \
2091 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2092 system.ads<libgnat/system-linux-ppc.ads
2094 LIBGNAT_TARGET_PAIRS = \
2095 $(LIBGNAT_TARGET_PAIRS_COMMON) \
2096 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2097 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2098 s-osprim.adb<libgnat/s-osprim__posix.adb \
2099 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2100 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2101 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2102 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads
2104 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2106 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2107 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2110 THREADSLIB = -lpthread -lrt
2111 GNATLIB_SHARED = gnatlib-shared-dual
2114 LIBRARY_VERSION := $(LIB_VERSION)
2117 # ARM linux, GNU eabi
2118 ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),)
2119 LIBGNAT_TARGET_PAIRS = \
2120 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2121 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2122 s-intman.adb<libgnarl/s-intman__posix.adb \
2123 s-linux.ads<libgnarl/s-linux.ads \
2124 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2125 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2126 s-osprim.adb<libgnat/s-osprim__posix.adb \
2127 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2128 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2129 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2130 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2131 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2132 $(ATOMICS_TARGET_PAIRS) \
2133 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2134 system.ads<libgnat/system-linux-arm.ads
2136 ifeq ($(strip $(filter-out arm%b,$(target_cpu))),)
2142 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2144 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2145 THREADSLIB = -lpthread
2146 GNATLIB_SHARED = gnatlib-shared-dual
2148 LIBRARY_VERSION := $(LIB_VERSION)
2152 ifeq ($(strip $(filter-out aarch64% linux%,$(target_cpu) $(target_os))),)
2153 LIBGNAT_TARGET_PAIRS = \
2154 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2155 a-exetim.ads<libgnarl/a-exetim__default.ads \
2156 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2157 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2158 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2159 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2160 s-intman.adb<libgnarl/s-intman__posix.adb \
2161 s-linux.ads<libgnarl/s-linux.ads \
2162 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2163 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2164 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2165 s-osprim.adb<libgnat/s-osprim__posix.adb \
2166 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2167 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2168 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2169 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2170 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2171 g-sercom.adb<libgnat/g-sercom__linux.adb \
2172 $(ATOMICS_TARGET_PAIRS) \
2173 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2174 system.ads<libgnat/system-linux-arm.ads
2176 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2178 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2180 THREADSLIB=-lpthread -lrt
2181 GNATLIB_SHARED=gnatlib-shared-dual
2183 LIBRARY_VERSION := $(LIB_VERSION)
2187 ifeq ($(strip $(filter-out sparc% linux%,$(target_cpu) $(target_os))),)
2188 LIBGNAT_TARGET_PAIRS = \
2189 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2190 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2191 s-intman.adb<libgnarl/s-intman__posix.adb \
2192 s-linux.ads<libgnarl/s-linux__sparc.ads \
2193 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2194 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2195 s-osprim.adb<libgnat/s-osprim__posix.adb \
2196 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2197 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2198 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2199 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2200 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2201 system.ads<libgnat/system-linux-sparc.ads
2203 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2205 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2207 THREADSLIB = -lpthread
2208 GNATLIB_SHARED = gnatlib-shared-dual
2210 LIBRARY_VERSION := $(LIB_VERSION)
2214 ifeq ($(strip $(filter-out hppa% linux%,$(target_cpu) $(target_os))),)
2215 LIBGNAT_TARGET_PAIRS = \
2216 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2217 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2218 s-intman.adb<libgnarl/s-intman__posix.adb \
2219 s-linux.ads<libgnarl/s-linux__hppa.ads \
2220 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2221 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2222 s-osprim.adb<libgnat/s-osprim__posix.adb \
2223 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2224 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2225 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2226 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2227 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2228 system.ads<libgnat/system-linux-hppa.ads
2230 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2232 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2234 THREADSLIB = -lpthread
2235 GNATLIB_SHARED = gnatlib-shared-dual
2237 LIBRARY_VERSION := $(LIB_VERSION)
2241 ifeq ($(strip $(filter-out m68k% linux%,$(target_cpu) $(target_os))),)
2242 LIBGNAT_TARGET_PAIRS = \
2243 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2244 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2245 s-intman.adb<libgnarl/s-intman__posix.adb \
2246 s-linux.ads<libgnarl/s-linux.ads \
2247 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2248 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2249 s-osprim.adb<libgnat/s-osprim__posix.adb \
2250 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2251 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2252 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2253 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2254 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2255 system.ads<libgnat/system-linux-m68k.ads
2257 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2259 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2261 THREADSLIB = -lpthread
2262 GNATLIB_SHARED = gnatlib-shared-dual
2264 LIBRARY_VERSION := $(LIB_VERSION)
2268 ifeq ($(strip $(filter-out sh4% linux%,$(target_cpu) $(target_os))),)
2269 LIBGNAT_TARGET_PAIRS = \
2270 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2271 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2272 s-intman.adb<libgnarl/s-intman__posix.adb \
2273 s-linux.ads<libgnarl/s-linux.ads \
2274 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2275 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2276 s-osprim.adb<libgnat/s-osprim__posix.adb \
2277 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2278 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2279 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2280 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2281 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2282 system.ads<libgnat/system-linux-sh4.ads
2284 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-linux.adb
2286 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2289 THREADSLIB = -lpthread
2290 GNATLIB_SHARED = gnatlib-shared-dual
2292 LIBRARY_VERSION := $(LIB_VERSION)
2296 ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
2297 LIBGNAT_TARGET_PAIRS = \
2298 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2299 a-exetim.ads<libgnarl/a-exetim__default.ads \
2300 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2301 a-numaux.ads<libgnat/a-numaux__libc-x86.ads \
2302 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2303 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2304 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2305 s-intman.adb<libgnarl/s-intman__posix.adb \
2306 s-linux.ads<libgnarl/s-linux.ads \
2307 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2308 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2309 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2310 s-osprim.adb<libgnat/s-osprim__posix.adb \
2311 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2312 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2313 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2314 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2315 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2316 g-sercom.adb<libgnat/g-sercom__linux.adb \
2317 $(TRASYM_DWARF_UNIX_PAIRS) \
2318 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2319 $(ATOMICS_TARGET_PAIRS) \
2320 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2321 system.ads<libgnat/system-linux-ia64.ads
2323 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2325 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2326 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2328 THREADSLIB=-lpthread -lrt
2329 GNATLIB_SHARED=gnatlib-shared-dual
2332 LIBRARY_VERSION := $(LIB_VERSION)
2336 ifeq ($(strip $(filter-out ia64% hp hpux%,$(target_cpu) $(target_vendor) $(target_os))),)
2337 LIBGNAT_TARGET_PAIRS = \
2338 a-intnam.ads<libgnarl/a-intnam__hpux.ads \
2339 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2340 s-intman.adb<libgnarl/s-intman__posix.adb \
2341 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2342 s-osinte.ads<libgnarl/s-osinte__hpux.ads \
2343 s-osprim.adb<libgnat/s-osprim__posix.adb \
2344 s-taprop.adb<libgnarl/s-taprop__posix.adb \
2345 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2346 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2347 $(TRASYM_DWARF_UNIX_PAIRS) \
2348 $(ATOMICS_TARGET_PAIRS) \
2349 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2350 system.ads<libgnat/system-hpux-ia64.ads
2352 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2356 THREADSLIB=-lpthread
2357 GNATLIB_SHARED=gnatlib-shared-dual
2361 LIBRARY_VERSION := $(LIB_VERSION)
2365 ifeq ($(strip $(filter-out alpha% linux%,$(target_cpu) $(target_os))),)
2366 LIBGNAT_TARGET_PAIRS = \
2367 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2368 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2369 s-intman.adb<libgnarl/s-intman__posix.adb \
2370 s-linux.ads<libgnarl/s-linux__alpha.ads \
2371 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2372 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2373 s-osprim.adb<libgnat/s-osprim__posix.adb \
2374 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2375 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2376 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2377 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \
2378 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
2379 $(ATOMICS_TARGET_PAIRS) \
2380 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2381 system.ads<libgnat/system-linux-alpha.ads
2383 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2385 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
2388 THREADSLIB=-lpthread
2389 GNATLIB_SHARED=gnatlib-shared-dual
2390 LIBRARY_VERSION := $(LIB_VERSION)
2394 ifeq ($(strip $(filter-out %x86_64 linux%,$(target_cpu) $(target_os))),)
2395 LIBGNAT_TARGET_PAIRS = \
2396 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2397 a-exetim.ads<libgnarl/a-exetim__default.ads \
2398 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2399 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2400 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2401 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2402 s-intman.adb<libgnarl/s-intman__posix.adb \
2403 s-linux.ads<libgnarl/s-linux.ads \
2404 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2405 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2406 s-osinte.adb<libgnarl/s-osinte__posix.adb \
2407 s-osprim.adb<libgnat/s-osprim__posix.adb \
2408 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2409 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2410 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2411 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2412 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2413 g-sercom.adb<libgnat/g-sercom__linux.adb \
2414 $(TRASYM_DWARF_UNIX_PAIRS) \
2415 s-tsmona.adb<libgnat/s-tsmona__linux.adb \
2416 $(ATOMICS_TARGET_PAIRS) \
2417 $(X86_64_TARGET_PAIRS) \
2418 system.ads<libgnat/system-linux-x86.ads
2420 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2422 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o
2423 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS)
2424 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2427 THREADSLIB=-lpthread -lrt
2429 GNATLIB_SHARED=gnatlib-shared-dual
2431 LIBRARY_VERSION := $(LIB_VERSION)
2433 GNATLIBCFLAGS_FOR_GCCSJLJ+=-fno-omit-frame-pointer -momit-leaf-frame-pointer
2436 ifeq ($(strip $(filter-out %x32 linux%,$(target_cpu) $(target_os))),)
2437 LIBGNAT_TARGET_PAIRS = \
2438 a-exetim.adb<libgnarl/a-exetim__posix.adb \
2439 a-exetim.ads<libgnarl/a-exetim__default.ads \
2440 a-intnam.ads<libgnarl/a-intnam__linux.ads \
2441 a-synbar.adb<libgnarl/a-synbar__posix.adb \
2442 a-synbar.ads<libgnarl/a-synbar__posix.ads \
2443 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2444 s-intman.adb<libgnarl/s-intman__posix.adb \
2445 s-linux.ads<libgnarl/s-linux__x32.ads \
2446 s-mudido.adb<libgnarl/s-mudido__affinity.adb \
2447 s-osinte.ads<libgnarl/s-osinte__linux.ads \
2448 s-osinte.adb<libgnarl/s-osinte__x32.adb \
2449 s-osprim.adb<libgnat/s-osprim__x32.adb \
2450 s-taprop.adb<libgnarl/s-taprop__linux.adb \
2451 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \
2452 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
2453 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
2454 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2455 g-sercom.adb<libgnat/g-sercom__linux.adb \
2456 $(ATOMICS_TARGET_PAIRS) \
2457 $(X86_64_TARGET_PAIRS) \
2458 system.ads<libgnat/system-linux-x86.ads
2460 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb
2462 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
2463 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o
2465 THREADSLIB=-lpthread -lrt
2466 GNATLIB_SHARED=gnatlib-shared-dual
2468 LIBRARY_VERSION := $(LIB_VERSION)
2472 ifeq ($(strip $(filter-out darwin%,$(target_os))),)
2473 SO_OPTS = -shared-libgcc
2474 LIBGNAT_TARGET_PAIRS = \
2475 a-intnam.ads<libgnarl/a-intnam__darwin.ads \
2476 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
2477 s-osinte.adb<libgnarl/s-osinte__darwin.adb \
2478 s-osinte.ads<libgnarl/s-osinte__darwin.ads \
2479 s-taprop.adb<libgnarl/s-taprop__posix.adb \
2480 s-taspri.ads<libgnarl/s-taspri__posix.ads \
2481 g-sercom.adb<libgnat/g-sercom__linux.adb \
2482 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb
2484 ifeq ($(strip $(filter-out %86,$(target_cpu))),)
2485 LIBGNAT_TARGET_PAIRS += \
2486 s-intman.adb<libgnarl/s-intman__susv3.adb \
2487 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2488 $(ATOMICS_TARGET_PAIRS) \
2489 system.ads<libgnat/system-darwin-x86.ads
2491 ifeq ($(strip $(MULTISUBDIR)),/x86_64)
2493 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2495 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2498 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
2501 ifeq ($(strip $(filter-out %x86_64,$(target_cpu))),)
2502 LIBGNAT_TARGET_PAIRS += \
2503 s-intman.adb<libgnarl/s-intman__susv3.adb \
2504 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2505 a-exetim.ads<libgnarl/a-exetim__default.ads \
2506 a-exetim.adb<libgnarl/a-exetim__darwin.adb \
2507 $(ATOMICS_TARGET_PAIRS) \
2508 system.ads<libgnat/system-darwin-x86.ads
2510 ifeq ($(strip $(MULTISUBDIR)),/i386)
2512 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS)
2514 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS)
2517 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
2518 EXTRA_GNATRTL_TASKING_OBJS=a-exetim.o
2521 ifeq ($(strip $(filter-out powerpc%,$(target_cpu))),)
2522 LIBGNAT_TARGET_PAIRS += \
2523 s-intman.adb<libgnarl/s-intman__posix.adb \
2524 s-osprim.adb<libgnat/s-osprim__posix.adb \
2525 a-numaux.ads<libgnat/a-numaux__darwin.ads \
2526 a-numaux.adb<libgnat/a-numaux__darwin.adb \
2527 $(ATOMICS_TARGET_PAIRS) \
2528 $(ATOMICS_BUILTINS_TARGET_PAIRS) \
2529 system.ads<libgnat/system-darwin-ppc.ads
2531 ifeq ($(strip $(MULTISUBDIR)),/ppc64)
2536 ifeq ($(strip $(filter-out arm,$(target_cpu))),)
2537 LIBGNAT_TARGET_PAIRS += \
2538 s-intman.adb<libgnarl/s-intman__susv3.adb \
2539 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2540 $(ATOMICS_TARGET_PAIRS) \
2541 $(ATOMICS_BUILTINS_TARGET_PAIRS)
2543 LIBGNAT_TARGET_PAIRS += \
2544 system.ads<libgnat/system-darwin-arm.ads
2547 ifeq ($(strip $(filter-out arm64 aarch64,$(target_cpu))),)
2548 LIBGNAT_TARGET_PAIRS += \
2549 s-intman.adb<libgnarl/s-intman__susv3.adb \
2550 s-osprim.adb<libgnat/s-osprim__darwin.adb \
2551 $(ATOMICS_TARGET_PAIRS) \
2552 $(ATOMICS_BUILTINS_TARGET_PAIRS)
2554 EXTRA_LIBGNAT_OBJS+=sigtramp-ios.o
2555 EXTRA_LIBGNAT_SRCS+=sigtramp.h
2556 LIBGNAT_TARGET_PAIRS += \
2557 system.ads<libgnat/system-darwin-arm.ads
2560 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-darwin.adb
2563 GNATLIB_SHARED = gnatlib-shared-darwin
2565 LIBRARY_VERSION := $(LIB_VERSION)
2567 GCC_LINK_FLAGS=-static-libstdc++
2570 ifeq ($(EH_MECHANISM),-gcc)
2571 LIBGNAT_TARGET_PAIRS += \
2572 s-excmac.ads<libgnat/s-excmac__gcc.ads \
2573 s-excmac.adb<libgnat/s-excmac__gcc.adb
2574 EXTRA_LIBGNAT_OBJS+=raise-gcc.o
2575 EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o
2578 ifeq ($(EH_MECHANISM),-arm)
2579 LIBGNAT_TARGET_PAIRS += \
2580 s-excmac.ads<libgnat/s-excmac__arm.ads \
2581 s-excmac.adb<libgnat/s-excmac__arm.adb
2582 EXTRA_LIBGNAT_OBJS+=raise-gcc.o
2583 EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o
2586 # LIBGNAT_SRCS is the list of all C files (including headers) of the runtime
2587 # library. LIBGNAT_OBJS is the list of object files for libgnat.
2588 # thread.c is special as put into GNATRTL_TASKING_OBJS
2589 LIBGNAT_OBJS = adadecode.o adaint.o argv.o aux-io.o \
2590 cal.o cio.o cstreams.o ctrl_c.o \
2591 env.o errno.o exit.o expect.o final.o rtfinal.o rtinit.o \
2592 init.o initialize.o locales.o mkdir.o \
2593 raise.o seh_init.o socket.o sysdep.o \
2594 targext.o terminals.o tracebak.o \
2595 $(EXTRA_LIBGNAT_OBJS)
2597 # NOTE ??? - when the -I option for compiling Ada code is made to work,
2598 # the library installation will change and there will be a
2599 # GNAT_RTL_SRCS. Right now we count on being able to build GNATRTL_OBJS
2600 # from ADA_INCLUDE_SRCS.
2602 LIBGNAT_SRCS = $(patsubst %.o,%.c,$(LIBGNAT_OBJS)) \
2603 adadecode.h adaint.h env.h gsocket.h raise.h standard.ads.h \
2604 tb-gcc.c libgnarl/thread.c $(EXTRA_LIBGNAT_SRCS)
2606 # memtrack.o is special as not put into libgnat.
2607 GNATRTL_OBJS = $(GNATRTL_NONTASKING_OBJS) $(GNATRTL_TASKING_OBJS) \
2610 # Run time source files
2611 # Note that libgnat contains a significant number of files. In orde to avoid
2612 # command line length limitations the source regexp has been split for that
2615 libgnat/ada.ads libgnat/calendar.ads libgnat/directio.ads libgnat/gnat.ads libgnat/interfac.ads libgnat/ioexcept.ads \
2616 libgnat/machcode.ads libgnat/text_io.ads libgnat/unchconv.ads libgnat/unchdeal.ads \
2617 libgnat/sequenio.ads libgnat/system.ads Makefile.adalib libgnat/memtrack.adb \
2618 libgnat/a-[a-o]*.adb libgnat/a-[a-o]*.ads \
2619 libgnat/a-[p-z]*.adb libgnat/a-[p-z]*.ads \
2620 libgnat/g-[a-o]*.adb libgnat/g-[a-o]*.ads \
2621 libgnat/g-[p-z]*.adb libgnat/g-[p-z]*.ads \
2622 libgnat/s-[a-o]*.adb libgnat/s-[a-o]*.ads \
2623 libgnat/s-[p-z]*.adb libgnat/s-[p-z]*.ads \
2624 libgnat/i-[a-o]*.adb libgnat/i-[a-o]*.ads \
2625 libgnat/i-[p-z]*.adb libgnat/i-[p-z]*.ads \
2626 libgnarl/[agis]-[a-z]*.ad[sb]
2629 # Files that are in ADA_INCLUDE_SRCS but not in all configurations.
2630 # They will be removed from the run time if not used.
2632 g-allein.ads g-alleve.adb g-alleve.ads g-altcon.adb g-altcon.ads \
2633 g-altive.ads g-alveop.adb g-alveop.ads g-alvety.ads g-alvevi.ads \
2634 g-intpri.ads g-regist.adb g-regist.ads g-sse.ads g-ssvety.ads \
2635 i-vxinco.adb i-vxinco.ads i-vxwoio.adb i-vxwoio.ads i-vxwork.ads \
2636 s-bb.ads s-bbbosu.ads s-bbcaco.ads s-bbcppr.ads s-bbexti.adb \
2637 s-bbexti.ads s-bbinte.adb s-bbinte.ads s-bbprot.adb s-bbprot.ads \
2638 s-bbsle3.ads s-bbsuer.ads s-bbsule.ads s-bbthqu.adb s-bbthqu.ads \
2639 s-bbthre.adb s-bbthre.ads s-bbtiev.adb s-bbtiev.ads s-bbtime.adb \
2640 s-bbtime.ads s-bcprmu.adb s-bcprmu.ads s-btstch.adb s-btstch.ads \
2641 s-gcc.adb s-gcc.ads s-gccdiv.adb s-gccdiv.ads \
2642 s-gccshi.adb s-gccshi.ads \
2643 s-init.ads s-init.adb s-linux.ads s-macres.ads \
2644 s-memcom.adb s-memcom.ads s-memmov.adb s-memmov.ads s-memset.adb \
2645 s-memset.ads s-mufalo.adb s-mufalo.ads s-musplo.adb s-musplo.ads \
2646 s-sam4.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb s-sopco4.ads \
2647 s-sopco5.adb s-sopco5.ads s-stchop.ads s-stchop.adb s-stm32.ads \
2648 s-strcom.adb s-strcom.ads s-thread.ads \
2649 s-vxwext.adb s-vxwext.ads \
2650 s-win32.ads s-winext.ads
2652 # ADA_EXCLUDE_SRCS without the sources used by the target
2653 ADA_EXCLUDE_FILES=$(filter-out \
2654 $(patsubst %$(objext),%.ads,$(GNATRTL_OBJS)) \
2655 $(patsubst %$(objext),%.adb,$(GNATRTL_OBJS)), \
2656 $(ADA_EXCLUDE_SRCS))
2661 $(CHMOD) u+w $(RTSDIR)
2662 # Copy target independent sources
2663 $(foreach f,$(ADA_INCLUDE_SRCS) $(LIBGNAT_SRCS), \
2664 $(LN_S) $(GNAT_SRC)/$(f) $(RTSDIR) ;) true
2665 # Remove files not used
2666 $(RM) $(patsubst %,$(RTSDIR)/%,$(ADA_EXCLUDE_FILES))
2667 # Remove files to be replaced by target dependent sources
2668 $(RM) $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \
2669 $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR))))
2670 for f in $(RTSDIR)/*-*__*.ads $(RTSDIR)/*-*__*.adb; do \
2672 $(RTSDIR)/s-stratt__*) ;; \
2676 # Copy new target dependent sources
2677 $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \
2678 $(LN_S) $(GNAT_SRC)/$(word 2,$(subst <, ,$(PAIR))) \
2679 $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR)));)
2683 # force no sibling call optimization on s-traceb.o so the number of stack
2684 # frames to be skipped when computing a call chain is not modified by
2685 # optimization. We don't want inlining, either.
2687 s-traceb.o : s-traceb.adb s-traceb.ads
2688 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) \
2689 $(NO_INLINE_ADAFLAGS) $(NO_SIBLING_ADAFLAGS) $(ADA_INCLUDES) $< \
2692 # compile s-tasdeb.o without optimization and with debug info so that it is
2693 # always possible to set conditional breakpoints on tasks.
2695 s-tasdeb.o : s-tasdeb.adb s-tasdeb.ads
2696 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O0 $(ADA_INCLUDES) \
2699 # force no function reordering on a-except.o because of the exclusion bounds
2700 # mechanism (see the source file for more detailed information).
2701 # force debugging information on a-except.o so that it is always
2702 # possible to set conditional breakpoints on exceptions.
2703 # use -O1 otherwise gdb isn't able to get a full backtrace on mips targets.
2705 a-except.o : a-except.adb a-except.ads
2706 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) \
2707 $(NO_INLINE_ADAFLAGS) $(NO_REORDER_ADAFLAGS) -O1 $(ADA_INCLUDES) \
2710 # compile s-excdeb.o without optimization and with debug info to let the
2711 # debugger set breakpoints and inspect subprogram parameters on exception
2714 s-excdeb.o : s-excdeb.adb s-excdeb.ads s-except.ads
2715 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O0 \
2716 $(ADA_INCLUDES) $< $(OUTPUT_OPTION)
2718 # force debugging information on s-assert.o so that it is always
2719 # possible to set breakpoint on assert failures.
2721 s-assert.o : s-assert.adb s-assert.ads
2722 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \
2725 # force debugging information on a-tags.o so that the debugger can find
2726 # the description of Ada.Tags.Type_Specific_Data.
2728 a-tags.o : a-tags.adb a-tags.ads
2729 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \
2732 # force no sibling call optimization on s-memory.o to avoid turning the
2733 # tail recursion in Alloc into a loop that confuses branch prediction.
2735 s-memory.o : s-memory.adb s-memory.ads
2736 $(ADAC) -c $(ALL_ADAFLAGS) $(NO_SIBLING_ADAFLAGS) $(ADA_INCLUDES) \