Date: Wed, 24 Jan 2024 20:24:13 +0000 From: John F Carr <jfc@mit.edu> To: freebsd-arm <freebsd-arm@freebsd.org> Subject: gcc and base system disagree on version of __unordtf2 in libgcc_s Message-ID: <EA358A94-5776-4F11-9A04-AD93710F606F@mit.edu>
next in thread | raw e-mail | index | archive | help
If I build a C++ program with g++ on 64 bit ARM and do not use -Wl,-rpath the resulting executable fails with ld-elf.so.1: /lib/libgcc_s.so.1: version GCC_4.5.0 required by /usr/local/l= ib/gcc11/libstdc++.so.6 not found The symbol exists but has the wrong version. FreeBSD's /lib/libgcc_s.so.1 defines __unordtf2 in version GCC_4.6.0. gcc's libgcc_s.so defines __unordtf2 in version GCC_4.5.0. Who is right? Can we make the gcc port and base system agree? Can we do it without breaking old executables? In the gcc source a comment in libgcc/config/i386/libgcc-bsd.ver reads: # 128 bit long double support was introduced with GCC 4.6.0 for FreeBSD. # These lines make the symbols to get a @@GCC_4.6.0. Reproduced with gcc11, gcc12, and gcc13-devel packages on FreeBSD 14 and 15= .
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?EA358A94-5776-4F11-9A04-AD93710F606F>