[PATCH 1/4] Makeconfig: Add libgcc directory to rtld-prefix search path

Florian Weimer fweimer@redhat.com
Thu Jan 30 06:12:47 GMT 2025


* Adhemerval Zanella Netto:

> On 22/01/25 13:12, dilfridge@gentoo.org wrote:
>> From: Andreas K. Hüttel <dilfridge@gentoo.org>
>> 
>> Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
>> ---
>>  Makeconfig | 10 +++++++++-
>>  1 file changed, 9 insertions(+), 1 deletion(-)
>> 
>> diff --git a/Makeconfig b/Makeconfig
>> index d0108d2caa..6b4ebd1320 100644
>> --- a/Makeconfig
>> +++ b/Makeconfig
>> @@ -692,6 +692,11 @@ link-libc-static-tests = -Wl,--start-group $(common-objpfx)libc.a $(static-gnuli
>>  # some cases and it is preferable to link with libgcc_eh or libgcc_s
>>  # so that the testing is as similar as possible to how programs will
>>  # be built with the installed glibc.
>> +# This leads to moderate difficulties, also since distributions may
>> +# install libgcc_s.so in directories only found via ld.so.conf, e.g.
>> +# to be able to switch between gcc versions. We need to add the
>> +# corresponding directory to the library search path to make sure
>> +# our test programs can find it.

This also happens when configuring (accidentally or deliberately)
without --prefix=/usr, so we should really fix that case.

>>  # Some architectures have architecture-specific systems for exception
>>  # handling that may involve undefined references to
>> @@ -709,6 +714,7 @@ libgcc_eh := -Wl,--as-needed -lgcc_s $(libunwind) -Wl,--no-as-needed
>>  gnulib-arch =
>>  gnulib = -lgcc $(gnulib-arch)
>>  gnulib-tests := -lgcc $(libgcc_eh)
>> +gnulib-extralibdir := $(shell $(CC) -print-libgcc-file-name | sed -e 's:/libgcc.*$$::')
>
> From gcc documentation [1], -print-libgcc-file-name is the same as
> -print-file-name=libgcc.a which might be different than the place
> libgcc_s.so is installed.

Not only that.  On many architectures, libgcc_s.so is a linker script in
the same directory as libgcc.a.

If we want to automatically follow what ldconfig does, I think we should
teach ldconfig to print the information we need.  Then this gets solved
after a couple of releases.

Thanks,
Florian



More information about the Libc-alpha mailing list