#include <stdio.h>
#include <sstream>
int
main(int ac, char **av)
{
std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> > x;
x << "How now brown cow";
return 0;
}
If I build this on macOS 12, and try to run the binary on macOS 11, it fails because that symbol is not present in /usr/lib/libc++.1.dylib
. If I compile it on macOS 11, and run on 11 or later, it works.
Is this correct behaviour? Since the dylib version didn't change, I would expect that to mean no ABI changes.
And solved -- it needs to have -target ${arch}-apple-${os}${version}
, eg x86_64-apple-macos11.5
. And yes, it was vcpkg doing this. I can fix it by editing the triplets file, or I might some day do up a better diff and see how that goes. Or we could just drop support of macOS 11. But options, yay!