Which OS are we talking about? Building against libstdc++ is broken for Intel and arm64, I believe, though it should be fixable. But the problem is not passing the flag, but broken Apple headers, it seems. I managed to build some ports like CMake and a few others against libstdc++ on Sonoma arm64, but kinda gave up, since too much stuff is broken, and there is no immediate advantage in the switch. I have this in macports.conf: `cxx_stdlib macports-libstdc++` (on Sonoma). However you may need to pass both cxxflags and ldflags manually.
On PowerPC it is the reverse: building against libstdc++ is the default and works fine, building against libc++ is very experimental and will likely need fixups. Also, it requires enabling stdlib_flag variant for gcc and making it use libcxx-powerpc port instead of clangs. P. S. There is a bug in gcc13 which prevents it working correctly with libc++ headers (regardless of the arch, I think), should be fixed in upstream but perhaps not in Macports, but gcc12 should be fine. > On Mar 13, 2024, at 3:32 AM, René J.V. Bertin <rjvber...@gmail.com> wrote: > > Hi, > > I've been tinkering a bit with a personal GCC12 build patched to use libc++ > by default, and now find myself unable to build against libstdc++. > > `configure.cxxflags-append -stdlib=libstdc++` appears to be filtered out > somewhere in the "base" bowels, and `configure.cxx_stdlib libstdc++` appears > not to have any effect either. I'm not seeing any warnings in the logfile, > which is surprising (and rather bad practise IMHO). > > What am I missing here, and what backdoor(s) could I use? I notice that > CXXFLAGS (aka Env(CXXFLAGS)) isn't yet set in `pre-configure`; I haven't yet > checked if "base" preserves its settings when initialising it (have been > assuming it won't). With autoconf-based projects one can set `configure.cxx > ${configure.cxx} -stdlib=libstdc++` but that doesn't fly for cmake-based > projects... > > Thanks, > R.