Message ID | 20220315212635.3732428-1-simon.marchi@polymtl.ca |
---|---|
State | New |
Headers | show |
Series | Pass PKG_CONFIG_PATH down from top-level Makefile | expand |
Ping! On 2022-03-15 17:26, Simon Marchi wrote: > From: Simon Marchi <simon.marchi@efficios.com> > > [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 > --- > Makefile.in | 3 +++ > Makefile.tpl | 3 +++ > configure | 2 ++ > configure.ac | 1 + > 4 files changed, 9 insertions(+) > > diff --git a/Makefile.in b/Makefile.in > index 3aacd2daac9c..cb39e4790d69 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 9df77788345a..88db8f44d53f 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 26935ebda249..1badcb314f8f 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 da4e41d72479..5b6e20485143 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= > > base-commit: 6aa03e9c1769c8d925f4d23d72af93483bfd31f3
Ping. On 2022-03-29 16:04, Simon Marchi wrote: > Ping! > > On 2022-03-15 17:26, Simon Marchi wrote: >> From: Simon Marchi <simon.marchi@efficios.com> >> >> [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 >> --- >> Makefile.in | 3 +++ >> Makefile.tpl | 3 +++ >> configure | 2 ++ >> configure.ac | 1 + >> 4 files changed, 9 insertions(+) >> >> diff --git a/Makefile.in b/Makefile.in >> index 3aacd2daac9c..cb39e4790d69 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 9df77788345a..88db8f44d53f 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 26935ebda249..1badcb314f8f 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 da4e41d72479..5b6e20485143 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= >> >> base-commit: 6aa03e9c1769c8d925f4d23d72af93483bfd31f3
Hi Simon,
> Ping.
Patch approved - please apply.
I appreciate that modifying these top level files is a bit nerve
wracking, but I think that you have done a good job in this case. :-)
Cheers
Nick
On 2022-04-08 10:32, Nick Clifton wrote: > Hi Simon, > >> Ping. > > Patch approved - please apply. > > I appreciate that modifying these top level files is a bit nerve > wracking, but I think that you have done a good job in this case. :-) > > Cheers > Nick > Thanks Nick, pushed. Simon
Hi gcc-patches, I had applied the patch below to binutils-gdb, but it recently got wiped out by a gcc -> binutils-gdb configure.ac sync. Would it be possible to apply it to the gcc repo so this doesn't happen again? Thanks, Simon On 2022-03-15 17:26, Simon Marchi via Gdb-patches wrote: > From: Simon Marchi <simon.marchi@efficios.com> > > [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 > --- > Makefile.in | 3 +++ > Makefile.tpl | 3 +++ > configure | 2 ++ > configure.ac | 1 + > 4 files changed, 9 insertions(+) > > diff --git a/Makefile.in b/Makefile.in > index 3aacd2daac9c..cb39e4790d69 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 9df77788345a..88db8f44d53f 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 26935ebda249..1badcb314f8f 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 da4e41d72479..5b6e20485143 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= > > base-commit: 6aa03e9c1769c8d925f4d23d72af93483bfd31f3
diff --git a/Makefile.in b/Makefile.in index 3aacd2daac9c..cb39e4790d69 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 9df77788345a..88db8f44d53f 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 26935ebda249..1badcb314f8f 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 da4e41d72479..5b6e20485143 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=
From: Simon Marchi <simon.marchi@efficios.com> [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 --- Makefile.in | 3 +++ Makefile.tpl | 3 +++ configure | 2 ++ configure.ac | 1 + 4 files changed, 9 insertions(+) base-commit: 6aa03e9c1769c8d925f4d23d72af93483bfd31f3