aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@adacore.com>2015-10-20 10:36:00 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2015-10-20 12:36:00 +0200
commit04b32ed7444af274054b00d8bd06f26819c97c65 (patch)
treee4b13be95ff486dee09dc6c8c14fb0795af5105c /gcc/ada
parent14f732114eaf16771c0f3865b678e491838fdc87 (diff)
downloadgcc-04b32ed7444af274054b00d8bd06f26819c97c65.zip
gcc-04b32ed7444af274054b00d8bd06f26819c97c65.tar.gz
gcc-04b32ed7444af274054b00d8bd06f26819c97c65.tar.bz2
Update targets.
From-SVN: r229042
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog4
-rw-r--r--gcc/ada/gcc-interface/Makefile.in82
2 files changed, 79 insertions, 7 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 76f4dd6..927a112 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,7 @@
+2015-10-20 Arnaud Charlet <charlet@adacore.com>
+
+ * gcc-interface/Makefile.in: Update targets.
+
2015-10-20 Bob Duff <duff@adacore.com>
* sem_ch13.adb (Analyze_One_Aspect): Avoid
diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in
index 1d03f86..18ce6d5 100644
--- a/gcc/ada/gcc-interface/Makefile.in
+++ b/gcc/ada/gcc-interface/Makefile.in
@@ -885,8 +885,13 @@ ifeq ($(strip $(filter-out %86 wrs vxworks vxworks7,$(target_cpu) $(target_vendo
SVX=system-vxworks7
else
SVX=system-vxworks
+ EH_MECHANISM=-gcc
endif
+ EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o sigtramp-vxworks-vxsim.o
+ EXTRA_LIBGNAT_OBJS+=init-vxsim.o
+ EXTRA_LIBGNAT_SRCS+=sigtramp.h sigtramp-vxworks-target.inc
+
LIBGNAT_TARGET_PAIRS = \
a-intnam.ads<a-intnam-vxworks.ads \
i-vxwork.ads<i-vxwork-x86.ads \
@@ -923,13 +928,49 @@ ifeq ($(strip $(filter-out %86 wrs vxworks vxworks7,$(target_cpu) $(target_vendo
s-tfsetr.adb<s-tfsetr-vxworks.adb
endif
+ # The CPU setting for VxSim varies with the
+ # host (Windows or Linux)
+ # target (VxWorks6 or VxWorks7)
+ # runtime (rtp or kernel)
+ # -------------------------------------------------------------
+ # vx6 vx7
+ # Windows (host_os = mingw32)
+ # kernel SIMNT SIMNT
+ # rtp SIMPENTIUM SIMNT
+ # Linux (host_os = linux-gnu)
+ # kernel SIMLINUX SIMLINUX
+ # rtp SIMPENTIUM SIMLINUX
+ # -------------------------------------------------------------
+ # It is overridden by VXSIM_CPU only in files init-vxsim.c and
+ # sigtramp-vxworks-vxsim.c which contain functions determined at
+ # runtime to be called if a program is running on VxSim vs real hardware
+ # (due to differences in signal context for unwinding).
+
+ VXSIM_CPU =
+
+ ifeq ($(strip $(filter-out vxworks rtp rtp-smp,$(target_os) $(THREAD_KIND))),)
+ VXSIM_CPU = SIMPENTIUM
+ else
+ ifeq ($(strip $(filter-out kernel kernel-smp rtp rtp-smp,$(THREAD_KIND))),)
+ ifeq ($(strip $(filter-out linux%,$(host_os))),)
+ # Linux
+ VXSIM_CPU = SIMLINUX
+ else
+ # Windows
+ VXSIM_CPU = SIMNT
+ endif
+ endif
+ endif
+
+ GNATLIBCFLAGS_FOR_C := $(GNATLIBCFLAGS_FOR_C) -D__VXSIM_CPU__=$(VXSIM_CPU)
+
ifeq ($(strip $(filter-out rtp,$(THREAD_KIND))),)
+ # Runtime N/A for VxWorks7 (non-existent system file)
LIBGNAT_TARGET_PAIRS += \
s-vxwext.ads<s-vxwext-rtp.ads \
s-vxwext.adb<s-vxwext-rtp.adb \
s-tpopsp.adb<s-tpopsp-vxworks-rtp.adb \
- system.ads<system-vxworks-x86-rtp.ads
-
+ system.ads<$(SVX)-x86-rtp.ads
else
ifeq ($(strip $(filter-out rtp-smp, $(THREAD_KIND))),)
LIBGNAT_TARGET_PAIRS += \
@@ -949,6 +990,7 @@ ifeq ($(strip $(filter-out %86 wrs vxworks vxworks7,$(target_cpu) $(target_vendo
s-vxwext.ads<s-vxwext-kernel.ads \
s-vxwext.adb<s-vxwext-kernel-smp.adb \
system.ads<$(SVX)-x86-kernel.ads
+
EXTRA_LIBGNAT_OBJS+=affinity.o
else
LIBGNAT_TARGET_PAIRS += \
@@ -956,10 +998,11 @@ ifeq ($(strip $(filter-out %86 wrs vxworks vxworks7,$(target_cpu) $(target_vendo
s-tpopsp.adb<s-tpopsp-vxworks.adb
ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),)
+ # Runtime N/A for VxWorks7 (non-existent system file)
LIBGNAT_TARGET_PAIRS += \
s-vxwext.ads<s-vxwext-kernel.ads \
s-vxwext.adb<s-vxwext-kernel.adb \
- system.ads<system-vxworks-x86-kernel.ads
+ system.ads<$(SVX)-x86-kernel.ads
else
LIBGNAT_TARGET_PAIRS += \
system.ads<system-vxworks-x86.ads
@@ -974,6 +1017,7 @@ ifeq ($(strip $(filter-out %86 wrs vxworks vxworks7,$(target_cpu) $(target_vendo
EXTRA_LIBGNAT_OBJS+=vx_stack_info.o
ifneq ($(strip $(filter-out vxworks7%, $(target_os))),)
+ GCC_SPEC_FILES+=vxworks-crtbe-link.spec
GCC_SPEC_FILES+=vxworks-x86-link.spec
GCC_SPEC_FILES+=vxworks-cert-x86-link.spec
GCC_SPEC_FILES+=vxworks-smp-x86-link.spec
@@ -2381,6 +2425,17 @@ ifeq ($(strip $(filter-out darwin%,$(target_os))),)
system.ads<system-darwin-arm.ads
endif
+ ifeq ($(strip $(filter-out arm64 aarch64,$(target_cpu))),)
+ LIBGNAT_TARGET_PAIRS += \
+ s-intman.adb<s-intman-susv3.adb \
+ s-osprim.adb<s-osprim-darwin.adb \
+ $(ATOMICS_TARGET_PAIRS) \
+ $(ATOMICS_BUILTINS_TARGET_PAIRS)
+
+ LIBGNAT_TARGET_PAIRS += \
+ system.ads<system-darwin-arm64.ads
+ endif
+
TOOLS_TARGET_PAIRS = \
mlib-tgt-specific.adb<mlib-tgt-specific-darwin.adb \
indepsw.adb<indepsw-darwin.adb
@@ -2413,6 +2468,14 @@ ifeq ($(filter a-except%,$(LIBGNAT_TARGET_PAIRS)),)
a-except.adb<a-except-2005.adb
endif
+# Configuration of host tools
+
+# Under linux, host tools need to be linked with -ldl
+
+ifeq ($(strip $(filter-out linux%,$(host_os))),)
+ TOOLS1_LIBS=-ldl
+endif
+
# LIBGNAT_SRCS is the list of all C files (including headers) of the runtime
# library. LIBGNAT_OBJS is the list of object files for libgnat.
# thread.c is special as put into GNATRTL_TASKING_OBJS by Makefile.rtl
@@ -2618,10 +2681,10 @@ gnatlink-re: ../stamp-tools gnatmake-re
# Likewise for the tools
../../gnatmake$(exeext): $(P) b_gnatm.o $(GNATMAKE_OBJS)
- +$(GCC_LINK) $(ALL_CFLAGS) -o $@ b_gnatm.o $(GNATMAKE_OBJS) $(TOOLS_LIBS)
+ +$(GCC_LINK) $(ALL_CFLAGS) -o $@ b_gnatm.o $(GNATMAKE_OBJS) $(TOOLS_LIBS) $(TOOLS1_LIBS)
../../gnatlink$(exeext): $(P) b_gnatl.o $(GNATLINK_OBJS)
- +$(GCC_LINK) $(ALL_CFLAGS) -o $@ b_gnatl.o $(GNATLINK_OBJS) $(TOOLS_LIBS)
+ +$(GCC_LINK) $(ALL_CFLAGS) -o $@ b_gnatl.o $(GNATLINK_OBJS) $(TOOLS_LIBS) $(TOOLS1_LIBS)
../stamp-gnatlib-$(RTSDIR):
@if [ ! -f stamp-gnatlib-$(RTSDIR) ] ; \
@@ -3071,8 +3134,9 @@ mkdir.o : mkdir.c
socket.o : socket.c gsocket.h
sysdep.o : sysdep.c
raise.o : raise.c raise.h
-sigtramp-armdroid.o : sigtramp-armdroid.c sigtramp.h
-sigtramp-vxworks.o : sigtramp-vxworks.c sigtramp.h
+sigtramp-armdroid.o : sigtramp-armdroid.c sigtramp.h
+sigtramp-vxworks.o : sigtramp-vxworks.c sigtramp.h sigtramp-vxworks-target.inc
+sigtramp-vxworks-vxsim.o : sigtramp-vxworks-vxsim.c sigtramp.h sigtramp-vxworks-target.inc
terminals.o : terminals.c
vx_stack_info.o : vx_stack_info.c
@@ -3089,6 +3153,10 @@ init.o : init.c adaint.h raise.h
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
$(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
+init-vxsim.o : init-vxsim.c
+ $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
+ $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
+
initialize.o : initialize.c raise.h
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \
$(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)