Implements include/alternatename linker directive. Alternatename is used by static msvc runtime library. Alias symbol is technically incorrect (we have to search for external definition) but we don't have a way to represent this in jitlink/orc yet, this is solved in the following up patch. Inlcude linker directive is used in ucrt to forcelly lookup the static initializer symbols so that they will be emitted. It's implemented as extenral symbols with live flag on that cause the lookup of these symbols. Reviewed By: lhames Differential Revision: https://reviews.llvm.org/D130276
21 lines
651 B
TableGen
21 lines
651 B
TableGen
include "llvm/Option/OptParser.td"
|
|
|
|
// link.exe accepts options starting with either a dash or a slash.
|
|
|
|
// Flag that takes no arguments.
|
|
class F<string name> : Flag<["/", "-", "/?", "-?"], name>;
|
|
|
|
// Flag that takes one argument after ":".
|
|
class P<string name> :
|
|
Joined<["/", "-", "/?", "-?"], name#":">;
|
|
|
|
// Boolean flag which can be suffixed by ":no". Using it unsuffixed turns the
|
|
// flag on and using it suffixed by ":no" turns it off.
|
|
multiclass B_priv<string name> {
|
|
def "" : F<name>;
|
|
def _no : F<name#":no">;
|
|
}
|
|
|
|
def export : P<"export">;
|
|
def alternatename : P<"alternatename">;
|
|
def incl : Joined<["/", "-", "/?", "-?"], "include:">; |