This is an archive of the discontinued LLVM Phabricator instance.

[libcxx] Fix check-cxx-abilist on OS X
ClosedPublic

Authored by EricWF on Apr 3 2017, 9:43 PM.

Details

Summary

Recent commits broke the check-cxx-abilist by changing the default OS X to use -rexport_library instead of -reexport_symbol_list. Apparently -reexport_library doesn't export the symbols into libc++.dylibs symbol table, whereas -reexport_symbol_list does.

This means the change removed ~500 symbols from the symbol table. I've been told this change is non ABI breaking, but it does make it harder to maintain the ABI lists, and hence the ABI.

This patch fixes the issue by switching back to -reexport_symbol_list. It still avoid the issues fixed in r299052 by putting the new/delete symbols in a different symbol list file, which is only exported when LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS in OFF.

Diff Detail

Event Timeline

EricWF created this revision.Apr 3 2017, 9:43 PM
EricWF updated this revision to Diff 94000.Apr 3 2017, 9:57 PM
  • Remove silly changes to libc++abi2.exp
smeenai accepted this revision.Apr 3 2017, 10:17 PM

Makes sense to me. Some questions inline, but they may not necessitate changes, so I'm accepting.

lib/CMakeLists.txt
166

Do you need to repeat the libc++abi.dylib path? Would it be more appropriate to append this to OSX_RE_EXPORT_LINE?

This revision is now accepted and ready to land.Apr 3 2017, 10:17 PM
EricWF closed this revision.Apr 14 2017, 10:54 PM