On Wed, May 29, 2024 at 8:47 AM Sad Clouds via Gcc <gcc@gcc.gnu.org> wrote:
>
> Hello, I'm noticing some issues with libstdc++ after building GCC from
> sources and installing into /opt/gcc-14.1.0. Specifically:
>
> $ objdump -x /opt/gcc-14.1.0/lib/libstdc++.so.6 | grep RUNPATH
>
> $ ldd /opt/gcc-14.1.0/lib/libstdc++.so.6
> /opt/gcc-14.1.0/lib/libstdc++.so.6:
>         libm.so.5 => /lib/libm.so.5 (0x5486f1dc8000)
>         libc.so.7 => /lib/libc.so.7 (0x5486f07e5000)
>         libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x5486f1ff0000)
>
> As you can see libstdc++ depends on libgcc_s but libstdc++ is missing
> RUNPATH, so it picks up whatever is found in /lib rather than in target
> install directory /opt/gcc-14.1.0
>
> Contrast this with:
>
> $ objdump -x /opt/gcc-14.1.0/lib/libcc1.so.0 | grep RUNPATH
>   RUNPATH      /opt/gcc-14.1.0/lib
>
> $ ldd /opt/gcc-14.1.0/lib/libcc1.so.0
> /opt/gcc-14.1.0/lib/libcc1.so.0:
>         libstdc++.so.6 => /opt/gcc-14.1.0/lib/libstdc++.so.6 (0x59c328800000)
>         libm.so.5 => /lib/libm.so.5 (0x59c325081000)
>         libc.so.7 => /lib/libc.so.7 (0x59c3245c4000)
>         libgcc_s.so.1 => /opt/gcc-14.1.0/lib/libgcc_s.so.1 (0x59c326ac0000)
>
> Is it intentional or is it a bug? What is the best way to add RUNPATH
> to libstd++? Do I modify CFLAGS_FOR_TARGET or LDFLAGS_FOR_TARGET?

If you build an executable to pick up libstdc++ via a RUNPATH that apps RUNPATH
should apply to libgcc as well.  If you use LD_LIBRARY_PATH the story
is the same.

So what's your actual failure mode?

> PS. GCC was configured with these options:
>
> $ /opt/gcc-14.1.0/bin/gcc -v
> Using built-in specs.
> COLLECT_GCC=/opt/gcc-14.1.0/bin/gcc
> COLLECT_LTO_WRAPPER=/opt/gcc-14.1.0/libexec/gcc/aarch64-unknown-freebsd14.0/14.1.0/lto-wrapper
> Target: aarch64-unknown-freebsd14.0
> Configured with: ../../src/gcc-14.1.0/configure --prefix=/opt/gcc-14.1.0 
> --build=aarch64-unknown-freebsd14.0 --host=aarch64-unknown-freebsd14.0 
> --target=aarch64-unknown-freebsd14.0 --enable-languages=c,c++,ada 
> --enable-shared --enable-threads=posix --enable-bootstrap --disable-multilib 
> --disable-nls --with-as=/opt/gcc-14.1.0/bin/as 
> --with-ld=/opt/gcc-14.1.0/bin/ld
> Thread model: posix
> Supported LTO compression algorithms: zlib
> gcc version 14.1.0 (GCC)

Reply via email to