[Bug 294109] aarch64 example: /usr/local/lib/gcc15/libgcc_s.so.1 vs. lib/libgcc_s.so.1 symbols

From: <bugzilla-noreply_at_freebsd.org>
Date: Sun, 29 Mar 2026 03:41:51 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294109

--- Comment #1 from Mark Millard <marklmi26-fbsd@yahoo.com> ---
(In reply to Mark Millard from comment #0)

Example of a trivial c++ program that fails to
run because of what is not found in FreeBSD's
libgcc_s.so.1 :

# cat trivial.cpp
// aarch64 g++15 example that shows lack of symbols for the
// /usr/local/lib/gcc15/libstdc++.so.6 build involved :
//
// # g++15 -o trivial trivial.cpp
// # ./trivial
//
// This ends up using FreeBSD's libgcc_s.so.1 but that fails.

int main() {
}

# g++15 -o trivial trivial.cpp

# ldd -a trivial
trivial:
        libstdc++.so.6 => /usr/local/lib/gcc15/libstdc++.so.6 (0x799b30000000)
        libm.so.5 => /lib/libm.so.5 (0x799b33ef0000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x799b314a6000)
        libc.so.7 => /lib/libc.so.7 (0x799b31e00000)
/usr/local/lib/gcc15/libstdc++.so.6:
        libm.so.5 => /lib/libm.so.5 (0x799b33ef0000)
        libc.so.7 => /lib/libc.so.7 (0x799b31e00000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x799b314a6000)
/lib/libm.so.5:
        libc.so.7 => /lib/libc.so.7 (0x799b31e00000)
/lib/libgcc_s.so.1:
        libc.so.7 => /lib/libc.so.7 (0x799b31e00000)
/lib/libc.so.7:
        libsys.so.7 => /lib/libsys.so.7 (0x799b3b280000)

# ./trivial
ld-elf.so.1: /lib/libgcc_s.so.1: version GCC_4.5.0 required by
/usr/local/lib/gcc15/libstdc++.so.6 not found


It takes use of the likes of -Wl,-rpath=/usr/local/lib/gcc15/
use to allow this trivial program to be built such that it
will actually run to completion:

# g++15 -o trivial -Wl,-rpath=/usr/local/lib/gcc15/ trivial.cpp

# ldd -a trivial
trivial:
        libstdc++.so.6 => /usr/local/lib/gcc15//libstdc++.so.6 (0x481146400000)
        libm.so.5 => /lib/libm.so.5 (0x481152950000)
        libgcc_s.so.1 => /usr/local/lib/gcc15//libgcc_s.so.1 (0x48115caf0000)
        libc.so.7 => /lib/libc.so.7 (0x481144800000)
/usr/local/lib/gcc15//libstdc++.so.6:
        libm.so.5 => /lib/libm.so.5 (0x481152950000)
        libc.so.7 => /lib/libc.so.7 (0x481144800000)
        libgcc_s.so.1 => /usr/local/lib/gcc15//libgcc_s.so.1 (0x48115caf0000)
/lib/libm.so.5:
        libc.so.7 => /lib/libc.so.7 (0x481144800000)
/usr/local/lib/gcc15//libgcc_s.so.1:
        libc.so.7 => /lib/libc.so.7 (0x481144800000)
/lib/libc.so.7:
        libsys.so.7 => /lib/libsys.so.7 (0x481162c30000)

# ./trivial
#

-- 
You are receiving this mail because:
You are the assignee for the bug.