[PATCH] D60974: Clang IFSO driver action.
Saleem Abdulrasool via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Apr 22 19:34:14 PDT 2019
compnerd added a comment.
I'm well versed in the complexities of a linker - I've worked extensively on the GNU linkers as well as with lld. The visibility of the symbols is actually computed by the compiler - the STV_* flags associated with the symtab entry give you that information which is actually tracked through the frontend to the backend. Yes, each linker behaves differently - including lld which completely changes the semantics of Unix/ELF linking guarantees. In fact every single attribute that you mentioned is something which is emitted from the compiler - which we have access to here given that we are in clang itself. I think that this can be made to work properly, though will probably require some iteration to get all the corner cases, and that you may be slightly dismissive of this approach.
Ah, okay, I didn't pick up that you were using module as the actual module from the context since normally the module doesn't control what it exposes itself.
Note that I am not advocating that this change go in as is - I think that this is far from something which would be useful, and until it can produce something meaningful, this shouldn't really be merged (i.e. generate something which obj2yaml or some other tool can consume to generate the barest ELF stub).
CHANGES SINCE LAST ACTION
More information about the cfe-commits