On Thu, Dec 22, 2016 at 5:09 PM, H. William Welliver III <[email protected]> wrote: > I tracked down a problem compiling a c++ module on OS X 10.12. Everything > compiles properly but I get lots of symbol not found errors during linking. > It seems that the mangled symbol names being generated for the module were a > lot shorter than the ones in the library. For example: > > __ZN6Xapian11QueryParser11parse_queryERKSsjS2_ > > versus: > > __ZN6Xapian11QueryParser11parse_queryERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEjS9_ > > After a good bit of messing around (I assumed it was due to some command line > option passed to clang/ld) I discovered that there’s a line in smartlink that > sets: > > MACOSX_DEPLOYMENT_TARGET=10.3 > > And this setting alters a number of behaviors in the compiler/linker > including the style of name mangling used. > > It looks like the minimum version required for modern libraries to work is > 10.9. > > Is there any chance we can bring that forward? Perhaps 10.9 for versions 10.9 > and up, and whatever previous version makes most sense... I still compile for > 10.6 as a courtesy for some folks but don’t know anyone running anything > earlier. > > Any thoughts?
I don't mind dropping backwards compatibility. The build machine is an old Mac Mini with 10.11.4, so 10.9 sounds OK. If someone needs to run anything earlier I can compiling two versions for the releases too as long as it's easily configurable. Regards, -- Peter Bortas
