| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Reland: Make lld-link work in a non-MSVC shell, add /winsysroot: This relands 73e585e44d (and 0574b5fc657451), with a fix for the failing test (by using Optional<StringRef>s instead of making StringRef::empty() mean absence of value). Differential Revision: https://reviews.llvm.org/D118070 | 4 年前 | |
Reland "[LLD] Remove global state in lld/COFF" after fixing asan and msan test failures Original commit description: [LLD] Remove global state in lld/COFF This patch removes globals from the lldCOFF library, by moving globals into a context class (COFFLinkingContext) and passing it around wherever it's needed. See https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html for context about removing globals from LLD. I also haven't moved the driver or config variables yet. Differential Revision: https://reviews.llvm.org/D109634 This reverts commit a2fd05ada9030eab2258fff25e77a05adccae128. Original commits were b4fa71eed34d967195514fe9b0a5211fca2bc5bc and e03c7e367adb8f228332e3c2ef8f45484597b719. | 4 年前 | |
Re-land [LLD] Remove global state in lldCommon Move all variables at file-scope or function-static-scope into a hosting structure (lld::CommonLinkerContext) that lives at lldMain()-scope. Drivers will inherit from this structure and add their own global state, in the same way as for the existing COFFLinkerContext. See discussion in https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html The previous land f860fe362282ed69b9d4503a20e5d20b9a041189 caused issues in https://lab.llvm.org/buildbot/#/builders/123/builds/8383, fixed by 22ee510dac9440a74b2e5b3fe3ff13ccdbf55af3. Differential Revision: https://reviews.llvm.org/D108850 | 4 年前 | |
Reland "[LLD] Remove global state in lld/COFF" after fixing asan and msan test failures Original commit description: [LLD] Remove global state in lld/COFF This patch removes globals from the lldCOFF library, by moving globals into a context class (COFFLinkingContext) and passing it around wherever it's needed. See https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html for context about removing globals from LLD. I also haven't moved the driver or config variables yet. Differential Revision: https://reviews.llvm.org/D109634 This reverts commit a2fd05ada9030eab2258fff25e77a05adccae128. Original commits were b4fa71eed34d967195514fe9b0a5211fca2bc5bc and e03c7e367adb8f228332e3c2ef8f45484597b719. | 4 年前 | |
Reland "[LLD] Remove global state in lld/COFF" after fixing asan and msan test failures Original commit description: [LLD] Remove global state in lld/COFF This patch removes globals from the lldCOFF library, by moving globals into a context class (COFFLinkingContext) and passing it around wherever it's needed. See https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html for context about removing globals from LLD. I also haven't moved the driver or config variables yet. Differential Revision: https://reviews.llvm.org/D109634 This reverts commit a2fd05ada9030eab2258fff25e77a05adccae128. Original commits were b4fa71eed34d967195514fe9b0a5211fca2bc5bc and e03c7e367adb8f228332e3c2ef8f45484597b719. | 4 年前 | |
Use llvm::sort instead of std::sort where possible llvm::sort is beneficial even when we use the iterator-based overload, since it can optionally shuffle the elements (to detect non-determinism). However llvm::sort is not usable everywhere, for example, in compiler-rt. Reviewed By: nhaehnle Differential Revision: https://reviews.llvm.org/D130406 | 3 年前 | |
Reland "[LLD] Remove global state in lld/COFF" after fixing asan and msan test failures Original commit description: [LLD] Remove global state in lld/COFF This patch removes globals from the lldCOFF library, by moving globals into a context class (COFFLinkingContext) and passing it around wherever it's needed. See https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html for context about removing globals from LLD. I also haven't moved the driver or config variables yet. Differential Revision: https://reviews.llvm.org/D109634 This reverts commit a2fd05ada9030eab2258fff25e77a05adccae128. Original commits were b4fa71eed34d967195514fe9b0a5211fca2bc5bc and e03c7e367adb8f228332e3c2ef8f45484597b719. | 4 年前 | |
[COFF] Add vfsoverlay flag This patch adds a new flag vfsoverlay similar to clang’s ivfsoverlay flag. This is helpful when compiling on case sensitive file systems when cross compiling to Windows. Particularly when compiling third party code containing \#pragma comment(“linker”, “/defaultlib:...”) which can’t be easily changed. Differential Revision: https://reviews.llvm.org/D125800 | 3 年前 | |
Use llvm::sort instead of std::sort where possible llvm::sort is beneficial even when we use the iterator-based overload, since it can optionally shuffle the elements (to detect non-determinism). However llvm::sort is not usable everywhere, for example, in compiler-rt. Reviewed By: nhaehnle Differential Revision: https://reviews.llvm.org/D130406 | 3 年前 | |
Reland "[LLD] Remove global state in lld/COFF" after fixing asan and msan test failures Original commit description: [LLD] Remove global state in lld/COFF This patch removes globals from the lldCOFF library, by moving globals into a context class (COFFLinkingContext) and passing it around wherever it's needed. See https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html for context about removing globals from LLD. I also haven't moved the driver or config variables yet. Differential Revision: https://reviews.llvm.org/D109634 This reverts commit a2fd05ada9030eab2258fff25e77a05adccae128. Original commits were b4fa71eed34d967195514fe9b0a5211fca2bc5bc and e03c7e367adb8f228332e3c2ef8f45484597b719. | 4 年前 | |
Convert for_each to range-based for loops (NFC) | 3 年前 | |
Reland "[LLD] Remove global state in lld/COFF" after fixing asan and msan test failures Original commit description: [LLD] Remove global state in lld/COFF This patch removes globals from the lldCOFF library, by moving globals into a context class (COFFLinkingContext) and passing it around wherever it's needed. See https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html for context about removing globals from LLD. I also haven't moved the driver or config variables yet. Differential Revision: https://reviews.llvm.org/D109634 This reverts commit a2fd05ada9030eab2258fff25e77a05adccae128. Original commits were b4fa71eed34d967195514fe9b0a5211fca2bc5bc and e03c7e367adb8f228332e3c2ef8f45484597b719. | 4 年前 | |
[LLD] [COFF] Fix export directives in object files from -includeoptional When an object file contains an export directive, we normally do some amount of deferred processing of them at the end of the linking process. The -includeoptional option was handled after this, and any object files (defining new exports) weren't handled. Move the handling of the -includeoptional into the same late loop which does the fixups for e.g. export directives. Ideally, this would also be done for object files that are pulled in by the wrap options, and for mingw autoimports, but those changes require more modifications, to make them safe for potentially being executed multiple times. This fixes https://github.com/llvm/llvm-project/issues/57243. Differential Revision: https://reviews.llvm.org/D132361 (cherry picked from commit af39e6f6fc905f3c067f022fb44136779d2f9c84) | 3 年前 | |
[LLD] [COFF] Add support for a new, mingw specific embedded directive -exclude-symbols: This is an entirely new embedded directive - extending the GNU ld command line option --exclude-symbols to be usable in embedded directives too. (GNU ld.bfd also got support for the same new directive, currently in the latest git version, after the 2.39 branch.) This works as an inverse to the regular embedded dllexport directives, for cases when autoexport of all eligible symbols is performed. Differential Revision: https://reviews.llvm.org/D130120 (cherry picked from commit 5d513ef6cf4646e64bbb1d5f8610afd530964588) | 3 年前 | |
[LLD] [COFF] Add support for a new, mingw specific embedded directive -exclude-symbols: This is an entirely new embedded directive - extending the GNU ld command line option --exclude-symbols to be usable in embedded directives too. (GNU ld.bfd also got support for the same new directive, currently in the latest git version, after the 2.39 branch.) This works as an inverse to the regular embedded dllexport directives, for cases when autoexport of all eligible symbols is performed. Differential Revision: https://reviews.llvm.org/D130120 (cherry picked from commit 5d513ef6cf4646e64bbb1d5f8610afd530964588) | 3 年前 | |
Rename parallelForEachN to just parallelFor Patch created by running: rg -l parallelForEachN | xargs sed -i '' -c 's/parallelForEachN/parallelFor/' No behavior change. Differential Revision: https://reviews.llvm.org/D128140 | 3 年前 | |
Reland "[LLD] Remove global state in lld/COFF" after fixing asan and msan test failures Original commit description: [LLD] Remove global state in lld/COFF This patch removes globals from the lldCOFF library, by moving globals into a context class (COFFLinkingContext) and passing it around wherever it's needed. See https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html for context about removing globals from LLD. I also haven't moved the driver or config variables yet. Differential Revision: https://reviews.llvm.org/D109634 This reverts commit a2fd05ada9030eab2258fff25e77a05adccae128. Original commits were b4fa71eed34d967195514fe9b0a5211fca2bc5bc and e03c7e367adb8f228332e3c2ef8f45484597b719. | 4 年前 | |
Re-land [LLD] Remove global state in lldCommon Move all variables at file-scope or function-static-scope into a hosting structure (lld::CommonLinkerContext) that lives at lldMain()-scope. Drivers will inherit from this structure and add their own global state, in the same way as for the existing COFFLinkerContext. See discussion in https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html The previous land f860fe362282ed69b9d4503a20e5d20b9a041189 caused issues in https://lab.llvm.org/buildbot/#/builders/123/builds/8383, fixed by 22ee510dac9440a74b2e5b3fe3ff13ccdbf55af3. Differential Revision: https://reviews.llvm.org/D108850 | 4 年前 | |
[lld-link] Replace LazyObjFile with lazy ObjFile/BitcodeFile Similar to ELF 3a5fb57393c3bc77be9e7afc2ec9d4ec3c9bbf70. * previously when a LazyObjFile was extracted, a new ObjFile/BitcodeFile was created; now the file is reused, just with lazy cleared * avoid the confusing transfer of symbols from LazyObjFile to the new file * simpler code, smaller executable (5200+ bytes smaller on x86-64) * make eager parsing feasible (for parallel section/symbol table initialization) Reviewed By: aganea, rnk Differential Revision: https://reviews.llvm.org/D116434 | 4 年前 | |
Rename parallelForEachN to just parallelFor Patch created by running: rg -l parallelForEachN | xargs sed -i '' -c 's/parallelForEachN/parallelFor/' No behavior change. Differential Revision: https://reviews.llvm.org/D128140 | 3 年前 | |
Reland "[LLD] Remove global state in lld/COFF" after fixing asan and msan test failures Original commit description: [LLD] Remove global state in lld/COFF This patch removes globals from the lldCOFF library, by moving globals into a context class (COFFLinkingContext) and passing it around wherever it's needed. See https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html for context about removing globals from LLD. I also haven't moved the driver or config variables yet. Differential Revision: https://reviews.llvm.org/D109634 This reverts commit a2fd05ada9030eab2258fff25e77a05adccae128. Original commits were b4fa71eed34d967195514fe9b0a5211fca2bc5bc and e03c7e367adb8f228332e3c2ef8f45484597b719. | 4 年前 | |
[lld] Remove support for legacy pass manager This removes options for performing LTO with the legacy pass manager in LLD. Options that explicitly enable the new pass manager are retained as no-ops. Differential Revision: https://reviews.llvm.org/D123219 | 4 年前 | |
Reland "[LLD] Remove global state in lld/COFF" after fixing asan and msan test failures Original commit description: [LLD] Remove global state in lld/COFF This patch removes globals from the lldCOFF library, by moving globals into a context class (COFFLinkingContext) and passing it around wherever it's needed. See https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html for context about removing globals from LLD. I also haven't moved the driver or config variables yet. Differential Revision: https://reviews.llvm.org/D109634 This reverts commit a2fd05ada9030eab2258fff25e77a05adccae128. Original commits were b4fa71eed34d967195514fe9b0a5211fca2bc5bc and e03c7e367adb8f228332e3c2ef8f45484597b719. | 4 年前 | |
Rename parallelForEachN to just parallelFor Patch created by running: rg -l parallelForEachN | xargs sed -i '' -c 's/parallelForEachN/parallelFor/' No behavior change. Differential Revision: https://reviews.llvm.org/D128140 | 3 年前 | |
Reland "[LLD] Remove global state in lld/COFF" after fixing asan and msan test failures Original commit description: [LLD] Remove global state in lld/COFF This patch removes globals from the lldCOFF library, by moving globals into a context class (COFFLinkingContext) and passing it around wherever it's needed. See https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html for context about removing globals from LLD. I also haven't moved the driver or config variables yet. Differential Revision: https://reviews.llvm.org/D109634 This reverts commit a2fd05ada9030eab2258fff25e77a05adccae128. Original commits were b4fa71eed34d967195514fe9b0a5211fca2bc5bc and e03c7e367adb8f228332e3c2ef8f45484597b719. | 4 年前 | |
Reland "[LLD] Remove global state in lld/COFF" after fixing asan and msan test failures Original commit description: [LLD] Remove global state in lld/COFF This patch removes globals from the lldCOFF library, by moving globals into a context class (COFFLinkingContext) and passing it around wherever it's needed. See https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html for context about removing globals from LLD. I also haven't moved the driver or config variables yet. Differential Revision: https://reviews.llvm.org/D109634 This reverts commit a2fd05ada9030eab2258fff25e77a05adccae128. Original commits were b4fa71eed34d967195514fe9b0a5211fca2bc5bc and e03c7e367adb8f228332e3c2ef8f45484597b719. | 4 年前 | |
Reland "[LLD] Remove global state in lld/COFF" after fixing asan and msan test failures Original commit description: [LLD] Remove global state in lld/COFF This patch removes globals from the lldCOFF library, by moving globals into a context class (COFFLinkingContext) and passing it around wherever it's needed. See https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html for context about removing globals from LLD. I also haven't moved the driver or config variables yet. Differential Revision: https://reviews.llvm.org/D109634 This reverts commit a2fd05ada9030eab2258fff25e77a05adccae128. Original commits were b4fa71eed34d967195514fe9b0a5211fca2bc5bc and e03c7e367adb8f228332e3c2ef8f45484597b719. | 4 年前 | |
[LLD] [COFF] Add support for a new, mingw specific embedded directive -exclude-symbols: This is an entirely new embedded directive - extending the GNU ld command line option --exclude-symbols to be usable in embedded directives too. (GNU ld.bfd also got support for the same new directive, currently in the latest git version, after the 2.39 branch.) This works as an inverse to the regular embedded dllexport directives, for cases when autoexport of all eligible symbols is performed. Differential Revision: https://reviews.llvm.org/D130120 (cherry picked from commit 5d513ef6cf4646e64bbb1d5f8610afd530964588) | 3 年前 | |
[LLD] [COFF] Add support for a new, mingw specific embedded directive -exclude-symbols: This is an entirely new embedded directive - extending the GNU ld command line option --exclude-symbols to be usable in embedded directives too. (GNU ld.bfd also got support for the same new directive, currently in the latest git version, after the 2.39 branch.) This works as an inverse to the regular embedded dllexport directives, for cases when autoexport of all eligible symbols is performed. Differential Revision: https://reviews.llvm.org/D130120 (cherry picked from commit 5d513ef6cf4646e64bbb1d5f8610afd530964588) | 3 年前 | |
[LLD] [MinGW] Implement the --exclude-symbols option This adds support for the existing GNU ld command line option, which allows excluding individual symbols from autoexport (when linking a DLL and no symbols are marked explicitly as dllexported). Differential Revision: https://reviews.llvm.org/D130118 (cherry picked from commit d1da6469f9ea9b078276ee2e098241f0440468be) | 3 年前 | |
[LLD][COFF] Ignore DEBUG_S_XFGHASH_TYPE/VIRTUAL These are new debug types that ships with the latest Windows SDK and would warn and finally fail lld-link. The symbols seems to be related to Microsoft's XFG which is their version of CFG. We can't handle any of this yet, so for now we can just ignore these types so that lld doesn't fail with a new version of Windows SDK. Fixes: #56285 Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D129378 (cherry picked from commit 576375a2d670a7b1bd84b53b0187605a5f4ea0c8) | 3 年前 | |
Reland "[LLD] Remove global state in lld/COFF" after fixing asan and msan test failures Original commit description: [LLD] Remove global state in lld/COFF This patch removes globals from the lldCOFF library, by moving globals into a context class (COFFLinkingContext) and passing it around wherever it's needed. See https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html for context about removing globals from LLD. I also haven't moved the driver or config variables yet. Differential Revision: https://reviews.llvm.org/D109634 This reverts commit a2fd05ada9030eab2258fff25e77a05adccae128. Original commits were b4fa71eed34d967195514fe9b0a5211fca2bc5bc and e03c7e367adb8f228332e3c2ef8f45484597b719. | 4 年前 | |
Update the documents of the new LLD. This patch merges the documents for ELF and COFF into one and puts it into docs directory. llvm-svn: 263336 | 10 年前 | |
Reland: Make lld-link work in a non-MSVC shell, add /winsysroot: This relands 73e585e44d (and 0574b5fc657451), with a fix for the failing test (by using Optional<StringRef>s instead of making StringRef::empty() mean absence of value). Differential Revision: https://reviews.llvm.org/D118070 | 4 年前 | |
[lld-link] Replace LazyObjFile with lazy ObjFile/BitcodeFile Similar to ELF 3a5fb57393c3bc77be9e7afc2ec9d4ec3c9bbf70. * previously when a LazyObjFile was extracted, a new ObjFile/BitcodeFile was created; now the file is reused, just with lazy cleared * avoid the confusing transfer of symbols from LazyObjFile to the new file * simpler code, smaller executable (5200+ bytes smaller on x86-64) * make eager parsing feasible (for parallel section/symbol table initialization) Reviewed By: aganea, rnk Differential Revision: https://reviews.llvm.org/D116434 | 4 年前 | |
[lld] Add support for other demanglers other than Itanium LLVM core library supports demangling other mangled symbols other than itanium, such as D and Rust. LLD should use those demanglers in order to output pretty demangled symbols on error messages. Reviewed By: MaskRay, #lld-macho Differential Revision: https://reviews.llvm.org/D116279 | 4 年前 | |
[LLD][COFF] Fix writing a map file when range extension thunks are inserted Bug: An assertion fails: Assertion failed: isa<To>(Val) && "cast<Ty>() argument of incompatible type!", file C:\Users\<user>\prog\llvm\llvm-git-lld-bug\llvm\include\llvm/Support/Casting.h, line 578 Bug is triggered, if - a map file is requested with /MAP, and - Architecture is ARMv7, Thumb, and - a relative jump (branch instruction) is greater than 16 MiB (2^24) The reason for the Bug is: - a Thunk is created for the jump - a Symbol for the Thunk is created - of type DefinedSynthetic - in file Writer.cpp - in function getThunk - the Symbol has no name - when creating the map file, the name of the Symbol is queried - the function Symbol::computeName of the base class Symbol casts the this pointer to type DefinedCOFF (a derived type), but the acutal type is DefinedSynthetic - The in the llvm::cast an assertion fails Changes: - Modify regression test to trigger this bug - Give the symbol pointing to the thunk a name, to fix the bug - Add assertion, that only DefinedCOFF symbols are allowed to have an empty name, when the constructor of the base class Symbol is executed Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D133201 (cherry picked from commit 4e5a59a3839f54d928d37d49d4c4ddbb3f339b76) | 3 年前 | |
Reland "[LLD] Remove global state in lld/COFF" after fixing asan and msan test failures Original commit description: [LLD] Remove global state in lld/COFF This patch removes globals from the lldCOFF library, by moving globals into a context class (COFFLinkingContext) and passing it around wherever it's needed. See https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html for context about removing globals from LLD. I also haven't moved the driver or config variables yet. Differential Revision: https://reviews.llvm.org/D109634 This reverts commit a2fd05ada9030eab2258fff25e77a05adccae128. Original commits were b4fa71eed34d967195514fe9b0a5211fca2bc5bc and e03c7e367adb8f228332e3c2ef8f45484597b719. | 4 年前 | |
[LLD][COFF] Fix writing a map file when range extension thunks are inserted Bug: An assertion fails: Assertion failed: isa<To>(Val) && "cast<Ty>() argument of incompatible type!", file C:\Users\<user>\prog\llvm\llvm-git-lld-bug\llvm\include\llvm/Support/Casting.h, line 578 Bug is triggered, if - a map file is requested with /MAP, and - Architecture is ARMv7, Thumb, and - a relative jump (branch instruction) is greater than 16 MiB (2^24) The reason for the Bug is: - a Thunk is created for the jump - a Symbol for the Thunk is created - of type DefinedSynthetic - in file Writer.cpp - in function getThunk - the Symbol has no name - when creating the map file, the name of the Symbol is queried - the function Symbol::computeName of the base class Symbol casts the this pointer to type DefinedCOFF (a derived type), but the acutal type is DefinedSynthetic - The in the llvm::cast an assertion fails Changes: - Modify regression test to trigger this bug - Give the symbol pointing to the thunk a name, to fix the bug - Add assertion, that only DefinedCOFF symbols are allowed to have an empty name, when the constructor of the base class Symbol is executed Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D133201 (cherry picked from commit 4e5a59a3839f54d928d37d49d4c4ddbb3f339b76) | 3 年前 | |
Reland "[LLD] Remove global state in lld/COFF" after fixing asan and msan test failures Original commit description: [LLD] Remove global state in lld/COFF This patch removes globals from the lldCOFF library, by moving globals into a context class (COFFLinkingContext) and passing it around wherever it's needed. See https://lists.llvm.org/pipermail/llvm-dev/2021-June/151184.html for context about removing globals from LLD. I also haven't moved the driver or config variables yet. Differential Revision: https://reviews.llvm.org/D109634 This reverts commit a2fd05ada9030eab2258fff25e77a05adccae128. Original commits were b4fa71eed34d967195514fe9b0a5211fca2bc5bc and e03c7e367adb8f228332e3c2ef8f45484597b719. | 4 年前 |
See docs/NewLLD.rst