[pushed] analyzer: install header files for use by plugins [PR109077]

Message ID 20231128082716.1437220-1-dmalcolm@redhat.com
State Accepted
Headers
Series [pushed] analyzer: install header files for use by plugins [PR109077] |

Checks

Context Check Description
snail/gcc-patch-check success Github commit url

Commit Message

David Malcolm Nov. 28, 2023, 8:27 a.m. UTC
  PLUGIN_ANALYZER_INIT was added in r11-5583-g66dde7bc64b75d, but we
haven't been installing the analyzer's headers files.

Fixed thusly.

Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
I compared the before/after results of "make install" and confirmed that
it now installs the analyzer headers.
With this patch I was also able to successfully compile and run an
out-of-tree build of the cpython analyzer plugin (PR analyzer/107646).

Pushed to trunk as r14-5899-g594ef1ff707866.

gcc/ChangeLog:
	PR analyzer/109077
	* Makefile.in (PLUGIN_HEADERS): Add analyzer headers.
	(install-plugin): Keep the directory structure for files in
	"analyzer".
---
 gcc/Makefile.in | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
  

Patch

diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 753f2f36618..b79421e7252 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -3821,7 +3821,7 @@  PLUGIN_HEADERS = $(TREE_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
   hash-set.h dominance.h cfg.h cfgrtl.h cfganal.h cfgbuild.h cfgcleanup.h \
   lcm.h cfgloopmanip.h file-prefix-map.h builtins.def $(INSN_ATTR_H) \
   pass-instances.def params.list $(srcdir)/../include/gomp-constants.h \
-  $(EXPR_H)
+  $(EXPR_H) $(srcdir)/analyzer/*.h
 
 # generate the 'build fragment' b-header-vars
 s-header-vars: Makefile
@@ -3844,8 +3844,9 @@  install-gengtype: installdirs gengtype$(exeext) gtype.state
 
 # Install the headers needed to build a plugin.
 install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
-# We keep the directory structure for files in config, common/config or
-# c-family and .def files. All other files are flattened to a single directory.
+# We keep the directory structure for files in analyzer, config, common/config
+# or c-family and .def files.
+# All other files are flattened to a single directory.
 	$(mkinstalldirs) $(DESTDIR)$(plugin_includedir)
 	headers=`echo $(sort $(PLUGIN_HEADERS)) $$(cd $(srcdir); echo *.h *.def) | tr ' ' '\012' | sort -u`; \
 	srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \
@@ -3857,7 +3858,8 @@  install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
 	  else continue; \
 	  fi; \
 	  case $$path in \
-	  "$(srcdir)"/config/* | "$(srcdir)"/common/config/* \
+	  "$(srcdir)"/analyzer/* \
+	  | "$(srcdir)"/config/* | "$(srcdir)"/common/config/* \
 	  | "$(srcdir)"/c-family/* | "$(srcdir)"/*.def ) \
 	    base=`echo "$$path" | sed -e "s|$$srcdirstrip/||"`;; \
 	  *) base=`basename $$path` ;; \