aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJerome Guitton <guitton@adacore.com>2019-08-19 08:36:58 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2019-08-19 08:36:58 +0000
commitbd0feb3c614d33141062a5d5c7a4966a3b64d7bd (patch)
treeaa3b347b593f5ec4907174f7a2306e80ad3706f2
parent6c87c83bb2a8a65f6f73d23ebb863a5c67e4c6c2 (diff)
downloadgcc-bd0feb3c614d33141062a5d5c7a4966a3b64d7bd.zip
gcc-bd0feb3c614d33141062a5d5c7a4966a3b64d7bd.tar.gz
gcc-bd0feb3c614d33141062a5d5c7a4966a3b64d7bd.tar.bz2
[Ada] Generate ada_target_properties
Generate target-dependent info into a file named ada_target_properties. This information is used by tools for static analysis: they need to know the size of standard types for a given run-time library. This metadata is meant to be saved at the root of the run-time directory. 2019-08-19 Jerome Guitton <guitton@adacore.com> gcc/ada/ * Makefile.rtl (system.o): New target to add generation of target properties. * gcc-interface/Makefile.in (install-gnatlib): Install ada_target_properties. From-SVN: r274658
-rw-r--r--gcc/ada/ChangeLog7
-rw-r--r--gcc/ada/Makefile.rtl12
-rw-r--r--gcc/ada/gcc-interface/Makefile.in2
3 files changed, 21 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 2ac5309..1c98305 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,10 @@
+2019-08-19 Jerome Guitton <guitton@adacore.com>
+
+ * Makefile.rtl (system.o): New target to add generation of
+ target properties.
+ * gcc-interface/Makefile.in (install-gnatlib): Install
+ ada_target_properties.
+
2019-08-19 Eric Botcazou <ebotcazou@adacore.com>
* inline.adb (Add_Inlined_Body): Do not special-case instances
diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl
index d6dd151..c1a422f 100644
--- a/gcc/ada/Makefile.rtl
+++ b/gcc/ada/Makefile.rtl
@@ -2696,6 +2696,18 @@ setup-rts: force
# propagation of exceptions cannot itself be compiled with checks that
# may give rise to exceptions, e.g. stack overflow checks.
+# Generate target-dependent info into a file named ada_target_properties.
+# This information is used by tools for static analysis: they need to know
+# the size of standard types for a given run-time library. This metadata
+# is meant to be saved at the root of the run-time directory.
+
+ADA_TARGET_PROPERTIES = -gnatet=ada_target_properties
+
+system.o : system.ads
+ $(ADAC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< \
+ $(ADA_TARGET_PROPERTIES) \
+ $(OUTPUT_OPTION)
+
# Force no sibling call optimization on s-traceb.o so the number of stack
# frames to be skipped when computing a call chain is not modified by
# optimization. We don't want inlining, either.
diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in
index e9a4874..d4c9d15 100644
--- a/gcc/ada/gcc-interface/Makefile.in
+++ b/gcc/ada/gcc-interface/Makefile.in
@@ -516,6 +516,8 @@ install-gnatlib: ../stamp-gnatlib-$(RTSDIR) install-gcc-specs
for file in $(RTSDIR)/*.ali; do \
$(INSTALL_DATA_DATE) $$file $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
done
+ $(INSTALL_DATA_DATE) $(RTSDIR)/ada_target_properties \
+ $(DESTDIR)$(ADA_RTL_OBJ_DIR)/../
-cd $(RTSDIR); for file in *$(arext);do \
$(INSTALL_DATA) $$file $(DESTDIR)$(ADA_RTL_OBJ_DIR); \
$(RANLIB_FOR_TARGET) $(DESTDIR)$(ADA_RTL_OBJ_DIR)/$$file; \