[PATCH] D60974: Clang IFSO driver action.

Puyan Lotfi via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 1 15:21:02 PDT 2019


plotfi added a comment.

In D60974#1565544 <https://reviews.llvm.org/D60974#1565544>, @jfb wrote:

> In D60974#1565541 <https://reviews.llvm.org/D60974#1565541>, @plotfi wrote:
>
> > In D60974#1565527 <https://reviews.llvm.org/D60974#1565527>, @jfb wrote:
> >
> > > In D60974#1565517 <https://reviews.llvm.org/D60974#1565517>, @jfb wrote:
> > >
> > > > In D60974#1565054 <https://reviews.llvm.org/D60974#1565054>, @plotfi wrote:
> > > >
> > > > > So I think I know what may be going on on your end. The llvm-readelf in your path I believe might be the wrong lllvm-readelf (llvm-readelf-7). Are you sure you built llvm-readelf from git?
> > > >
> > > >
> > > > Please don't do this. Your commit is wrong, and the right action from you is to revert it or fix it. I've fixed it for you here: rL364855 <https://reviews.llvm.org/rL364855>
> > >
> > >
> > > I'm also really not sure this is any good: why does clang look at ELF? In general I'd expect you to test something *way* earlier than ELF. Are you sure you're testing the right thing?
> >
> >
> > Ah, I must have mistakenly thought that other tools were already using llvm-readelf in cfe. Sorry about this.
> >
> > This is in fact intended. The interface stubs feature needs to be verified against the actual symbols that are emitted into the elf binary. In the cases where I use llvm-readelf, I am using it to determine if the symbol is visible (to nm for example) but marked hidden in the .o file (but will end up being hidden in when linked).
> >
> > Currently clang -emit-interface-stubs is not using any elf libraries, but it needs to verify against llvm-nm and/or llvm-readelf in these lit tests to determine if the visibility of the symbols generated in the text stubs is correct.
>
>
> `llvm-nm` is already in the list of requirement for clang, so that would be fine to use. I'm not sure `llvm-readelf` is necessarily built for all targets, so my "fix" might still be broken. It's also another dependency, and a weird one at that. Can you test the property you're looking for in IR directly? And then test, in LLVM, that the same IR generates the ELF binary you want?


FWIW, It's possible that when I finish the merge job part of clang interface stubs I can remove this llvm-readelf test dependency because I can just check against llvm-nm that the merged text stub is correct.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D60974/new/

https://reviews.llvm.org/D60974





More information about the llvm-commits mailing list