On 2023/09/30 10:00, Omar Polo wrote: > On 2023/09/18 13:07:23 +0100, Stuart Henderson <s...@spacehopper.org> wrote: > > On 2023/09/18 11:07, Omar Polo wrote: > > > it uses c++ to build a sub-library (basis-universal) and to link, I > > > guess that's why c++ ends up in the wantlibs but doesn't link to > > > c++abi nor pthread... Here's why i'm not using COMPILER_LIBCXX in > > > WANTLIBs. any clue? > > > > no idea about that. since it sets ONLY_FOR_ARCHS to a subset of > > base-clang archs anyway that won't cause a problem with WANTLIB, > > at least. > > I still can't wrap my head around this. > > At first I thought it was due to lto, newly introduced with this > release, but it isn't the case. > > The (only) executable is linked like this: (formatted for readability) > > c++ -o src/taisei [...many objects files...] \ > -flto \ > -Wl,--as-needed \ > -Wl,--allow-shlib-undefined -O2 -pipe -g \ > -Wl,--start-group \ [..]
hmm, perhaps the other libs are getting stripped by --as-needed? > % readelf -d $(make show=WRKBUILD)/src/taisei | grep NEEDED (this is the list of libraries that need to be in WANTLIB) > ...while ldd shows libpthread and c++abi too! picked up via inter-library dependencies. > looking at LD_DEBUG=1 ./taisei -h shows that libc++abi is loaded via: that basically provides the same information as ldd. > ONLY_FOR_ARCHS = amd64 aarch64 i386 .. > +WANTLIB += SDL2 c c++ crypto freetype m opusfile png shaderc_shared > +WANTLIB += spirv-cross-c-shared webpdecoder z zstd .. > +COMPILER = base-clang ports-gcc that WANTLIB will fail on systems that don't have base-clang, so it might make sense to remove ports-gcc from that list - or to list ${COMPILER_LIBCXX} anyway and ignore the "Extra" warning from check-lib-depends. although, ONLY_FOR_ARCHS only lists base-clang archs anyway, so in practical terms it won't be hit unless ONLY_FOR_ARCHS is changed.