]> granicus.if.org Git - clang/commit
[clang][ifs] New interface stubs format (llvm triple based).
authorPuyan Lotfi <puyan@puyan.org>
Thu, 22 Aug 2019 23:29:22 +0000 (23:29 +0000)
committerPuyan Lotfi <puyan@puyan.org>
Thu, 22 Aug 2019 23:29:22 +0000 (23:29 +0000)
commitf9ea87c3e3ab0d6772b1c16a0f5734dc29791724
tree98c515dfe7cd73d01817ca80b1becf4139339240
parent3d90e05c7752c154106656286bd021d5918490a4
[clang][ifs] New interface stubs format (llvm triple based).

After posting llvm-ifs on phabricator, I made some progress in hardening up how
I think the format for Interface Stubs should look. There are a number of
things I think the TBE format was missing (no endianness, no info about the
Object Format because it assumes ELF), so I have added those and broken off
from being as similar to the TBE schema. In a subsequent commit I can drop the
other formats.

An example of how The format will look is as follows:

--- !experimental-ifs-v1
IfsVersion: 1.0
Triple: x86_64-unknown-linux-gnu
ObjectFileFormat: ELF
Symbols:
  _Z9nothiddenv: { Type: Func }
  _Z10cmdVisiblev: { Type: Func }
...

The format is still marked experimental.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@369715 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Frontend/FrontendActions.h
include/clang/Frontend/FrontendOptions.h
lib/Driver/ToolChains/Clang.cpp
lib/Frontend/CompilerInvocation.cpp
lib/Frontend/InterfaceStubFunctionsConsumer.cpp
lib/FrontendTool/ExecuteCompilerInvocation.cpp