123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496 |
- //===- Options.td ---------------------------------------------------------===//
- //
- // The MCLinker Project
- //
- // This file is distributed under the University of Illinois Open Source
- // License. See LICENSE.TXT for details.
- //
- //===----------------------------------------------------------------------===//
- include "llvm/Option/OptParser.td"
- //===----------------------------------------------------------------------===//
- // Dynamic
- //===----------------------------------------------------------------------===//
- def DynamicGroup : OptionGroup<"dynamic">,
- HelpText<"DYNAMIC OPTIONS">;
- def Entry : Joined<["--"], "entry=">,
- Group<DynamicGroup>,
- HelpText<"Use the explicit symbol as the entrance of your program">;
- def EntryAlias : Separate<["-"], "e">,
- Alias<Entry>;
- def Bsymbolic : Flag<["-"], "Bsymbolic">,
- Group<DynamicGroup>,
- HelpText<"Bind references within the shared library">;
- def Bgroup : Flag<["-"], "Bgroup">,
- Group<DynamicGroup>,
- HelpText<"Info the dynamic linker to lookup only inside the group">;
- def SOName : Joined<["-"], "soname=">,
- Group<DynamicGroup>,
- HelpText<"Set internal name of shared library">;
- def SONameAlias : Separate<["-"], "soname">,
- Group<DynamicGroup>,
- Alias<SOName>;
- def NoUndef : Flag<["--"], "no-undefined">,
- Group<DynamicGroup>,
- HelpText<"Do not allow unresolved references">;
- def AllowMulDefs : Flag<["--"], "allow-multiple-definition">,
- Group<DynamicGroup>,
- HelpText<"Allow multiple definitions">;
- def Z : Separate<["-"], "z">,
- Group<DynamicGroup>,
- HelpText<"Extensions for GNU ld compatibility">;
- def Dyld : Joined<["--"], "dynamic-linker=">,
- Group<DynamicGroup>,
- HelpText<"Set the name of the dynamic linker">;
- def DyldAlias : Separate<["-"], "dynamic-linker">,
- Group<DynamicGroup>,
- Alias<Dyld>;
- def EnableNewDTags : Flag<["--"], "enable-new-dtags">,
- Group<DynamicGroup>,
- HelpText<"Enable use of DT_RUNPATH and DT_FLAGS">;
- def SpareDTags: Separate<["--"], "spare-dynamic-tags">,
- Group<DynamicGroup>,
- HelpText<"Set the number of spare dyanmic tags (DT_NULL)">;
- //===----------------------------------------------------------------------===//
- // Optimization
- //===----------------------------------------------------------------------===//
- def OptimizationGroup : OptionGroup<"optimization">,
- HelpText<"OPTIMIZATION OPTIONS">;
- def GCSections : Flag<["--"], "gc-sections">,
- Group<OptimizationGroup>,
- HelpText<"Enable garbage collection of unused input sections">;
- def NoGCSections : Flag<["--"], "no-gc-sections">,
- Group<OptimizationGroup>,
- HelpText<"Disable garbage collection of unused input sections">;
- def PrintGCSections : Flag<["--"], "print-gc-sections">,
- Group<OptimizationGroup>,
- HelpText<"List all sections removed by garbage collection">;
- def NoPrintGCSections : Flag<["--"], "no-print-gc-sections">,
- Group<OptimizationGroup>,
- HelpText<"Do not list sections removed by garbage collection">;
- def LDGeneratedUnwindInfo : Flag<["--"], "ld-generated-unwind-info">,
- Group<OptimizationGroup>,
- HelpText<"Request creation of unwind info for linker generated code sections like PLT">;
- def NoLDGeneratedUnwindInfo : Flag<["--"], "no-ld-generated-unwind-info">,
- Group<OptimizationGroup>,
- HelpText<"Don't create unwind info for linker generated sections to save size">;
- def ICF : Joined<["--"], "icf=">,
- Group<OptimizationGroup>,
- HelpText<"Identical Code Folding">;
- def ICFIters : Separate<["--"], "icf-iterations">,
- Group<OptimizationGroup>,
- HelpText<"Set number of iterations to do ICF">;
- def PrintICFSections : Flag<["--"], "print-icf-sections">,
- Group<OptimizationGroup>,
- HelpText<"List all sections folded by ICF">;
- def NoPrintICFSections : Flag<["--"], "no-print-icf-sections">,
- Group<OptimizationGroup>,
- HelpText<"Do not list sections folded by ICF">;
- //===----------------------------------------------------------------------===//
- // Output
- //===----------------------------------------------------------------------===//
- def OutputGroup : OptionGroup<"output">,
- HelpText<"OUTPUT OPTIONS">;
- def Output : Separate<["-"], "o">,
- Group<OutputGroup>,
- HelpText<"Output filename">;
- def OutputAlias : Joined<["--"], "output=">,
- Group<OutputGroup>,
- Alias<Output>;
- def OutputFormat: Joined<["--"], "oformat=">,
- Group<OutputGroup>,
- HelpText<"Output format">;
- def Shared : Flag<["-"], "shared">,
- Group<OutputGroup>,
- HelpText<"Create a shared library">;
- def Bshareable : Flag<["-"], "Bshareable">,
- Group<OutputGroup>,
- Alias<Shared>;
- def Bdynamic : Flag<["-"], "Bdynamic">,
- Group<OutputGroup>,
- HelpText<"Link against dynamic library">;
- def BdynamicAlias1 : Flag<["-"], "dy">,
- Group<OutputGroup>,
- Alias<Bdynamic>;
- def BdynamicAlias2 : Flag<["-"], "call_shared">,
- Group<OutputGroup>,
- Alias<Bdynamic>;
- def Bstatic : Flag<["-"], "Bstatic">,
- Group<OutputGroup>,
- HelpText<"Link against static library">;
- def BstaticAlias1 : Flag<["-"], "dn">,
- Group<OutputGroup>,
- Alias<Bstatic>;
- def BstaticAlias2 : Flag<["-"], "non_shared">,
- Group<OutputGroup>,
- Alias<Bstatic>;
- def BstaticAlias3 : Flag<["-"], "static">,
- Group<OutputGroup>,
- Alias<Bstatic>;
- def PIE : Flag<["-"], "pie">,
- Group<OutputGroup>,
- HelpText<"Emit a position-independent executable file">;
- def PICExec : Flag<["--"], "pic-executable">,
- Group<OutputGroup>,
- Alias<PIE>;
- def Relocatable : Flag<["--"], "relocatable">,
- Group<OutputGroup>,
- HelpText<"Generate relocatable output">;
- def RelocatableAlias : Flag<["-"], "r">,
- Group<OutputGroup>,
- Alias<Relocatable>;
- def InputFormat : Joined<["--"], "format=">,
- Group<OutputGroup>,
- HelpText<"Specify the binary format for input object files that follow this option on the command line">;
- def InputFormatAlias : Separate<["-"], "b">,
- Group<OutputGroup>,
- Alias<InputFormat>;
- def StripDebug : Flag<["--"], "strip-debug">,
- Group<OutputGroup>,
- HelpText<"Omit debugger symbol information from the output file">;
- def StripDebugAlias : Flag<["-"], "S">,
- Group<OutputGroup>,
- Alias<StripDebug>;
- def StripAll : Flag<["--"], "strip-all">,
- Group<OutputGroup>,
- HelpText<"Omit all symbol information from the output file">;
- def StripAllAlias : Flag<["-"], "s">,
- Group<OutputGroup>,
- Alias<StripAll>;
- def DiscardLocals : Flag<["--"], "discard-debug">,
- Group<OutputGroup>,
- HelpText<"Discard all temporary local symbols">;
- def DiscardLocalsAlias : Flag<["-"], "X">,
- Group<OutputGroup>,
- Alias<DiscardLocals>;
- def DiscardAll : Flag<["--"], "discard-all">,
- Group<OutputGroup>,
- HelpText<"Discard all local symbols">;
- def DiscardAllAlias : Flag<["-"], "x">,
- Group<OutputGroup>,
- Alias<DiscardAll>;
- def EHFrameHdr : Flag<["--"], "eh-frame-hdr">,
- Group<OutputGroup>,
- HelpText<"Request creation of .eh_frame_hdr section and PT_GNU_EH_FRAME segment">;
- def NMagic : Flag<["--"], "nmagic">,
- Group<OutputGroup>,
- HelpText<"Do not page align data">;
- def NMagicAlias : Flag<["-"], "n">,
- Group<OutputGroup>,
- Alias<NMagic>;
- def OMagic : Flag<["--"], "omagic">,
- Group<OutputGroup>,
- HelpText<"Do not page align data, do not make text readonly">;
- def OMagicAlias : Flag<["-"], "N">,
- Group<OutputGroup>,
- Alias<OMagic>;
- def HashStyle : Joined<["--"], "hash-style=">,
- Group<OutputGroup>,
- HelpText<"Set the type of linker's hash table(s)">;
- def ExportDynamic : Flag<["--"], "export-dynamic">,
- Group<OutputGroup>,
- HelpText<"Export all dynamic symbols">;
- def ExportDynamicAlias : Flag<["-"], "E">,
- Group<OutputGroup>,
- Alias<ExportDynamic>;
- def NoExportDynamic : Flag<["--"], "no-export-dynamic">,
- Group<OutputGroup>,
- HelpText<"Not export all dynamic symbols">;
- def NoWarnMismatch : Flag<["--"], "no-warn-mismatch">,
- Group<OutputGroup>,
- HelpText<"Allow linking together mismatched input files">;
- def ExcludeLibs : Separate<["--"], "exclude-libs">,
- Group<OutputGroup>,
- HelpText<"Allow linking together mismatched input files">;
- //===----------------------------------------------------------------------===//
- // Positional
- //===----------------------------------------------------------------------===//
- def PositionalGroup : OptionGroup<"positional">,
- HelpText<"POSITIONAL OPTIONS">;
- def Script : Joined<["--"], "script=">,
- Group<PositionalGroup>,
- HelpText<"Use the given file as the linker script">;
- def ScriptAlias : Separate<["-"], "T">,
- Group<PositionalGroup>,
- Alias<Script>;
- def Namespec : Joined<["--"], "library=">,
- Group<PositionalGroup>,
- HelpText<"Add the archive or object file specified by namespec to the list of files to link">;
- def NamespecAlias : Joined<["-"], "l">,
- Group<PositionalGroup>,
- Alias<Namespec>;
- def WholeArchive : Flag<["--"], "whole-archive">,
- Group<PositionalGroup>,
- HelpText<"Include every object file in the archive in the link">;
- def NoWholeArchive : Flag<["--"], "no-whole-archive">,
- Group<PositionalGroup>,
- HelpText<"Turn off the effect of the --whole-archive option">;
- def AsNeeded : Flag<["--"], "as-needed">,
- Group<PositionalGroup>,
- HelpText<"Add the dynamic libraries mentioned to DT_NEEDED where there is "
- "a non-weak undefined symbol reference from">;
- def NoAsNeeded : Flag<["--"], "no-as-needed">,
- Group<PositionalGroup>,
- HelpText<"Turn off the effect of the --as-needed">;
- def AddNeeded : Flag<["--"], "add-needed">,
- Group<PositionalGroup>,
- HelpText<"Deprecated">;
- def NoAddNeeded : Flag<["--"], "no-add-needed">,
- Group<PositionalGroup>,
- HelpText<"Deprecated">;
- def CopyDTNeeded : Flag<["--"], "copy-dt-needed-entries">,
- Group<PositionalGroup>,
- HelpText<"Add the dynamic libraries mentioned to DT_NEEDED">;
- def NoCopyDTNeeded : Flag<["--"], "no-copy-dt-needed-entries">,
- Group<PositionalGroup>,
- HelpText<"Turn off the effect of the --copy-dt-needed-entries">;
- def StartGroup : Flag<["--"], "start-group">,
- Group<PositionalGroup>,
- HelpText<"Start to record a group of archives">;
- def StartGroupAlias : Flag<["-"], "(">,
- Group<PositionalGroup>,
- Alias<StartGroup>;
- def EndGroup : Flag<["--"], "end-group">,
- Group<PositionalGroup>,
- HelpText<"Stop recording a group of archives">;
- def EndGroupAlias : Flag<["-"], ")">,
- Group<PositionalGroup>,
- Alias<EndGroup>;
- //===----------------------------------------------------------------------===//
- // Preference
- //===----------------------------------------------------------------------===//
- def PreferenceGroup : OptionGroup<"preference">,
- HelpText<"PREFERENCE OPTIONS">;
- def Color : Joined<["--"], "color=">,
- Group<PreferenceGroup>,
- HelpText<"Surround the result strings with the marker">;
- def Trace : Flag<["--"], "trace">,
- Group<PreferenceGroup>,
- HelpText<"Print the names of the input files as ld processes them">;
- def TraceAlias : Flag<["-"], "t">,
- Group<PreferenceGroup>,
- Alias<Trace>;
- def Help : Flag<["-", "--"], "help">,
- Group<PreferenceGroup>,
- HelpText<"Display available options (to standard output)">;
- def HelpAlias : Flag<["-"], "h">,
- Group<PreferenceGroup>,
- Alias<Help>;
- def Verbose : Joined<["--"], "verbose=">,
- Group<PreferenceGroup>,
- HelpText<"Set linker diagnostic output level">;
- def Version : Flag<["--"], "version">,
- Group<PreferenceGroup>,
- HelpText<"Display MCLinker version">;
- def VersionAlias1 : Flag<["-"], "v">,
- Group<PreferenceGroup>,
- Alias<Version>;
- def VersionAlias2 : Flag<["-"], "V">,
- Group<PreferenceGroup>,
- Alias<Version>;
- def ErrorLimit : Joined<["--"], "error-limit=">,
- Group<PreferenceGroup>,
- HelpText<"Set the maximum limit of errors">;
- def WarningLimit : Joined<["--"], "warning-limit=">,
- Group<PreferenceGroup>,
- HelpText<"Set the maximum limit of warnings">;
- def FatalWarnings : Flag<["--"], "fatal-warnings">,
- Group<PreferenceGroup>,
- HelpText<"Turn all warnings into errors">;
- def NoFatalWarnings : Flag<["--"], "no-fatal-warnings">,
- Group<PreferenceGroup>,
- HelpText<"Do not turn all warnings into errors">;
- def WarnSharedTextrel : Flag<["--"], "warn-shared-textrel">,
- Group<PreferenceGroup>,
- HelpText<"Warn if there is a text relocation in the output shared object">;
- //===----------------------------------------------------------------------===//
- // Script
- //===----------------------------------------------------------------------===//
- def ScriptGroup : OptionGroup<"script">,
- HelpText<"SCRIPT OPTIONS">;
- def DefSym : Joined<["--"], "defsym=">,
- Group<ScriptGroup>,
- HelpText<"Define a symbol">;
- def Wrap : Joined<["--"], "wrap=">,
- Group<ScriptGroup>,
- HelpText<"Use a wrap function for the symbol">;
- def Portable : Joined<["--"], "portable=">,
- Group<ScriptGroup>,
- HelpText<"Use a portable function for the symbol">;
- def SectionStart : Joined<["--"], "section-start=">,
- Group<ScriptGroup>,
- HelpText<"Locate a output section at the given absolute address">;
- def Tbss : Joined<["-"], "Tbss=">,
- Group<ScriptGroup>,
- HelpText<"Set the address of the bss segment">;
- def Tdata : Joined<["-"], "Tdata=">,
- Group<ScriptGroup>,
- HelpText<"Set the address of the data segment">;
- def Ttext : Joined<["-"], "Ttext=">,
- Group<ScriptGroup>,
- HelpText<"Set the address of the text segment">;
- //===----------------------------------------------------------------------===//
- // Search Path
- //===----------------------------------------------------------------------===//
- def SearchpathGroup : OptionGroup<"searchpath">,
- HelpText<"SEARCHPATH OPTIONS">;
- def Sysroot : Joined<["--"], "sysroot=">,
- Group<SearchpathGroup>,
- HelpText<"Use the given directory as the location of the sysroot">;
- def LibraryPath : Joined<["--"], "library-path=">,
- Group<SearchpathGroup>,
- HelpText<"Add the given directory to the list of search paths">;
- def LibraryPathAlias : Joined<["-"], "L">,
- Group<SearchpathGroup>,
- Alias<LibraryPath>;
- def NoStdlib : Flag<["-"], "nostdlib">,
- Group<SearchpathGroup>,
- HelpText<"Only search lib dirs explicitly specified on cmdline">;
- def RPath : Joined<["-"], "rpath=">,
- Group<SearchpathGroup>,
- HelpText<"Add a directory to the runtime library search path">;
- //===----------------------------------------------------------------------===//
- // Symbol
- //===----------------------------------------------------------------------===//
- def SymbolGroup : OptionGroup<"symbol">,
- HelpText<"SYMBOL OPTIONS">;
- def Undefined : Joined<["--"], "undefined=">,
- Group<SymbolGroup>,
- HelpText<"Force symbol to be undefined in the output file">;
- def UndefinedAlias : Separate<["-"], "u">,
- Group<SymbolGroup>,
- Alias<Undefined>;
- def DefineCommon : Flag<["-"], "d">,
- Group<SymbolGroup>,
- HelpText<"Define common symbol">;
- def DefineCommonAlias1 : Flag<["-"], "dc">,
- Group<SymbolGroup>,
- Alias<DefineCommon>;
- def DefineCommonAlias2 : Flag<["-"], "dp">,
- Group<SymbolGroup>,
- Alias<DefineCommon>;
- //===----------------------------------------------------------------------===//
- // Target
- //===----------------------------------------------------------------------===//
- def TargetGroup : OptionGroup<"target">,
- HelpText<"TARGET OPTIONS">;
- def GPSize : Joined<["--"], "gpsize=">,
- Group<TargetGroup>,
- HelpText<"Set the maximum size of objects to be optimized using GP">;
- def GPSizeAlias : Separate<["-"], "G">,
- Group<TargetGroup>,
- Alias<GPSize>;
- def Triple : Joined<["-"], "mtriple=">,
- Group<TargetGroup>,
- HelpText<"Override target triple for module">;
- def Arch : Joined<["-"], "march=">,
- Group<TargetGroup>,
- HelpText<"Architecture to generate code for">;
- def CPU : Joined<["-"], "mcpu=">,
- Group<TargetGroup>,
- HelpText<"Set a specific cpu type">;
- def Emulation : Separate<["-"], "m">,
- Group<TargetGroup>,
- HelpText<"Set GNU linker emulation">;
- def StubGroupSize : Joined<["--"], "stub-group-size=">,
- Group<TargetGroup>,
- HelpText<"Set the group size to place stubs between sections">;
- def FixCA53Erratum835769 : Flag<["--"], "fix-cortex-a53-835769">,
- Group<TargetGroup>,
- HelpText<"Enable fix for cortex a53 erratum 835769">;
- def FixCA53Erratum843419 : Flag<["--"], "fix-cortex-a53-843419">,
- Group<TargetGroup>,
- HelpText<"Enable fix for cortex a53 erratum 843419">;
|