public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] Pass PKG_CONFIG_PATH down from top-level Makefile
@ 2022-04-08 14:57 Simon Marchi
  0 siblings, 0 replies; only message in thread
From: Simon Marchi @ 2022-04-08 14:57 UTC (permalink / raw)
  To: bfd-cvs, gdb-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=de83289ef32ed0673f2302e6751a7465f45c0cbb

commit de83289ef32ed0673f2302e6751a7465f45c0cbb
Author: Simon Marchi <simon.marchi@efficios.com>
Date:   Fri Apr 8 10:56:41 2022 -0400

    Pass PKG_CONFIG_PATH down from top-level Makefile
    
    [Sending to binutils, gdb-patches and gcc-patches, since it touches the
    top-level Makefile/configure]
    
    I have my debuginfod library installed in a non-standard location
    (/opt/debuginfod), which requires me to set
    PKG_CONFIG_PATH=/opt/debuginfod/lib/pkg-config.  If I just set it during
    configure:
    
        $ PKG_CONFIG_PATH=/opt/debuginfod/lib/pkg-config ./configure --with-debuginfod
        $ make
    
    or
    
        $ ./configure --with-debuginfod PKG_CONFIG_PATH=/opt/debuginfod/lib/pkg-config
        $ make
    
    Then PKG_CONFIG_PATH is only present (and ignored) during the top-level
    configure.  When running make (which runs gdb's and binutils'
    configure), PKG_CONFIG_PATH is not set, which results in their configure
    script not finding the library:
    
        checking for libdebuginfod >= 0.179... no
        configure: error: "--with-debuginfod was given, but libdebuginfod is missing or unusable."
    
    Change the top-level configure/Makefile system to capture the value
    passed when configuring the top-level and pass it down to
    subdirectories (similar to CFLAGS, LDFLAGS, etc).
    
    I don't know much about the top-level build system, so I really don't
    know if I did this correctly.  The changes are:
    
     - Use AC_SUBST(PKG_CONFIG_PATH) in configure.ac, so that
       @PKG_CONFIG_PATH@ gets replaced with the actual PKG_CONFIG_PATH value
       in config files (i.e. Makefile)
     - Add a PKG_CONFIG_PATH Makefile variable in Makefile.tpl, initialized
       to @PKG_CONFIG_PATH@
     - Add PKG_CONFIG_PATH to HOST_EXPORTS in Makefile.tpl, which are the
       variables set when running the sub-configures
    
    I initially added PKG_CONFIG_PATH to flags_to_pass, in Makefile.def, but
    I don't think it's needed.  AFAIU, this defines the flags to pass down
    when calling "make" in subdirectories.  We only need PKG_CONFIG_PATH to
    be passed down during configure.  After that, it's captured in
    gdb/config.status, so even if a "make" causes a re-configure later
    (because gdb/configure has changed, for example), the PKG_CONFIG_PATH
    value will be remembered.
    
    ChangeLog:
    
            * configure.ac: Add AC_SUBST(PKG_CONFIG_PATH).
            * configure: Re-generate.
            * Makefile.tpl (HOST_EXPORTS): Pass PKG_CONFIG_PATH.
            (PKG_CONFIG_PATH): New.
            * Makefile.in: Re-generate.
    
    Change-Id: I91138dfca41c43b05e53e445f62e4b27882536bf

Diff:
---
 ChangeLog    | 8 ++++++++
 Makefile.in  | 3 +++
 Makefile.tpl | 3 +++
 configure    | 2 ++
 configure.ac | 1 +
 5 files changed, 17 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index dfe468c0af4..205d1cf7ef1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2022-04-08  Simon Marchi  <simon.marchi@efficios.com>
+
+	* configure.ac: Add AC_SUBST(PKG_CONFIG_PATH).
+	* configure: Re-generate.
+	* Makefile.tpl (HOST_EXPORTS): Pass PKG_CONFIG_PATH.
+	(PKG_CONFIG_PATH): New.
+	* Makefile.in: Re-generate.
+
 2022-03-15  Jose E. Marchesi  <jose.marchesi@oracle.com>
 
 	* gprofng/src/gp-collect-app.cc (collect::check_args): Use
diff --git a/Makefile.in b/Makefile.in
index 3aacd2daac9..cb39e4790d6 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -218,6 +218,7 @@ HOST_EXPORTS = \
 	OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
 	OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
 	OTOOL="$(OTOOL)"; export OTOOL; \
+	PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)"; export PKG_CONFIG_PATH; \
 	READELF="$(READELF)"; export READELF; \
 	AR_FOR_TARGET="$(AR_FOR_TARGET)"; export AR_FOR_TARGET; \
 	AS_FOR_TARGET="$(AS_FOR_TARGET)"; export AS_FOR_TARGET; \
@@ -444,6 +445,8 @@ LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
 GOCFLAGS = $(CFLAGS)
 GDCFLAGS = $(CFLAGS)
 
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+
 # Pass additional PGO and LTO compiler options to the PGO build.
 BUILD_CFLAGS = $(PGO_BUILD_CFLAGS) $(PGO_BUILD_LTO_CFLAGS)
 override CFLAGS += $(BUILD_CFLAGS)
diff --git a/Makefile.tpl b/Makefile.tpl
index 9df77788345..88db8f44d53 100644
--- a/Makefile.tpl
+++ b/Makefile.tpl
@@ -221,6 +221,7 @@ HOST_EXPORTS = \
 	OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
 	OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
 	OTOOL="$(OTOOL)"; export OTOOL; \
+	PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)"; export PKG_CONFIG_PATH; \
 	READELF="$(READELF)"; export READELF; \
 	AR_FOR_TARGET="$(AR_FOR_TARGET)"; export AR_FOR_TARGET; \
 	AS_FOR_TARGET="$(AS_FOR_TARGET)"; export AS_FOR_TARGET; \
@@ -447,6 +448,8 @@ LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
 GOCFLAGS = $(CFLAGS)
 GDCFLAGS = $(CFLAGS)
 
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+
 # Pass additional PGO and LTO compiler options to the PGO build.
 BUILD_CFLAGS = $(PGO_BUILD_CFLAGS) $(PGO_BUILD_LTO_CFLAGS)
 override CFLAGS += $(BUILD_CFLAGS)
diff --git a/configure b/configure
index 26935ebda24..1badcb314f8 100755
--- a/configure
+++ b/configure
@@ -618,6 +618,7 @@ CXX_FOR_TARGET
 CC_FOR_TARGET
 RANLIB_PLUGIN_OPTION
 AR_PLUGIN_OPTION
+PKG_CONFIG_PATH
 READELF
 OBJDUMP
 OBJCOPY
@@ -10310,6 +10311,7 @@ fi
 
 
 
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
 $as_echo_n "checking for -plugin option... " >&6; }
 
diff --git a/configure.ac b/configure.ac
index da4e41d7247..5b6e2048514 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3465,6 +3465,7 @@ AC_SUBST(CC)
 AC_SUBST(CXX)
 AC_SUBST(CFLAGS)
 AC_SUBST(CXXFLAGS)
+AC_SUBST(PKG_CONFIG_PATH)
 
 GCC_PLUGIN_OPTION(PLUGIN_OPTION)
 AR_PLUGIN_OPTION=


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-04-08 14:57 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-08 14:57 [binutils-gdb] Pass PKG_CONFIG_PATH down from top-level Makefile Simon Marchi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).