Hello, I’m building GCC from a release branch (13.2.0). For the majority of things I’m trying to compile, I want to produce static + lto’d binaries, linking the c++ lib in statically via the typical -static-libstdc++. So I initially configured gcc with —disable-shared and everything seemed to work just fine. There are a few things though that I need to build dynamically. In the past, I configured with —with-pic, but I wanted to avoid paying the PIC tax for my true static links. So I rebuilt gcc without —disable-shared. And again, everything works fine and now I can produce shared c++ libraries where I need. But I noticed that now the libstdc++ components objects are again getting built with -fPIC -DPIC as far as I can tell. Not surprising but disappointing. Which brings me to the question: is there a good way to produce the libstdc++.a and .so from separate compilations s.t. the objects in the archive don’t have -fPIC? Or, even better, produce both a libstdc++.a and a libstdc++_pic.a (assuming I can then link the latter via -nostdlib++ libstdc++_pic.a)? I tried to wrap my head around the build machinery, but couldn’t really make any progress. Relatedly, can libstdc++.a practically be built with (fat) LTO support for non-cross builds? Bug 59893 discusses some issues with Canadian crosses but nothing for native and the discussion is largely from a decade ago. Appreciate your time!