diff --git a/CMakeLists.txt b/CMakeLists.txt index fd39dd30da..95796385ca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -64,97 +64,118 @@ else() include_directories(${LLVM_INCLUDE_DIRS}) include_directories(${CLANG_INCLUDE_DIRS}) set(EMBEDDED_LLD_LIB_SOURCES - "${CMAKE_SOURCE_DIR}/deps/lld/lib/Driver/DarwinLdDriver.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/Config/Version.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/LayoutPass.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/ArchHandler.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/ObjCPass.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/CompactUnwindPass.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/TLVPass.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/GOTPass.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/ArchHandler_x86.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/ArchHandler_x86_64.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/ShimPass.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/WriterMachO.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/StubsPass.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/FileArchive.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/Core/TargetOptionsCommandFlags.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/Core/File.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/Core/Error.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/Core/SymbolTable.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/Core/Reader.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/Core/Reproduce.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/Core/Writer.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/Core/LinkingContext.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/lib/Core/Resolver.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/Common/Args.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/Common/ErrorHandler.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/Common/Memory.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/Common/Reproduce.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/Common/Strings.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/Common/TargetOptionsCommandFlags.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/Common/Threads.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/Common/Version.cpp" "${CMAKE_SOURCE_DIR}/deps/lld/lib/Core/DefinedAtom.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/Core/Error.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/Core/File.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/Core/LinkingContext.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/Core/Reader.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/Core/Resolver.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/Core/SymbolTable.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/Core/Writer.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/Driver/DarwinLdDriver.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/FileArchive.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/ArchHandler.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/ArchHandler_x86.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/ArchHandler_x86_64.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/CompactUnwindPass.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/GOTPass.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/LayoutPass.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/ObjCPass.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/ShimPass.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/StubsPass.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/TLVPass.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/MachO/WriterMachO.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp" ) set(EMBEDDED_LLD_ELF_SOURCES - "${CMAKE_SOURCE_DIR}/deps/lld/ELF/ScriptLexer.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/ELF/AArch64ErrataFix.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Arch/AArch64.cpp" "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Arch/AMDGPU.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Arch/PPC.cpp" "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Arch/ARM.cpp" "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Arch/AVR.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Arch/SPARCV9.cpp" "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Arch/Mips.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Arch/AArch64.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Arch/X86_64.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Arch/PPC64.cpp" "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Arch/MipsArchTree.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Arch/PPC.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Arch/PPC64.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Arch/SPARCV9.cpp" "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Arch/X86.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/ELF/GdbIndex.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Arch/X86_64.cpp" "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Driver.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Relocations.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Error.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/ELF/LTO.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Strings.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/ELF/ScriptParser.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/ELF/MarkLive.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/ELF/SyntheticSections.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/ELF/SymbolTable.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/ELF/LinkerScript.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/ELF/DriverUtils.cpp" "${CMAKE_SOURCE_DIR}/deps/lld/ELF/EhFrame.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Target.cpp" "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Filesystem.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/ELF/OutputSections.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Symbols.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/ELF/GdbIndex.cpp" "${CMAKE_SOURCE_DIR}/deps/lld/ELF/ICF.cpp" "${CMAKE_SOURCE_DIR}/deps/lld/ELF/InputFiles.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Thunks.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/ELF/DriverUtils.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Writer.cpp" "${CMAKE_SOURCE_DIR}/deps/lld/ELF/InputSection.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/ELF/LTO.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/ELF/LinkerScript.cpp" "${CMAKE_SOURCE_DIR}/deps/lld/ELF/MapFile.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/ELF/MarkLive.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/ELF/OutputSections.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Relocations.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/ELF/ScriptLexer.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/ELF/ScriptParser.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Strings.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/ELF/SymbolTable.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Symbols.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/ELF/SyntheticSections.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Target.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Thunks.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/ELF/Writer.cpp" ) + set(EMBEDDED_LLD_COFF_SOURCES + "${CMAKE_SOURCE_DIR}/deps/lld/COFF/Chunks.cpp" "${CMAKE_SOURCE_DIR}/deps/lld/COFF/DLL.cpp" "${CMAKE_SOURCE_DIR}/deps/lld/COFF/Driver.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/COFF/Chunks.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/COFF/PDB.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/COFF/Error.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/COFF/LTO.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/COFF/Strings.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/COFF/MarkLive.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/COFF/SymbolTable.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/COFF/Symbols.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/COFF/DriverUtils.cpp" "${CMAKE_SOURCE_DIR}/deps/lld/COFF/ICF.cpp" "${CMAKE_SOURCE_DIR}/deps/lld/COFF/InputFiles.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/COFF/DriverUtils.cpp" - "${CMAKE_SOURCE_DIR}/deps/lld/COFF/Writer.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/COFF/LTO.cpp" "${CMAKE_SOURCE_DIR}/deps/lld/COFF/MapFile.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/COFF/MarkLive.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/COFF/MinGW.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/COFF/PDB.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/COFF/Strings.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/COFF/SymbolTable.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/COFF/Symbols.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/COFF/Writer.cpp" + ) + set(EMBEDDED_LLD_MINGW_SOURCES + "${CMAKE_SOURCE_DIR}/deps/lld/MinGW/Driver.cpp" + ) + set(EMBEDDED_LLD_WASM_SOURCES + "${CMAKE_SOURCE_DIR}/deps/lld/wasm/Driver.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/wasm/InputFiles.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/wasm/InputSegment.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/wasm/OutputSections.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/wasm/Symbols.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/wasm/SymbolTable.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/wasm/Writer.cpp" + "${CMAKE_SOURCE_DIR}/deps/lld/wasm/WriterUtils.cpp" ) add_library(embedded_lld_lib ${EMBEDDED_LLD_LIB_SOURCES}) add_library(embedded_lld_elf ${EMBEDDED_LLD_ELF_SOURCES}) add_library(embedded_lld_coff ${EMBEDDED_LLD_COFF_SOURCES}) + add_library(embedded_lld_mingw ${EMBEDDED_LLD_MINGW_SOURCES}) + add_library(embedded_lld_wasm ${EMBEDDED_LLD_WASM_SOURCES}) if(MSVC) set(ZIG_LLD_COMPILE_FLAGS "-std=c++11 -D_CRT_SECURE_NO_WARNINGS /w") else() @@ -172,6 +193,14 @@ else() COMPILE_FLAGS ${ZIG_LLD_COMPILE_FLAGS} LINK_FLAGS " " ) + set_target_properties(embedded_lld_mingw PROPERTIES + COMPILE_FLAGS ${ZIG_LLD_COMPILE_FLAGS} + LINK_FLAGS " " + ) + set_target_properties(embedded_lld_wasm PROPERTIES + COMPILE_FLAGS ${ZIG_LLD_COMPILE_FLAGS} + LINK_FLAGS " " + ) target_include_directories(embedded_lld_lib PUBLIC "${CMAKE_SOURCE_DIR}/deps/lld/include" "${CMAKE_SOURCE_DIR}/deps/lld-prebuilt" @@ -188,13 +217,27 @@ else() "${CMAKE_SOURCE_DIR}/deps/lld-prebuilt/COFF" "${CMAKE_SOURCE_DIR}/deps/lld-prebuilt" ) + target_include_directories(embedded_lld_mingw PUBLIC + "${CMAKE_SOURCE_DIR}/deps/lld/MinGW" + "${CMAKE_SOURCE_DIR}/deps/lld/include" + "${CMAKE_SOURCE_DIR}/deps/lld-prebuilt/MinGW" + "${CMAKE_SOURCE_DIR}/deps/lld-prebuilt" + ) + target_include_directories(embedded_lld_wasm PUBLIC + "${CMAKE_SOURCE_DIR}/deps/lld/wasm" + "${CMAKE_SOURCE_DIR}/deps/lld/include" + "${CMAKE_SOURCE_DIR}/deps/lld-prebuilt/wasm" + "${CMAKE_SOURCE_DIR}/deps/lld-prebuilt" + ) set(LLD_INCLUDE_DIRS "") set(LLD_LIBRARIES embedded_lld_elf embedded_lld_coff + embedded_lld_mingw + embedded_lld_wasm embedded_lld_lib ) - install(TARGETS embedded_lld_elf embedded_lld_coff embedded_lld_lib DESTINATION "${ZIG_CPP_LIB_DIR}") + install(TARGETS embedded_lld_elf embedded_lld_coff embedded_lld_mingw embedded_lld_wasm embedded_lld_lib DESTINATION "${ZIG_CPP_LIB_DIR}") endif() # No patches have been applied to SoftFloat-3d diff --git a/deps/lld-prebuilt/COFF/Options.inc b/deps/lld-prebuilt/COFF/Options.inc index a2a0f3f892..b5414ffa0b 100644 --- a/deps/lld-prebuilt/COFF/Options.inc +++ b/deps/lld-prebuilt/COFF/Options.inc @@ -12,9 +12,10 @@ #ifdef PREFIX #define COMMA , PREFIX(prefix_0, {nullptr}) +PREFIX(prefix_3, {"--" COMMA nullptr}) PREFIX(prefix_2, {"/" COMMA "-" COMMA nullptr}) PREFIX(prefix_1, {"/" COMMA "-" COMMA "-?" COMMA nullptr}) -PREFIX(prefix_3, {"/?" COMMA "-?" COMMA nullptr}) +PREFIX(prefix_4, {"/?" COMMA "-?" COMMA nullptr}) #undef COMMA #endif // PREFIX @@ -30,19 +31,26 @@ OPTION(prefix_0, "", INPUT, Input, INVALID, INVALID, nullptr, 0, 0, nullp OPTION(prefix_0, "", UNKNOWN, Unknown, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "align:", align, Joined, INVALID, INVALID, nullptr, 0, 0, "Section alignment", nullptr, nullptr) +OPTION(prefix_1, "aligncomm:", aligncomm, Joined, INVALID, INVALID, nullptr, 0, 0, + "Set common symbol alignment", nullptr, nullptr) OPTION(prefix_1, "allowbind:no", allowbind_no, Flag, INVALID, INVALID, nullptr, 0, 0, "Disable DLL binding", nullptr, nullptr) -OPTION(prefix_1, "allowbind", allowbind, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_1, "allowbind", allowbind, Flag, INVALID, INVALID, nullptr, 0, 0, + "Enable DLL binding (default)", nullptr, nullptr) OPTION(prefix_1, "allowisolation:no", allowisolation_no, Flag, INVALID, INVALID, nullptr, 0, 0, - "Set NO_ISOLATION bit", nullptr, nullptr) -OPTION(prefix_1, "allowisolation", allowisolation, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) + "Disable DLL isolation", nullptr, nullptr) +OPTION(prefix_1, "allowisolation", allowisolation, Flag, INVALID, INVALID, nullptr, 0, 0, + "Enable DLL isolation (default)", nullptr, nullptr) OPTION(prefix_1, "alternatename:", alternatename, Joined, INVALID, INVALID, nullptr, 0, 0, "Define weak alias", nullptr, nullptr) OPTION(prefix_1, "appcontainer:no", appcontainer_no, Flag, INVALID, INVALID, nullptr, 0, 0, + "Image can run outside an app container (default)", nullptr, nullptr) +OPTION(prefix_1, "appcontainer", appcontainer, Flag, INVALID, INVALID, nullptr, 0, 0, "Image can only be run in an app container", nullptr, nullptr) -OPTION(prefix_1, "appcontainer", appcontainer, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "base:", base, Joined, INVALID, INVALID, nullptr, 0, 0, "Base address of the program", nullptr, nullptr) +OPTION(prefix_1, "debug:dwarf", debug_dwarf, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_1, "debug:ghash", debug_ghash, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "debugtype:", debugtype, Joined, INVALID, INVALID, nullptr, 0, 0, "Debug Info Options", nullptr, nullptr) OPTION(prefix_1, "debug", debug, Flag, INVALID, INVALID, nullptr, 0, 0, @@ -60,22 +68,25 @@ OPTION(prefix_1, "dll", dll, Flag, INVALID, INVALID, nullptr, 0, 0, OPTION(prefix_1, "driver:", driver, Joined, INVALID, INVALID, nullptr, 0, 0, "Generate a Windows NT Kernel Mode Driver", nullptr, nullptr) OPTION(prefix_1, "dynamicbase:no", dynamicbase_no, Flag, INVALID, INVALID, nullptr, 0, 0, - "Disable address space layout randomization", nullptr, nullptr) -OPTION(prefix_1, "dynamicbase", dynamicbase, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) + "Disable ASLR (default when /fixed)", nullptr, nullptr) +OPTION(prefix_1, "dynamicbase", dynamicbase, Flag, INVALID, INVALID, nullptr, 0, 0, + "Enable ASLR (default unless /fixed)", nullptr, nullptr) OPTION(prefix_1, "editandcontinue", editandcontinue, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "entry:", entry, Joined, INVALID, INVALID, nullptr, 0, 0, "Name of entry point symbol", nullptr, nullptr) OPTION(prefix_1, "errorlimit:", errorlimit, Joined, INVALID, INVALID, nullptr, 0, 0, "Maximum number of errors to emit before stopping (0 = no limit)", nullptr, nullptr) OPTION(prefix_1, "errorreport:", errorreport, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_1, "export-all-symbols", export_all_symbols, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "export:", export, Joined, INVALID, INVALID, nullptr, 0, 0, "Export a function", nullptr, nullptr) OPTION(prefix_1, "failifmismatch:", failifmismatch, Joined, INVALID, INVALID, nullptr, 0, 0, "", nullptr, nullptr) OPTION(prefix_1, "fastfail", fastfail, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "fixed:no", fixed_no, Flag, INVALID, INVALID, nullptr, 0, 0, - "Enable base relocations", nullptr, nullptr) -OPTION(prefix_1, "fixed", fixed, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) + "Enable base relocations (default)", nullptr, nullptr) +OPTION(prefix_1, "fixed", fixed, Flag, INVALID, INVALID, nullptr, 0, 0, + "Disable base relocations", nullptr, nullptr) OPTION(prefix_1, "force:unresolved", force_unresolved, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "force", force, Flag, INVALID, INVALID, nullptr, 0, 0, "Allow undefined symbols when creating executables", nullptr, nullptr) @@ -85,10 +96,12 @@ OPTION(prefix_1, "heap:", heap, Joined, INVALID, INVALID, nullptr, 0, 0, "Size of the heap", nullptr, nullptr) OPTION(prefix_1, "help", help, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "highentropyva:no", highentropyva_no, Flag, INVALID, INVALID, nullptr, 0, 0, - "Set HIGH_ENTROPY_VA bit", nullptr, nullptr) -OPTION(prefix_1, "highentropyva", highentropyva, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) + "Disable 64-bit ASLR", nullptr, nullptr) +OPTION(prefix_1, "highentropyva", highentropyva, Flag, INVALID, INVALID, nullptr, 0, 0, + "Enable 64-bit ASLR (default on 64-bit)", nullptr, nullptr) OPTION(prefix_1, "idlout:", idlout, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) -OPTION(prefix_1, "ignore:", ignore, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_1, "ignore:", ignore, Joined, INVALID, INVALID, nullptr, 0, 0, + "Specify warning codes to ignore", nullptr, nullptr) OPTION(prefix_1, "ignoreidl", ignoreidl, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "implib:", implib, Joined, INVALID, INVALID, nullptr, 0, 0, "Import library name", nullptr, nullptr) @@ -97,14 +110,20 @@ OPTION(prefix_2, "include:", incl, Joined, INVALID, INVALID, nullptr, 0, 0, OPTION(prefix_1, "incremental:no", no_incremental, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "incremental", incremental, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "largeaddressaware:no", largeaddressaware_no, Flag, INVALID, INVALID, nullptr, 0, 0, - "Disable large addresses", nullptr, nullptr) -OPTION(prefix_1, "largeaddressaware", largeaddressaware, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) + "Disable large addresses (default on 32-bit)", nullptr, nullptr) +OPTION(prefix_1, "largeaddressaware", largeaddressaware, Flag, INVALID, INVALID, nullptr, 0, 0, + "Enable large addresses (default on 64-bit)", nullptr, nullptr) OPTION(prefix_1, "libpath:", libpath, Joined, INVALID, INVALID, nullptr, 0, 0, "Additional library search path", nullptr, nullptr) OPTION(prefix_1, "linkrepro:", linkrepro, Joined, INVALID, INVALID, nullptr, 0, 0, "Dump linker invocation and input files for debugging", nullptr, nullptr) +OPTION(prefix_1, "lldltocache:", lldltocache, Joined, INVALID, INVALID, nullptr, 0, 0, + "Path to ThinLTO cached object file directory", nullptr, nullptr) +OPTION(prefix_1, "lldltocachepolicy:", lldltocachepolicy, Joined, INVALID, INVALID, nullptr, 0, 0, + "Pruning policy for the ThinLTO cache", nullptr, nullptr) OPTION(prefix_2, "lldmap:", lldmap_file, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "lldmap", lldmap, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_1, "lldmingw", lldmingw, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "lldsavetemps", lldsavetemps, Flag, INVALID, INVALID, nullptr, 0, 0, "Save temporary files instead of deleting them", nullptr, nullptr) OPTION(prefix_1, "machine:", machine, Joined, INVALID, INVALID, nullptr, 0, 0, @@ -126,28 +145,31 @@ OPTION(prefix_1, "merge:", merge, Joined, INVALID, INVALID, nullptr, 0, 0, OPTION(prefix_1, "mllvm:", mllvm, Joined, INVALID, INVALID, nullptr, 0, 0, "Options to pass to LLVM", nullptr, nullptr) OPTION(prefix_1, "msvclto", msvclto, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_1, "natvis:", natvis, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "nodefaultlib:", nodefaultlib, Joined, INVALID, INVALID, nullptr, 0, 0, "Remove a default library", nullptr, nullptr) OPTION(prefix_1, "nodefaultlib", nodefaultlib_all, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "noentry", noentry, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "nologo", nologo, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) -OPTION(prefix_1, "nopdb", nopdb, Flag, INVALID, INVALID, nullptr, 0, 0, - "Disable PDB generation for DWARF users", nullptr, nullptr) -OPTION(prefix_1, "nosymtab", nosymtab, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "nxcompat:no", nxcompat_no, Flag, INVALID, INVALID, nullptr, 0, 0, "Disable data execution provention", nullptr, nullptr) -OPTION(prefix_1, "nxcompat", nxcompat, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_1, "nxcompat", nxcompat, Flag, INVALID, INVALID, nullptr, 0, 0, + "Enable data execution prevention (default)", nullptr, nullptr) OPTION(prefix_1, "opt:", opt, Joined, INVALID, INVALID, nullptr, 0, 0, "Control optimizations", nullptr, nullptr) OPTION(prefix_1, "out:", out, Joined, INVALID, INVALID, nullptr, 0, 0, "Path to file to write output", nullptr, nullptr) +OPTION(prefix_2, "output-def:", output_def, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "pdb:", pdb, Joined, INVALID, INVALID, nullptr, 0, 0, "PDB file path", nullptr, nullptr) OPTION(prefix_1, "pdbaltpath:", pdbaltpath, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "profile", profile, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_3, "rsp-quoting=", rsp_quoting, Joined, INVALID, INVALID, nullptr, 0, 0, + "Quoting style for response files, 'windows' (default) or 'posix'", nullptr, nullptr) OPTION(prefix_1, "safeseh:no", safeseh_no, Flag, INVALID, INVALID, nullptr, 0, 0, - "Produce an image with Safe Exception Handler", nullptr, nullptr) -OPTION(prefix_1, "safeseh", safeseh, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) + "Don't produce an image with Safe Exception Handler", nullptr, nullptr) +OPTION(prefix_1, "safeseh", safeseh, Flag, INVALID, INVALID, nullptr, 0, 0, + "Produce an image with Safe Exception Handler (only for x86)", nullptr, nullptr) OPTION(prefix_1, "section:", section, Joined, INVALID, INVALID, nullptr, 0, 0, "Specify section attributes", nullptr, nullptr) OPTION(prefix_1, "stack:", stack, Joined, INVALID, INVALID, nullptr, 0, 0, @@ -163,12 +185,27 @@ OPTION(prefix_1, "tlbid:", tlbid, Joined, INVALID, INVALID, nullptr, 0, 0, nullp OPTION(prefix_1, "tlbout:", tlbout, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "tsaware:no", tsaware_no, Flag, INVALID, INVALID, nullptr, 0, 0, "Create non-Terminal Server aware executable", nullptr, nullptr) -OPTION(prefix_1, "tsaware", tsaware, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_1, "tsaware", tsaware, Flag, INVALID, INVALID, nullptr, 0, 0, + "Create Terminal Server aware executable (default)", nullptr, nullptr) OPTION(prefix_1, "verbose:", verbose_all, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "verbose", verbose, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "version:", version, Joined, INVALID, INVALID, nullptr, 0, 0, "Specify a version number in the PE header", nullptr, nullptr) -OPTION(prefix_1, "wx:no", wx_no, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) -OPTION(prefix_1, "wx", wx, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) -OPTION(prefix_3, "", help_q, Flag, INVALID, help, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_3, "version", dash_dash_version, Flag, INVALID, INVALID, nullptr, 0, 0, + "Print version information", nullptr, nullptr) +OPTION(prefix_1, "wholearchive:", wholearchive_file, Joined, INVALID, INVALID, nullptr, 0, 0, + "Include all object files from this archive", nullptr, nullptr) +OPTION(prefix_1, "wholearchive", wholearchive_flag, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_1, "WX:no", WX_no, Flag, INVALID, INVALID, nullptr, 0, 0, + "Don't treat warnings as errors", nullptr, nullptr) +OPTION(prefix_1, "WX", WX, Flag, INVALID, INVALID, nullptr, 0, 0, + "Treat warnings as errors", nullptr, nullptr) +OPTION(prefix_4, "", help_q, Flag, INVALID, help, nullptr, 0, 0, nullptr, nullptr, nullptr) #endif // OPTION + +#ifdef OPTTABLE_ARG_INIT +////////// +// Option Values + + +#endif // OPTTABLE_ARG_INIT diff --git a/deps/lld-prebuilt/DarwinLdOptions.inc b/deps/lld-prebuilt/DarwinLdOptions.inc index c70eb2967c..dc4f3dec54 100644 --- a/deps/lld-prebuilt/DarwinLdOptions.inc +++ b/deps/lld-prebuilt/DarwinLdOptions.inc @@ -187,3 +187,10 @@ OPTION(prefix_1, "v", v, Flag, INVALID, INVALID, nullptr, 0, 0, OPTION(prefix_1, "Z", Z, Flag, INVALID, INVALID, nullptr, 0, 0, "Do not search standard directories for libraries or frameworks", nullptr, nullptr) #endif // OPTION + +#ifdef OPTTABLE_ARG_INIT +////////// +// Option Values + + +#endif // OPTTABLE_ARG_INIT diff --git a/deps/lld-prebuilt/ELF/Options.inc b/deps/lld-prebuilt/ELF/Options.inc index 012841973b..640f1bdcc6 100644 --- a/deps/lld-prebuilt/ELF/Options.inc +++ b/deps/lld-prebuilt/ELF/Options.inc @@ -52,19 +52,23 @@ OPTION(prefix_2, "build-id", build_id, Flag, INVALID, INVALID, nullptr, 0, 0, "Generate build ID note", nullptr, nullptr) OPTION(prefix_2, "b", alias_format_b, Separate, INVALID, format, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "call_shared", alias_Bdynamic_call_shared, Flag, INVALID, Bdynamic, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "chroot", chroot, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "color-diagnostics=", color_diagnostics_eq, Joined, INVALID, INVALID, nullptr, 0, 0, "Use colors in diagnostics", nullptr, nullptr) OPTION(prefix_2, "color-diagnostics", color_diagnostics, Flag, INVALID, INVALID, nullptr, 0, 0, "Use colors in diagnostics", nullptr, nullptr) -OPTION(prefix_2, "compress-debug-sections=", compress_debug_sections, Joined, INVALID, INVALID, nullptr, 0, 0, +OPTION(prefix_2, "compress-debug-sections=", compress_debug_sections_eq, Joined, INVALID, compress_debug_sections, nullptr, 0, 0, "Compress DWARF debug sections", nullptr, nullptr) -OPTION(prefix_3, "cref", cref, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "compress-debug-sections", compress_debug_sections, Separate, INVALID, INVALID, nullptr, 0, 0, + "Compress DWARF debug sections", nullptr, nullptr) +OPTION(prefix_2, "cref", cref, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "dc", alias_define_common_dc, Flag, INVALID, define_common, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "define-common", define_common, Flag, INVALID, INVALID, nullptr, 0, 0, "Assign space to common symbols", nullptr, nullptr) -OPTION(prefix_2, "defsym=", defsym, Joined, INVALID, INVALID, nullptr, 0, 0, +OPTION(prefix_2, "defsym=", defsym_eq, Joined, INVALID, defsym, nullptr, 0, 0, + "Define a symbol alias", nullptr, nullptr) +OPTION(prefix_2, "defsym", defsym, Separate, INVALID, INVALID, nullptr, 0, 0, "Define a symbol alias", nullptr, nullptr) -OPTION(prefix_2, "defsym", alias_defsym, Separate, INVALID, defsym, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "demangle", demangle, Flag, INVALID, INVALID, nullptr, 0, 0, "Demangle symbol names", nullptr, nullptr) OPTION(prefix_2, "detect-odr-violations", detect_odr_violations, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) @@ -81,7 +85,8 @@ OPTION(prefix_2, "dn", alias_Bstatic_dn, Flag, INVALID, Bstatic, nullptr, 0, 0, OPTION(prefix_2, "dp", alias_define_common_dp, Flag, INVALID, define_common, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "dynamic-linker", dynamic_linker, Separate, INVALID, INVALID, nullptr, 0, 0, "Which dynamic linker to use", nullptr, nullptr) -OPTION(prefix_2, "dynamic-list=", alias_dynamic_list, Joined, INVALID, dynamic_list, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "dynamic-list=", dynamic_list_eq, Joined, INVALID, dynamic_list, nullptr, 0, 0, + "Read a list of dynamic symbols", nullptr, nullptr) OPTION(prefix_2, "dynamic-list", dynamic_list, Separate, INVALID, INVALID, nullptr, 0, 0, "Read a list of dynamic symbols", nullptr, nullptr) OPTION(prefix_2, "dy", alias_Bdynamic_dy, Flag, INVALID, Bdynamic, nullptr, 0, 0, nullptr, nullptr, nullptr) @@ -97,18 +102,22 @@ OPTION(prefix_2, "enable-new-dtags", enable_new_dtags, Flag, INVALID, INVALID, n OPTION(prefix_2, "end-group", end_group, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "end-lib", end_lib, Flag, INVALID, INVALID, nullptr, 0, 0, "End a grouping of objects that should be treated as if they were together in an archive", nullptr, nullptr) -OPTION(prefix_2, "entry=", alias_entry_entry, Joined, INVALID, entry, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "entry=", entry_eq, Joined, INVALID, entry, nullptr, 0, 0, + "Name of entry point symbol", "", nullptr) OPTION(prefix_2, "entry", entry, Separate, INVALID, INVALID, nullptr, 0, 0, "Name of entry point symbol", "", nullptr) -OPTION(prefix_2, "error-limit=", alias_error_limit, Joined, INVALID, error_limit, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "error-limit=", error_limit_eq, Joined, INVALID, error_limit, nullptr, 0, 0, + "Maximum number of errors to emit before stopping (0 = no limit)", nullptr, nullptr) OPTION(prefix_2, "error-limit", error_limit, Separate, INVALID, INVALID, nullptr, 0, 0, "Maximum number of errors to emit before stopping (0 = no limit)", nullptr, nullptr) OPTION(prefix_2, "error-unresolved-symbols", error_unresolved_symbols, Flag, INVALID, INVALID, nullptr, 0, 0, "Report unresolved symbols as errors", nullptr, nullptr) -OPTION(prefix_2, "exclude-libs=", alias_exclude_libs, Joined, INVALID, exclude_libs, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "exclude-libs=", exclude_libs_eq, Joined, INVALID, exclude_libs, nullptr, 0, 0, + "Exclude static libraries from automatic export", nullptr, nullptr) OPTION(prefix_2, "exclude-libs", exclude_libs, Separate, INVALID, INVALID, nullptr, 0, 0, "Exclude static libraries from automatic export", nullptr, nullptr) -OPTION(prefix_2, "export-dynamic-symbol=", alias_export_dynamic_symbol, Joined, INVALID, export_dynamic_symbol, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "export-dynamic-symbol=", export_dynamic_symbol_eq, Joined, INVALID, export_dynamic_symbol, nullptr, 0, 0, + "Put a symbol in the dynamic symbol table", nullptr, nullptr) OPTION(prefix_2, "export-dynamic-symbol", export_dynamic_symbol, Separate, INVALID, INVALID, nullptr, 0, 0, "Put a symbol in the dynamic symbol table", nullptr, nullptr) OPTION(prefix_2, "export-dynamic", export_dynamic, Flag, INVALID, INVALID, nullptr, 0, 0, @@ -117,12 +126,19 @@ OPTION(prefix_1, "E", alias_export_dynamic_E, Flag, INVALID, export_dynamic, nul OPTION(prefix_1, "e", alias_entry_e, JoinedOrSeparate, INVALID, entry, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "fatal-warnings", fatal_warnings, Flag, INVALID, INVALID, nullptr, 0, 0, "Treat warnings as errors", nullptr, nullptr) -OPTION(prefix_2, "filter=", filter, Joined, INVALID, INVALID, nullptr, 0, 0, +OPTION(prefix_2, "filter=", filter_eq, Joined, INVALID, filter, nullptr, 0, 0, "Set DT_FILTER field to the specified name", nullptr, nullptr) -OPTION(prefix_2, "fini=", alias_fini_fini, Joined, INVALID, fini, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "filter", filter, Separate, INVALID, INVALID, nullptr, 0, 0, + "Set DT_FILTER field to the specified name", nullptr, nullptr) +OPTION(prefix_2, "fini=", fini_eq, Joined, INVALID, fini, nullptr, 0, 0, + "Specify a finalizer function", "", nullptr) OPTION(prefix_2, "fini", fini, Separate, INVALID, INVALID, nullptr, 0, 0, "Specify a finalizer function", "", nullptr) -OPTION(prefix_2, "format=", format, Joined, INVALID, INVALID, nullptr, 0, 0, +OPTION(prefix_2, "fix-cortex-a53-843419", fix_cortex_a53_843419, Flag, INVALID, INVALID, nullptr, 0, 0, + "Apply fixes for AArch64 Cortex-A53 erratum 843419", nullptr, nullptr) +OPTION(prefix_2, "format=", format_eq, Joined, INVALID, format, nullptr, 0, 0, + "Change the input format of the inputs following this option", "", nullptr) +OPTION(prefix_2, "format", format, Separate, INVALID, INVALID, nullptr, 0, 0, "Change the input format of the inputs following this option", "", nullptr) OPTION(prefix_2, "full-shutdown", full_shutdown, Flag, INVALID, INVALID, nullptr, 0, 0, "Perform a full shutdown instead of calling _exit", nullptr, nullptr) @@ -134,23 +150,36 @@ OPTION(prefix_2, "gdb-index", gdb_index, Flag, INVALID, INVALID, nullptr, 0, 0, "Generate .gdb_index section", nullptr, nullptr) OPTION(prefix_1, "G", G, JoinedOrSeparate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "g", g, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) -OPTION(prefix_2, "hash-style=", alias_hash_style_hash_style, Joined, INVALID, hash_style, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "hash-style=", hash_style_eq, Joined, INVALID, hash_style, nullptr, 0, 0, + "Specify hash style (sysv, gnu or both)", nullptr, nullptr) OPTION(prefix_2, "hash-style", hash_style, Separate, INVALID, INVALID, nullptr, 0, 0, "Specify hash style (sysv, gnu or both)", nullptr, nullptr) OPTION(prefix_2, "help", help, Flag, INVALID, INVALID, nullptr, 0, 0, "Print option help", nullptr, nullptr) OPTION(prefix_1, "h", alias_soname_h, JoinedOrSeparate, INVALID, soname, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "icf-data", icf_data, Flag, INVALID, INVALID, nullptr, 0, 0, + "Enable ICF to also fold identical read only data", nullptr, nullptr) OPTION(prefix_2, "icf=all", icf_all, Flag, INVALID, INVALID, nullptr, 0, 0, "Enable identical code folding", nullptr, nullptr) OPTION(prefix_2, "icf=none", icf_none, Flag, INVALID, INVALID, nullptr, 0, 0, "Disable identical code folding", nullptr, nullptr) -OPTION(prefix_2, "image-base=", image_base, Joined, INVALID, INVALID, nullptr, 0, 0, +OPTION(prefix_2, "image-base=", image_base_eq, Joined, INVALID, image_base, nullptr, 0, 0, "Set the base address", nullptr, nullptr) -OPTION(prefix_2, "init=", alias_init_init, Joined, INVALID, init, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "image-base", image_base, Separate, INVALID, INVALID, nullptr, 0, 0, + "Set the base address", nullptr, nullptr) +OPTION(prefix_2, "init=", init_eq, Joined, INVALID, init, nullptr, 0, 0, + "Specify an initializer function", "", nullptr) OPTION(prefix_2, "init", init, Separate, INVALID, INVALID, nullptr, 0, 0, "Specify an initializer function", "", nullptr) -OPTION(prefix_2, "library-path=", alias_L__library_path, Joined, INVALID, L, nullptr, 0, 0, nullptr, nullptr, nullptr) -OPTION(prefix_2, "library=", alias_l__library, Joined, INVALID, l, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "library-path=", library_path_eq, Joined, INVALID, library_path, nullptr, 0, 0, + "Add a directory to the library search path", "", nullptr) +OPTION(prefix_2, "library-path", library_path, Separate, INVALID, INVALID, nullptr, 0, 0, + "Add a directory to the library search path", "", nullptr) +OPTION(prefix_2, "library=", library_eq, Joined, INVALID, library, nullptr, 0, 0, + "Root name of library to use", "", nullptr) +OPTION(prefix_2, "library", library, Separate, INVALID, INVALID, nullptr, 0, 0, + "Root name of library to use", "", nullptr) +OPTION(prefix_2, "long-plt", long_plt, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "lto-aa-pipeline=", lto_aa_pipeline, Joined, INVALID, INVALID, nullptr, 0, 0, "AA pipeline to run during LTO. Used in conjunction with -lto-newpm-passes", nullptr, nullptr) OPTION(prefix_2, "lto-newpm-passes=", lto_newpm_passes, Joined, INVALID, INVALID, nullptr, 0, 0, @@ -159,13 +188,14 @@ OPTION(prefix_2, "lto-O", lto_O, Joined, INVALID, INVALID, nullptr, 0, 0, "Optimization level for LTO", "", nullptr) OPTION(prefix_2, "lto-partitions=", lto_partitions, Joined, INVALID, INVALID, nullptr, 0, 0, "Number of LTO codegen partitions", nullptr, nullptr) -OPTION(prefix_1, "L", L, JoinedOrSeparate, INVALID, INVALID, nullptr, 0, 0, - "Add a directory to the library search path", "", nullptr) -OPTION(prefix_1, "l", l, JoinedOrSeparate, INVALID, INVALID, nullptr, 0, 0, - "Root name of library to use", "", nullptr) -OPTION(prefix_2, "Map=", alias_Map_eq, Joined, INVALID, Map, nullptr, 0, 0, nullptr, nullptr, nullptr) -OPTION(prefix_2, "Map", Map, JoinedOrSeparate, INVALID, INVALID, nullptr, 0, 0, +OPTION(prefix_1, "L", alias_library_path, JoinedOrSeparate, INVALID, library_path, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_1, "l", alias_library, JoinedOrSeparate, INVALID, library, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "Map=", Map_eq, Joined, INVALID, Map, nullptr, 0, 0, "Print a link map to the specified file", nullptr, nullptr) +OPTION(prefix_2, "Map", Map, Separate, INVALID, INVALID, nullptr, 0, 0, + "Print a link map to the specified file", nullptr, nullptr) +OPTION(prefix_2, "merge-exidx-entries", merge_exidx_entries, Flag, INVALID, INVALID, nullptr, 0, 0, + "Enable merging .ARM.exidx entries", nullptr, nullptr) OPTION(prefix_2, "mllvm", mllvm, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "M", alias_print_map_M, Flag, INVALID, print_map, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "m", m, JoinedOrSeparate, INVALID, INVALID, nullptr, 0, 0, @@ -176,21 +206,32 @@ OPTION(prefix_2, "no-as-needed", no_as_needed, Flag, INVALID, INVALID, nullptr, "Always DT_NEEDED for shared libraries", nullptr, nullptr) OPTION(prefix_2, "no-color-diagnostics", no_color_diagnostics, Flag, INVALID, INVALID, nullptr, 0, 0, "Do not use colors in diagnostics", nullptr, nullptr) -OPTION(prefix_2, "no-copy-dt-needed-entries", no_copy_dt_needed_entries, Flag, INVALID, no_add_needed, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "no-copy-dt-needed-entries", no_copy_dt_needed_entries, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "no-ctors-in-init-array", no_ctors_in_init_array, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "no-define-common", no_define_common, Flag, INVALID, INVALID, nullptr, 0, 0, "Do not assign space to common symbols", nullptr, nullptr) OPTION(prefix_2, "no-demangle", no_demangle, Flag, INVALID, INVALID, nullptr, 0, 0, "Do not demangle symbol names", nullptr, nullptr) OPTION(prefix_2, "no-dynamic-linker", no_dynamic_linker, Flag, INVALID, INVALID, nullptr, 0, 0, "Inhibit output of .interp section", nullptr, nullptr) +OPTION(prefix_2, "no-eh-frame-hdr", no_eh_frame_hdr, Flag, INVALID, INVALID, nullptr, 0, 0, + "Do not create .eh_frame_hdr section", nullptr, nullptr) OPTION(prefix_2, "no-export-dynamic", no_export_dynamic, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "no-fatal-warnings", no_fatal_warnings, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "no-gc-sections", no_gc_sections, Flag, INVALID, INVALID, nullptr, 0, 0, "Disable garbage collection of unused sections", nullptr, nullptr) +OPTION(prefix_2, "no-gdb-index", no_gdb_index, Flag, INVALID, INVALID, nullptr, 0, 0, + "Do not generate .gdb_index section", nullptr, nullptr) OPTION(prefix_2, "no-gnu-unique", no_gnu_unique, Flag, INVALID, INVALID, nullptr, 0, 0, "Disable STB_GNU_UNIQUE symbol binding", nullptr, nullptr) OPTION(prefix_2, "no-keep-memory", no_keep_memory, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "no-merge-exidx-entries", no_merge_exidx_entries, Flag, INVALID, INVALID, nullptr, 0, 0, + "Disable merging .ARM.exidx entries", nullptr, nullptr) OPTION(prefix_2, "no-mmap-output-file", no_mmap_output_file, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_3, "no-omagic", no_omagic, Flag, INVALID, INVALID, nullptr, 0, 0, + "Do not set the text data sections to be writable", "", nullptr) +OPTION(prefix_2, "no-print-gc-sections", no_print_gc_sections, Flag, INVALID, INVALID, nullptr, 0, 0, + "Do not list removed unused sections", nullptr, nullptr) OPTION(prefix_2, "no-rosegment", no_rosegment, Flag, INVALID, INVALID, nullptr, 0, 0, "Do not put read-only non-executable sections in their own segment", nullptr, nullptr) OPTION(prefix_2, "no-threads", no_threads, Flag, INVALID, INVALID, nullptr, 0, 0, @@ -219,17 +260,25 @@ OPTION(prefix_3, "opt-remarks-filename", opt_remarks_filename, Separate, INVALID "YAML output file for optimization remarks", nullptr, nullptr) OPTION(prefix_3, "opt-remarks-with-hotness", opt_remarks_with_hotness, Flag, INVALID, INVALID, nullptr, 0, 0, "Include hotness informations in the optimization remarks file", nullptr, nullptr) +OPTION(prefix_2, "orphan-handling=", orphan_handling_eq, Joined, INVALID, orphan_handling, nullptr, 0, 0, + "Control how orphan sections are handled when linker script used", nullptr, nullptr) +OPTION(prefix_2, "orphan-handling", orphan_handling, Separate, INVALID, INVALID, nullptr, 0, 0, + "Control how orphan sections are handled when linker script used", nullptr, nullptr) OPTION(prefix_3, "output=", alias_o_output, Joined, INVALID, o, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_3, "output", alias_o_output2, Separate, INVALID, o, nullptr, 0, 0, nullptr, nullptr, nullptr) -OPTION(prefix_1, "O", O, Joined, INVALID, INVALID, nullptr, 0, 0, +OPTION(prefix_1, "O", O, JoinedOrSeparate, INVALID, INVALID, nullptr, 0, 0, "Optimize output file size", nullptr, nullptr) OPTION(prefix_1, "o", o, JoinedOrSeparate, INVALID, INVALID, nullptr, 0, 0, "Path to file to write output", "", nullptr) +OPTION(prefix_2, "pack-dyn-relocs=", pack_dyn_relocs_eq, Joined, INVALID, INVALID, nullptr, 0, 0, + "Pack dynamic relocations in the given format (none or android)", "", nullptr) OPTION(prefix_2, "pic-executable", alias_pie_pic_executable, Flag, INVALID, pie, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "pie", pie, Flag, INVALID, INVALID, nullptr, 0, 0, "Create a position independent executable", nullptr, nullptr) -OPTION(prefix_2, "plugin-opt=", plugin_opt_eq, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) -OPTION(prefix_2, "plugin-opt", plugin_opt, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "plugin-opt=", plugin_opt_eq, Joined, INVALID, plugin_opt, nullptr, 0, 0, + "specifies LTO options for compatibility with GNU linkers", nullptr, nullptr) +OPTION(prefix_2, "plugin-opt", plugin_opt, Separate, INVALID, INVALID, nullptr, 0, 0, + "specifies LTO options for compatibility with GNU linkers", nullptr, nullptr) OPTION(prefix_2, "plugin=", plugin_eq, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "plugin", plugin, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "print-gc-sections", print_gc_sections, Flag, INVALID, INVALID, nullptr, 0, 0, @@ -240,34 +289,42 @@ OPTION(prefix_2, "Qy", Qy, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullp OPTION(prefix_1, "q", alias_emit_relocs, Flag, INVALID, emit_relocs, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "relocatable", relocatable, Flag, INVALID, INVALID, nullptr, 0, 0, "Create relocatable object file", nullptr, nullptr) -OPTION(prefix_2, "reproduce=", alias_reproduce_eq, Joined, INVALID, reproduce, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "reproduce=", reproduce_eq, Joined, INVALID, reproduce, nullptr, 0, 0, + "Dump linker invocation and input files for debugging", nullptr, nullptr) OPTION(prefix_2, "reproduce", reproduce, Separate, INVALID, INVALID, nullptr, 0, 0, "Dump linker invocation and input files for debugging", nullptr, nullptr) -OPTION(prefix_2, "retain-symbols-file=", retain_symbols_file, Joined, INVALID, INVALID, nullptr, 0, 0, +OPTION(prefix_2, "retain-symbols-file=", retain_symbols_file_eq, Joined, INVALID, retain_symbols_file, nullptr, 0, 0, + "Retain only the symbols listed in the file", "", nullptr) +OPTION(prefix_2, "retain-symbols-file", retain_symbols_file, Separate, INVALID, INVALID, nullptr, 0, 0, "Retain only the symbols listed in the file", "", nullptr) -OPTION(prefix_2, "retain-symbols-file", alias_retain_symbols_file, Separate, INVALID, retain_symbols_file, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "rpath-link=", rpath_link_eq, Joined, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "rpath-link", rpath_link, Separate, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) -OPTION(prefix_2, "rpath=", alias_rpath_rpath, Joined, INVALID, rpath, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "rpath=", rpath_eq, Joined, INVALID, rpath, nullptr, 0, 0, + "Add a DT_RUNPATH to the output", nullptr, nullptr) OPTION(prefix_2, "rpath", rpath, Separate, INVALID, INVALID, nullptr, 0, 0, "Add a DT_RUNPATH to the output", nullptr, nullptr) -OPTION(prefix_2, "rsp-quoting=", rsp_quoting, Joined, INVALID, INVALID, nullptr, 0, 0, +OPTION(prefix_2, "rsp-quoting=", rsp_quoting_eq, Joined, INVALID, rsp_quoting, nullptr, 0, 0, + "Quoting style for response files. Values supported: windows|posix", nullptr, nullptr) +OPTION(prefix_2, "rsp-quoting", rsp_quoting, Separate, INVALID, INVALID, nullptr, 0, 0, "Quoting style for response files. Values supported: windows|posix", nullptr, nullptr) OPTION(prefix_1, "R", alias_rpath_R, JoinedOrSeparate, INVALID, rpath, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "r", alias_relocatable_r, Flag, INVALID, relocatable, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "save-temps", save_temps, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) -OPTION(prefix_2, "script=", alias_script, Joined, INVALID, script, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "script=", script_eq, Joined, INVALID, script, nullptr, 0, 0, + "Read linker script", nullptr, nullptr) OPTION(prefix_2, "script", script, Separate, INVALID, INVALID, nullptr, 0, 0, "Read linker script", nullptr, nullptr) OPTION(prefix_2, "section-start", section_start, Separate, INVALID, INVALID, nullptr, 0, 0, "Set address of section", "
", nullptr) OPTION(prefix_2, "shared", shared, Flag, INVALID, INVALID, nullptr, 0, 0, "Build a shared object", nullptr, nullptr) -OPTION(prefix_2, "soname=", soname, Joined, INVALID, INVALID, nullptr, 0, 0, +OPTION(prefix_2, "soname=", soname_eq, Joined, INVALID, soname, nullptr, 0, 0, + "Set DT_SONAME", nullptr, nullptr) +OPTION(prefix_2, "soname", soname, Separate, INVALID, INVALID, nullptr, 0, 0, "Set DT_SONAME", nullptr, nullptr) -OPTION(prefix_2, "soname", alias_soname_soname, Separate, INVALID, soname, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "sort-common", sort_common, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) -OPTION(prefix_2, "sort-section=", alias_sort_section, Joined, INVALID, sort_section, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "sort-section=", sort_section_eq, Joined, INVALID, sort_section, nullptr, 0, 0, + "Specifies sections sorting rule when linkerscript is used", nullptr, nullptr) OPTION(prefix_2, "sort-section", sort_section, Separate, INVALID, INVALID, nullptr, 0, 0, "Specifies sections sorting rule when linkerscript is used", nullptr, nullptr) OPTION(prefix_2, "start-group", start_group, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) @@ -281,7 +338,9 @@ OPTION(prefix_2, "strip-debug", strip_debug, Flag, INVALID, INVALID, nullptr, 0, "Strip debugging information", nullptr, nullptr) OPTION(prefix_2, "symbol-ordering-file", symbol_ordering_file, Separate, INVALID, INVALID, nullptr, 0, 0, "Layout sections in the order specified by symbol file", nullptr, nullptr) -OPTION(prefix_2, "sysroot=", sysroot, Joined, INVALID, INVALID, nullptr, 0, 0, +OPTION(prefix_2, "sysroot=", sysroot_eq, Joined, INVALID, sysroot, nullptr, 0, 0, + "Set the system root", nullptr, nullptr) +OPTION(prefix_2, "sysroot", sysroot, Separate, INVALID, INVALID, nullptr, 0, 0, "Set the system root", nullptr, nullptr) OPTION(prefix_1, "S", alias_strip_debug_S, Flag, INVALID, strip_debug, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "s", alias_strip_all, Flag, INVALID, strip_all, nullptr, 0, 0, nullptr, nullptr, nullptr) @@ -289,12 +348,16 @@ OPTION(prefix_2, "target1-abs", target1_abs, Flag, INVALID, INVALID, nullptr, 0, "Interpret R_ARM_TARGET1 as R_ARM_ABS32", nullptr, nullptr) OPTION(prefix_2, "target1-rel", target1_rel, Flag, INVALID, INVALID, nullptr, 0, 0, "Interpret R_ARM_TARGET1 as R_ARM_REL32", nullptr, nullptr) -OPTION(prefix_2, "target2=", target2, Joined, INVALID, INVALID, nullptr, 0, 0, +OPTION(prefix_2, "target2=", target2_eq, Joined, INVALID, target2, nullptr, 0, 0, "Interpret R_ARM_TARGET2 as , where is one of rel, abs, or got-rel", "", nullptr) -OPTION(prefix_2, "Tbss=", alias_Tbss, Joined, INVALID, Tbss, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "target2", target2, Separate, INVALID, INVALID, nullptr, 0, 0, + "Interpret R_ARM_TARGET2 as , where is one of rel, abs, or got-rel", "", nullptr) +OPTION(prefix_2, "Tbss=", Tbss_eq, Joined, INVALID, Tbss, nullptr, 0, 0, + "Same as --section-start with .bss as the sectionname", nullptr, nullptr) OPTION(prefix_2, "Tbss", Tbss, Separate, INVALID, INVALID, nullptr, 0, 0, "Same as --section-start with .bss as the sectionname", nullptr, nullptr) -OPTION(prefix_2, "Tdata=", alias_Tdata, Joined, INVALID, Tdata, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "Tdata=", Tdata_eq, Joined, INVALID, Tdata, nullptr, 0, 0, + "Same as --section-start with .data as the sectionname", nullptr, nullptr) OPTION(prefix_2, "Tdata", Tdata, Separate, INVALID, INVALID, nullptr, 0, 0, "Same as --section-start with .data as the sectionname", nullptr, nullptr) OPTION(prefix_2, "thinlto-cache-dir=", thinlto_cache_dir, Joined, INVALID, INVALID, nullptr, 0, 0, @@ -305,27 +368,33 @@ OPTION(prefix_2, "thinlto-jobs=", thinlto_jobs, Joined, INVALID, INVALID, nullpt "Number of ThinLTO jobs", nullptr, nullptr) OPTION(prefix_2, "threads", threads, Flag, INVALID, INVALID, nullptr, 0, 0, "Run the linker multi-threaded", nullptr, nullptr) -OPTION(prefix_2, "trace-symbol=", trace_trace_symbol_eq, Joined, INVALID, trace_symbol, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "trace-symbol=", trace_symbol_eq, Joined, INVALID, trace_symbol, nullptr, 0, 0, + "Trace references to symbols", nullptr, nullptr) OPTION(prefix_2, "trace-symbol", trace_symbol, Separate, INVALID, INVALID, nullptr, 0, 0, "Trace references to symbols", nullptr, nullptr) OPTION(prefix_2, "trace", trace, Flag, INVALID, INVALID, nullptr, 0, 0, "Print the names of the input files", nullptr, nullptr) OPTION(prefix_2, "Ttext-segment=", alias_Ttext_segment_eq, Joined, INVALID, Ttext, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "Ttext-segment", alias_Ttext_segment, Separate, INVALID, Ttext, nullptr, 0, 0, nullptr, nullptr, nullptr) -OPTION(prefix_2, "Ttext=", alias_Ttext, Joined, INVALID, Ttext, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "Ttext=", Ttext_eq, Joined, INVALID, Ttext, nullptr, 0, 0, + "Same as --section-start with .text as the sectionname", nullptr, nullptr) OPTION(prefix_2, "Ttext", Ttext, Separate, INVALID, INVALID, nullptr, 0, 0, "Same as --section-start with .text as the sectionname", nullptr, nullptr) OPTION(prefix_1, "T", alias_script_T, JoinedOrSeparate, INVALID, script, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_1, "t", alias_trace, Flag, INVALID, trace, nullptr, 0, 0, nullptr, nullptr, nullptr) -OPTION(prefix_2, "undefined=", alias_undefined_eq, Joined, INVALID, undefined, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "undefined=", undefined_eq, Joined, INVALID, undefined, nullptr, 0, 0, + "Force undefined symbol during linking", nullptr, nullptr) OPTION(prefix_2, "undefined", undefined, Separate, INVALID, INVALID, nullptr, 0, 0, "Force undefined symbol during linking", nullptr, nullptr) -OPTION(prefix_2, "unresolved-symbols=", unresolved_symbols, Joined, INVALID, INVALID, nullptr, 0, 0, +OPTION(prefix_2, "unresolved-symbols=", unresolved_symbols_eq, Joined, INVALID, unresolved_symbols, nullptr, 0, 0, + "Determine how to handle unresolved symbols", nullptr, nullptr) +OPTION(prefix_2, "unresolved-symbols", unresolved_symbols, Separate, INVALID, INVALID, nullptr, 0, 0, "Determine how to handle unresolved symbols", nullptr, nullptr) OPTION(prefix_1, "u", alias_undefined_u, JoinedOrSeparate, INVALID, undefined, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "verbose", verbose, Flag, INVALID, INVALID, nullptr, 0, 0, "Verbose mode", nullptr, nullptr) -OPTION(prefix_2, "version-script=", alias_version_script_eq, Joined, INVALID, version_script, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "version-script=", version_script_eq, Joined, INVALID, version_script, nullptr, 0, 0, + "Read a version script", nullptr, nullptr) OPTION(prefix_2, "version-script", version_script, Separate, INVALID, INVALID, nullptr, 0, 0, "Read a version script", nullptr, nullptr) OPTION(prefix_2, "version", version, Flag, INVALID, INVALID, nullptr, 0, 0, @@ -336,12 +405,14 @@ OPTION(prefix_1, "v", v, Flag, INVALID, INVALID, nullptr, 0, 0, OPTION(prefix_2, "warn-common", warn_common, Flag, INVALID, INVALID, nullptr, 0, 0, "Warn about duplicate common symbols", nullptr, nullptr) OPTION(prefix_2, "warn-execstack", warn_execstack, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "warn-once", warn_once, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "warn-shared-textrel", warn_shared_textrel, Flag, INVALID, INVALID, nullptr, 0, 0, nullptr, nullptr, nullptr) OPTION(prefix_2, "warn-unresolved-symbols", warn_unresolved_symbols, Flag, INVALID, INVALID, nullptr, 0, 0, "Report unresolved symbols as warnings", nullptr, nullptr) OPTION(prefix_2, "whole-archive", whole_archive, Flag, INVALID, INVALID, nullptr, 0, 0, "Force load of all members in a static library", nullptr, nullptr) -OPTION(prefix_2, "wrap=", alias_wrap_wrap, Joined, INVALID, wrap, nullptr, 0, 0, nullptr, nullptr, nullptr) +OPTION(prefix_2, "wrap=", wrap_eq, Joined, INVALID, wrap, nullptr, 0, 0, + "Use wrapper functions for symbol", "", nullptr) OPTION(prefix_2, "wrap", wrap, Separate, INVALID, INVALID, nullptr, 0, 0, "Use wrapper functions for symbol", "", nullptr) OPTION(prefix_1, "X", alias_discard_locals_X, Flag, INVALID, discard_locals, nullptr, 0, 0, nullptr, nullptr, nullptr) @@ -350,3 +421,10 @@ OPTION(prefix_1, "y", alias_trace_symbol_y, JoinedOrSeparate, INVALID, trace_sym OPTION(prefix_1, "z", z, JoinedOrSeparate, INVALID, INVALID, nullptr, 0, 0, "Linker option extensions", "