HomePhabricator

[clang][ifs] Clang Interface Stubs ToolChain plumbing.

Authored by plotfi on Oct 2 2019, 3:50 PM.

Description

[clang][ifs] Clang Interface Stubs ToolChain plumbing.

This patch enables end to end support for generating ELF interface stubs
directly from clang. Now the following:

clang -emit-interface-stubs -o libfoo.so a.cpp b.cpp c.cpp

will product an ELF binary with visible symbols populated. Visibility attributes
and -fvisibility can be used to control what gets populated.

  • Adding ToolChain support for clang Driver IFS Merge Phase
  • Implementing a default InterfaceStubs Merge clang Tool, used by ToolChain
  • Adds support for the clang Driver to involve llvm-ifs on ifs files.
  • Adds -emit-merged-ifs flag, to tell llvm-ifs to emit a merged ifs text file instead of the final object format (normally ELF)

Differential Revision: https://reviews.llvm.org/D63978

llvm-svn: 373538

Details

Committed
plotfiOct 2 2019, 3:50 PM
Differential Revision
D63978: Clang Interface Stubs merger plumbing for Driver
Parents
rG6b45029676e5: [InstCombine] Transform bcopy to memmove
Branches
Unknown
Tags
Unknown