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.
Tested on x86_64-pc-linux-gnu, committed on trunk
2019-08-19 Jerome Guitton <guit...@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.
--- gcc/ada/Makefile.rtl
+++ 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.
--- gcc/ada/gcc-interface/Makefile.in
+++ 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; \