* [PATCH] Pass PKG_CONFIG_PATH down from top-level Makefile
@ 2022-03-15 21:26 Simon Marchi
2022-03-29 20:04 ` Simon Marchi
2022-10-12 3:08 ` Simon Marchi
0 siblings, 2 replies; 6+ messages in thread
From: Simon Marchi @ 2022-03-15 21:26 UTC (permalink / raw)
To: binutils, gdb-patches, gcc-patches; +Cc: Simon Marchi
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
--
2.35.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Pass PKG_CONFIG_PATH down from top-level Makefile
2022-03-15 21:26 [PATCH] Pass PKG_CONFIG_PATH down from top-level Makefile Simon Marchi
@ 2022-03-29 20:04 ` Simon Marchi
2022-04-07 19:09 ` Simon Marchi
2022-10-12 3:08 ` Simon Marchi
1 sibling, 1 reply; 6+ messages in thread
From: Simon Marchi @ 2022-03-29 20:04 UTC (permalink / raw)
To: Simon Marchi, binutils, gdb-patches, gcc-patches
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Pass PKG_CONFIG_PATH down from top-level Makefile
2022-03-29 20:04 ` Simon Marchi
@ 2022-04-07 19:09 ` Simon Marchi
2022-04-08 14:32 ` Nick Clifton
0 siblings, 1 reply; 6+ messages in thread
From: Simon Marchi @ 2022-04-07 19:09 UTC (permalink / raw)
To: Simon Marchi, binutils, gdb-patches, gcc-patches
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Pass PKG_CONFIG_PATH down from top-level Makefile
2022-04-07 19:09 ` Simon Marchi
@ 2022-04-08 14:32 ` Nick Clifton
2022-04-08 14:57 ` Simon Marchi
0 siblings, 1 reply; 6+ messages in thread
From: Nick Clifton @ 2022-04-08 14:32 UTC (permalink / raw)
To: Simon Marchi, Simon Marchi, binutils, gdb-patches, gcc-patches
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Pass PKG_CONFIG_PATH down from top-level Makefile
2022-04-08 14:32 ` Nick Clifton
@ 2022-04-08 14:57 ` Simon Marchi
0 siblings, 0 replies; 6+ messages in thread
From: Simon Marchi @ 2022-04-08 14:57 UTC (permalink / raw)
To: Nick Clifton, Simon Marchi, binutils, gdb-patches, gcc-patches
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Pass PKG_CONFIG_PATH down from top-level Makefile
2022-03-15 21:26 [PATCH] Pass PKG_CONFIG_PATH down from top-level Makefile Simon Marchi
2022-03-29 20:04 ` Simon Marchi
@ 2022-10-12 3:08 ` Simon Marchi
1 sibling, 0 replies; 6+ messages in thread
From: Simon Marchi @ 2022-10-12 3:08 UTC (permalink / raw)
To: binutils, gdb-patches, gcc-patches
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
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-10-12 3:08 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-15 21:26 [PATCH] Pass PKG_CONFIG_PATH down from top-level Makefile Simon Marchi
2022-03-29 20:04 ` Simon Marchi
2022-04-07 19:09 ` Simon Marchi
2022-04-08 14:32 ` Nick Clifton
2022-04-08 14:57 ` Simon Marchi
2022-10-12 3:08 ` 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).