The existing nm extractors can't dump the loader symbol table information we need to do the ABI checks for XCOFF, so provide an implementation using the system dump utility. We match the symbol name, whether it's defined, it's import/export status, and its storage mapping class.
Details
- Reviewers
daltenty ldionne - Group Reviewers
Restricted Project - Commits
- rG3af7aa520271: [libcxx][AIX] Enable ABI list checking for XCOFF
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
It's something unique to AIX that we add shared objects to archives for our usual shared library implementation. I'm guessing with this implementation of the patch, we'll end up dumping all symbols together regardless of what archive member they belong to?
(Perhaps that's an acceptable limitation for the moment, since in the libc++ build we will only typically have the one shared object)
Yes, it dumps all symbols regardless of the archive member it's from. I could update the patch to address this if it's necessary.
libcxx/utils/libcxx/sym_check/extract.py | ||
---|---|---|
284 | Thanks for the review. I believe 'a' in ext is the way to simplify because os.path.splitext() returns a tuple of size 2. |
libcxx/utils/libcxx/sym_check/extract.py | ||
---|---|---|
284 | My mistake, you're right. ext is one element. |
@ldionne It's worth noting what's in this patch right now won't be our final ABI lists unfortunately. Our build compiler currently doesn't implement visibility support, so _LIBCPP_HIDE_FROM_ABI and friends don't have the intended effect. We're actively working on visibility for LLVM 15, but until that is all in we won't have a build compiler that can generate a stable ABI.
What's your preference for how we should handle this? If you're ok with a bit of churn in the lists till we stabilize I think this can land as is. If not we could potentially use a development clang for the CI with ABI checks on (once that's available).
Sorry, I missed that. But yes, I think it's OK to adjust the ABI lists afterwards. Let's land this.
If we could get D127470 landed first, then we won't have to adjust the ABI list after.
Isn't that equivalent but simpler?