From 3a4d0a7c17d90d78d299122b44576576da7d9311 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Sun, 28 Feb 2016 00:10:58 +0000 Subject: [PATCH] Remove the old ELF linker. I think it is clear by now that the new linker is viable. llvm-svn: 262158 --- lld/include/lld/Core/LinkingContext.h | 3 +- lld/include/lld/Core/Reader.h | 3 - lld/include/lld/Core/Writer.h | 2 - lld/include/lld/Driver/Driver.h | 37 - lld/include/lld/ReaderWriter/ELFLinkingContext.h | 422 ------ lld/lib/Driver/CMakeLists.txt | 11 - lld/lib/Driver/GnuLdDriver.cpp | 782 ----------- lld/lib/Driver/GnuLdOptions.td | 378 ------ lld/lib/Driver/UniversalDriver.cpp | 4 - lld/lib/ReaderWriter/CMakeLists.txt | 1 - .../ELF/AArch64/AArch64DynamicLibraryWriter.h | 45 - .../ELF/AArch64/AArch64ExecutableWriter.cpp | 52 - .../ELF/AArch64/AArch64ExecutableWriter.h | 38 - .../ELF/AArch64/AArch64LinkingContext.cpp | 45 - .../ELF/AArch64/AArch64LinkingContext.h | 101 -- .../ELF/AArch64/AArch64RelocationHandler.cpp | 556 -------- .../ELF/AArch64/AArch64RelocationHandler.h | 36 - .../ELF/AArch64/AArch64RelocationPass.cpp | 613 --------- .../ELF/AArch64/AArch64RelocationPass.h | 32 - .../ELF/AArch64/AArch64SectionChunks.cpp | 39 - .../ELF/AArch64/AArch64SectionChunks.h | 37 - .../ELF/AArch64/AArch64TargetHandler.cpp | 51 - .../ELF/AArch64/AArch64TargetHandler.h | 90 -- lld/lib/ReaderWriter/ELF/AArch64/CMakeLists.txt | 14 - lld/lib/ReaderWriter/ELF/AArch64/TODO.rst | 15 - .../ReaderWriter/ELF/ARM/ARMDynamicLibraryWriter.h | 49 - lld/lib/ReaderWriter/ELF/ARM/ARMELFFile.h | 154 --- lld/lib/ReaderWriter/ELF/ARM/ARMELFWriters.h | 120 -- lld/lib/ReaderWriter/ELF/ARM/ARMExecutableWriter.h | 68 - lld/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.cpp | 64 - lld/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.h | 80 -- .../ReaderWriter/ELF/ARM/ARMRelocationHandler.cpp | 680 ---------- .../ReaderWriter/ELF/ARM/ARMRelocationHandler.h | 35 - lld/lib/ReaderWriter/ELF/ARM/ARMRelocationPass.cpp | 986 -------------- lld/lib/ReaderWriter/ELF/ARM/ARMRelocationPass.h | 31 - lld/lib/ReaderWriter/ELF/ARM/ARMSymbolTable.h | 59 - lld/lib/ReaderWriter/ELF/ARM/ARMTargetHandler.cpp | 32 - lld/lib/ReaderWriter/ELF/ARM/ARMTargetHandler.h | 174 --- lld/lib/ReaderWriter/ELF/ARM/CMakeLists.txt | 12 - lld/lib/ReaderWriter/ELF/ARM/TODO.rst | 21 - lld/lib/ReaderWriter/ELF/Atoms.cpp | 297 ---- lld/lib/ReaderWriter/ELF/Atoms.h | 495 ------- lld/lib/ReaderWriter/ELF/CMakeLists.txt | 29 - lld/lib/ReaderWriter/ELF/Chunk.h | 111 -- lld/lib/ReaderWriter/ELF/DynamicFile.cpp | 146 -- lld/lib/ReaderWriter/ELF/DynamicFile.h | 59 - lld/lib/ReaderWriter/ELF/DynamicLibraryWriter.h | 86 -- lld/lib/ReaderWriter/ELF/ELFFile.cpp | 830 ------------ lld/lib/ReaderWriter/ELF/ELFFile.h | 395 ------ lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp | 263 ---- lld/lib/ReaderWriter/ELF/ELFReader.h | 47 - lld/lib/ReaderWriter/ELF/ExecutableWriter.h | 157 --- lld/lib/ReaderWriter/ELF/FileCommon.cpp | 66 - lld/lib/ReaderWriter/ELF/FileCommon.h | 45 - lld/lib/ReaderWriter/ELF/HeaderChunks.cpp | 205 --- lld/lib/ReaderWriter/ELF/HeaderChunks.h | 154 --- lld/lib/ReaderWriter/ELF/Hexagon/CMakeLists.txt | 11 - .../ELF/Hexagon/HexagonDynamicLibraryWriter.h | 67 - lld/lib/ReaderWriter/ELF/Hexagon/HexagonELFFile.h | 149 --- .../ReaderWriter/ELF/Hexagon/HexagonEncodings.h | 638 --------- .../ELF/Hexagon/HexagonExecutableWriter.h | 73 - .../ELF/Hexagon/HexagonLinkingContext.cpp | 47 - .../ELF/Hexagon/HexagonLinkingContext.h | 61 - .../ELF/Hexagon/HexagonRelocationHandler.cpp | 330 ----- .../ELF/Hexagon/HexagonRelocationHandler.h | 33 - .../ELF/Hexagon/HexagonTargetHandler.cpp | 383 ------ .../ELF/Hexagon/HexagonTargetHandler.h | 134 -- lld/lib/ReaderWriter/ELF/Mips/CMakeLists.txt | 18 - .../ReaderWriter/ELF/Mips/MipsAbiInfoHandler.cpp | 675 ---------- lld/lib/ReaderWriter/ELF/Mips/MipsAbiInfoHandler.h | 83 -- .../ReaderWriter/ELF/Mips/MipsCtorsOrderPass.cpp | 76 -- lld/lib/ReaderWriter/ELF/Mips/MipsCtorsOrderPass.h | 25 - lld/lib/ReaderWriter/ELF/Mips/MipsDynamicTable.h | 124 -- lld/lib/ReaderWriter/ELF/Mips/MipsELFFile.cpp | 348 ----- lld/lib/ReaderWriter/ELF/Mips/MipsELFFile.h | 126 -- lld/lib/ReaderWriter/ELF/Mips/MipsELFWriters.cpp | 292 ---- lld/lib/ReaderWriter/ELF/Mips/MipsELFWriters.h | 102 -- .../ReaderWriter/ELF/Mips/MipsLinkingContext.cpp | 164 --- lld/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.h | 56 - .../ELF/Mips/MipsRelocationHandler.cpp | 687 ---------- .../ReaderWriter/ELF/Mips/MipsRelocationHandler.h | 31 - .../ReaderWriter/ELF/Mips/MipsRelocationPass.cpp | 1415 -------------------- lld/lib/ReaderWriter/ELF/Mips/MipsRelocationPass.h | 25 - .../ReaderWriter/ELF/Mips/MipsSectionChunks.cpp | 264 ---- lld/lib/ReaderWriter/ELF/Mips/MipsSectionChunks.h | 150 --- .../ReaderWriter/ELF/Mips/MipsTargetHandler.cpp | 166 --- lld/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.h | 73 - lld/lib/ReaderWriter/ELF/Mips/MipsTargetLayout.cpp | 111 -- lld/lib/ReaderWriter/ELF/Mips/MipsTargetLayout.h | 71 - lld/lib/ReaderWriter/ELF/OrderPass.h | 31 - lld/lib/ReaderWriter/ELF/OutputELFWriter.cpp | 514 ------- lld/lib/ReaderWriter/ELF/OutputELFWriter.h | 153 --- lld/lib/ReaderWriter/ELF/Reader.cpp | 43 - lld/lib/ReaderWriter/ELF/SectionChunks.cpp | 996 -------------- lld/lib/ReaderWriter/ELF/SectionChunks.h | 616 --------- lld/lib/ReaderWriter/ELF/SegmentChunks.cpp | 516 ------- lld/lib/ReaderWriter/ELF/SegmentChunks.h | 246 ---- lld/lib/ReaderWriter/ELF/TODO.txt | 18 - lld/lib/ReaderWriter/ELF/TargetHandler.h | 35 - lld/lib/ReaderWriter/ELF/TargetLayout.cpp | 747 ----------- lld/lib/ReaderWriter/ELF/TargetLayout.h | 327 ----- lld/lib/ReaderWriter/ELF/Writer.cpp | 23 - lld/lib/ReaderWriter/ELF/Writer.h | 35 - lld/lib/ReaderWriter/ELF/X86/CMakeLists.txt | 11 - .../ReaderWriter/ELF/X86/X86DynamicLibraryWriter.h | 44 - lld/lib/ReaderWriter/ELF/X86/X86ExecutableWriter.h | 39 - lld/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp | 39 - lld/lib/ReaderWriter/ELF/X86/X86LinkingContext.h | 44 - .../ReaderWriter/ELF/X86/X86RelocationHandler.cpp | 54 - .../ReaderWriter/ELF/X86/X86RelocationHandler.h | 28 - lld/lib/ReaderWriter/ELF/X86/X86TargetHandler.cpp | 36 - lld/lib/ReaderWriter/ELF/X86/X86TargetHandler.h | 48 - lld/lib/ReaderWriter/ELF/X86_64/CMakeLists.txt | 17 - .../ELF/X86_64/ExampleSubTarget/CMakeLists.txt | 11 - .../ExampleSubTarget/ExampleLinkingContext.cpp | 35 - .../ExampleSubTarget/ExampleLinkingContext.h | 31 - .../ExampleSubTarget/ExampleTargetHandler.cpp | 22 - .../X86_64/ExampleSubTarget/ExampleTargetHandler.h | 31 - lld/lib/ReaderWriter/ELF/X86_64/TODO.rst | 46 - .../ELF/X86_64/X86_64DynamicLibraryWriter.h | 45 - .../ELF/X86_64/X86_64ExecutableWriter.h | 58 - .../ELF/X86_64/X86_64LinkingContext.cpp | 50 - .../ReaderWriter/ELF/X86_64/X86_64LinkingContext.h | 103 -- .../ELF/X86_64/X86_64RelocationHandler.cpp | 147 -- .../ELF/X86_64/X86_64RelocationHandler.h | 37 - .../ELF/X86_64/X86_64RelocationPass.cpp | 514 ------- .../ReaderWriter/ELF/X86_64/X86_64RelocationPass.h | 32 - .../ELF/X86_64/X86_64SectionChunks.cpp | 37 - .../ReaderWriter/ELF/X86_64/X86_64SectionChunks.h | 36 - .../ELF/X86_64/X86_64TargetHandler.cpp | 34 - .../ReaderWriter/ELF/X86_64/X86_64TargetHandler.h | 104 -- lld/test/Driver/def-lib-search.test | 8 - lld/test/Driver/flavor-option.test | 8 - lld/test/Driver/lib-search.test | 24 - lld/test/Driver/so-whole-archive.test | 63 - lld/test/Driver/trivial-driver.test | 5 - lld/test/Driver/undef-basic.objtxt | 22 - lld/test/old-elf/AArch64/Inputs/fn.c | 4 - lld/test/old-elf/AArch64/Inputs/fn.o | Bin 899 -> 0 bytes .../old-elf/AArch64/Inputs/general-dyn-tls-0.yaml | 64 - lld/test/old-elf/AArch64/Inputs/initfini-option.c | 12 - lld/test/old-elf/AArch64/Inputs/initfini-option.o | Bin 1552 -> 0 bytes lld/test/old-elf/AArch64/Inputs/initfini.c | 13 - lld/test/old-elf/AArch64/Inputs/initfini.o | Bin 2056 -> 0 bytes .../old-elf/AArch64/Inputs/initial-exec-tls-1.yaml | 77 -- lld/test/old-elf/AArch64/Inputs/main.c | 4 - lld/test/old-elf/AArch64/Inputs/main.o | Bin 1064 -> 0 bytes .../old-elf/AArch64/Inputs/no-interp-section.c | 1 - .../old-elf/AArch64/Inputs/no-interp-section.o | Bin 903 -> 0 bytes lld/test/old-elf/AArch64/Inputs/zerosizedsection.o | Bin 816 -> 0 bytes lld/test/old-elf/AArch64/Inputs/zerosizedsection.s | 3 - lld/test/old-elf/AArch64/defsym.test | 22 - .../AArch64/dontignorezerosize-sections.test | 9 - lld/test/old-elf/AArch64/dynamicvars.test | 113 -- .../old-elf/AArch64/dynlib-nointerp-section.test | 5 - lld/test/old-elf/AArch64/general-dyn-tls-0.test | 103 -- lld/test/old-elf/AArch64/initfini.test | 23 - lld/test/old-elf/AArch64/initial-exec-tls-0.test | 146 -- lld/test/old-elf/AArch64/local-tls.test | 184 --- lld/test/old-elf/AArch64/rel-abs16-overflow.test | 44 - lld/test/old-elf/AArch64/rel-abs16.test | 53 - lld/test/old-elf/AArch64/rel-abs32-overflow.test | 53 - lld/test/old-elf/AArch64/rel-abs32.test | 59 - lld/test/old-elf/AArch64/rel-abs64.test | 59 - .../AArch64/rel-adr_prel_lo21-overflow.test | 45 - lld/test/old-elf/AArch64/rel-adr_prel_lo21.test | 51 - .../AArch64/rel-adr_prel_pg_hi21-overflow.test | 45 - lld/test/old-elf/AArch64/rel-adr_prel_pg_hi21.test | 52 - lld/test/old-elf/AArch64/rel-bad.test | 44 - lld/test/old-elf/AArch64/rel-prel16-overflow.test | 53 - lld/test/old-elf/AArch64/rel-prel16.test | 59 - lld/test/old-elf/AArch64/rel-prel32-overflow.test | 53 - lld/test/old-elf/AArch64/rel-prel32.test | 59 - lld/test/old-elf/AArch64/rel-prel64.test | 59 - lld/test/old-elf/ARM/Inputs/fn.c | 1 - lld/test/old-elf/ARM/Inputs/libfn.so | Bin 4972 -> 0 bytes lld/test/old-elf/ARM/Inputs/libobj.so | Bin 5067 -> 0 bytes lld/test/old-elf/ARM/Inputs/obj.c | 4 - lld/test/old-elf/ARM/arm-symbols.test | 51 - lld/test/old-elf/ARM/defsym.test | 50 - lld/test/old-elf/ARM/dynamic-symbols.test | 83 -- lld/test/old-elf/ARM/entry-point.test | 113 -- lld/test/old-elf/ARM/exidx.test | 254 ---- lld/test/old-elf/ARM/header-flags.test | 57 - lld/test/old-elf/ARM/mapping-code-model.test | 160 --- lld/test/old-elf/ARM/mapping-symbols.test | 122 -- lld/test/old-elf/ARM/missing-symbol.test | 38 - lld/test/old-elf/ARM/plt-dynamic.test | 200 --- lld/test/old-elf/ARM/plt-ifunc-interwork.test | 396 ------ lld/test/old-elf/ARM/plt-ifunc-mapping.test | 109 -- lld/test/old-elf/ARM/rel-abs32.test | 58 - lld/test/old-elf/ARM/rel-arm-call.test | 112 -- lld/test/old-elf/ARM/rel-arm-jump24-veneer-b.test | 122 -- lld/test/old-elf/ARM/rel-arm-jump24-veneer-bl.test | 120 -- lld/test/old-elf/ARM/rel-arm-jump24.test | 108 -- lld/test/old-elf/ARM/rel-arm-mov.test | 64 - lld/test/old-elf/ARM/rel-arm-prel31.test | 90 -- lld/test/old-elf/ARM/rel-arm-target1.test | 114 -- lld/test/old-elf/ARM/rel-arm-thm-interwork.test | 121 -- lld/test/old-elf/ARM/rel-base-prel.test | 61 - lld/test/old-elf/ARM/rel-copy.test | 60 - lld/test/old-elf/ARM/rel-glob-dat.test | 57 - lld/test/old-elf/ARM/rel-got-brel.test | 63 - lld/test/old-elf/ARM/rel-group-relocs.test | 71 - lld/test/old-elf/ARM/rel-ifunc.test | 101 -- lld/test/old-elf/ARM/rel-jump-slot.test | 50 - lld/test/old-elf/ARM/rel-rel32.test | 56 - lld/test/old-elf/ARM/rel-thm-call.test | 114 -- lld/test/old-elf/ARM/rel-thm-jump11.test | 209 --- lld/test/old-elf/ARM/rel-thm-jump24-veneer.test | 120 -- lld/test/old-elf/ARM/rel-thm-jump24.test | 110 -- lld/test/old-elf/ARM/rel-thm-mov.test | 70 - lld/test/old-elf/ARM/rel-tls-ie32.test | 125 -- lld/test/old-elf/ARM/rel-tls-le32.test | 73 - lld/test/old-elf/ARM/rel-v4bx.test | 72 - lld/test/old-elf/ARM/thm-symbols.test | 51 - lld/test/old-elf/ARM/two-got-for-symbol.test | 62 - lld/test/old-elf/ARM/undef-lazy-symbol.test | 133 -- lld/test/old-elf/ARM/veneer-mapping.test | 92 -- lld/test/old-elf/ARM/weak-branch.test | 221 --- lld/test/old-elf/Hexagon/Inputs/dynobj-data.c | 3 - lld/test/old-elf/Hexagon/Inputs/dynobj-data.o | Bin 916 -> 0 bytes lld/test/old-elf/Hexagon/Inputs/dynobj.c | 26 - lld/test/old-elf/Hexagon/Inputs/dynobj.o | Bin 1288 -> 0 bytes lld/test/old-elf/Hexagon/Inputs/got-plt-order.c | 6 - lld/test/old-elf/Hexagon/Inputs/got-plt-order.o | Bin 964 -> 0 bytes lld/test/old-elf/Hexagon/Inputs/libMaxAlignment.a | Bin 1010 -> 0 bytes lld/test/old-elf/Hexagon/Inputs/sda-base.o | Bin 1469 -> 0 bytes lld/test/old-elf/Hexagon/Inputs/sdata1.c | 3 - lld/test/old-elf/Hexagon/Inputs/sdata1.o | Bin 684 -> 0 bytes lld/test/old-elf/Hexagon/Inputs/sdata2.c | 6 - lld/test/old-elf/Hexagon/Inputs/sdata2.o | Bin 829 -> 0 bytes lld/test/old-elf/Hexagon/Inputs/use-shared.hexagon | Bin 872 -> 0 bytes lld/test/old-elf/Hexagon/dynlib-data.test | 9 - lld/test/old-elf/Hexagon/dynlib-gotoff.test | 128 -- lld/test/old-elf/Hexagon/dynlib-hash.test | 9 - lld/test/old-elf/Hexagon/dynlib-rela.test | 9 - lld/test/old-elf/Hexagon/dynlib-syms.test | 7 - lld/test/old-elf/Hexagon/dynlib.test | 36 - .../old-elf/Hexagon/hexagon-got-plt-order.test | 5 - lld/test/old-elf/Hexagon/hexagon-plt-setup.test | 12 - lld/test/old-elf/Hexagon/maxalignment.test | 8 - lld/test/old-elf/Hexagon/rela-order.test | 9 - lld/test/old-elf/Hexagon/sda-base.test | 4 - lld/test/old-elf/Hexagon/zerofillquick-sdata.test | 18 - lld/test/old-elf/Inputs/abs-test.i386 | Bin 504 -> 0 bytes lld/test/old-elf/Inputs/allowduplicates.objtxt | 12 - lld/test/old-elf/Inputs/bar.o.x86-64 | Bin 1240 -> 0 bytes lld/test/old-elf/Inputs/branch-test.hexagon | Bin 700 -> 0 bytes lld/test/old-elf/Inputs/branch-test.ppc | Bin 852 -> 0 bytes .../old-elf/Inputs/consecutive-weak-defs.o.yaml | 65 - lld/test/old-elf/Inputs/constants-merge.x86-64 | Bin 1232 -> 0 bytes lld/test/old-elf/Inputs/constdata.x86-64 | Bin 1688 -> 0 bytes lld/test/old-elf/Inputs/foo.o.x86-64 | Bin 1240 -> 0 bytes lld/test/old-elf/Inputs/globalconst.c | 2 - lld/test/old-elf/Inputs/globalconst.o.x86-64 | Bin 1072 -> 0 bytes lld/test/old-elf/Inputs/gotpcrel.S | 11 - lld/test/old-elf/Inputs/gotpcrel.x86-64 | Bin 904 -> 0 bytes lld/test/old-elf/Inputs/group-cmd-search-1.ls | 1 - lld/test/old-elf/Inputs/group-cmd-search-2.ls | 1 - lld/test/old-elf/Inputs/group-cmd-search-3.ls | 1 - lld/test/old-elf/Inputs/ifunc.S | 21 - lld/test/old-elf/Inputs/ifunc.cpp | 3 - lld/test/old-elf/Inputs/ifunc.cpp.x86-64 | Bin 1224 -> 0 bytes lld/test/old-elf/Inputs/ifunc.x86-64 | Bin 912 -> 0 bytes lld/test/old-elf/Inputs/libfnarchive.a | Bin 2656 -> 0 bytes lld/test/old-elf/Inputs/libifunc.x86-64.so | Bin 2512 -> 0 bytes lld/test/old-elf/Inputs/libundef.so | Bin 11128 -> 0 bytes lld/test/old-elf/Inputs/libweaksym.so | Bin 2160 -> 0 bytes .../old-elf/Inputs/main-with-global-def.o.yaml | 55 - lld/test/old-elf/Inputs/mainobj.x86_64 | Bin 1360 -> 0 bytes .../old-elf/Inputs/no-unique-section-names.x86-64 | Bin 2128 -> 0 bytes lld/test/old-elf/Inputs/object-test.elf-hexagon | Bin 1532 -> 0 bytes lld/test/old-elf/Inputs/object-test.elf-i386 | Bin 1784 -> 0 bytes lld/test/old-elf/Inputs/phdr.i386 | Bin 17536 -> 0 bytes .../Inputs/quickdata-sort-test.o.elf-hexagon | Bin 1385 -> 0 bytes .../Inputs/quickdata-sortcommon-test.o.elf-hexagon | Bin 1469 -> 0 bytes lld/test/old-elf/Inputs/quickdata-test.elf-hexagon | Bin 891 -> 0 bytes lld/test/old-elf/Inputs/reloc-test.elf-i386 | Bin 1076 -> 0 bytes lld/test/old-elf/Inputs/reloc-xb.x86 | Bin 568 -> 0 bytes lld/test/old-elf/Inputs/reloc-xt.x86 | Bin 548 -> 0 bytes lld/test/old-elf/Inputs/relocs-dynamic.x86-64 | Bin 864 -> 0 bytes lld/test/old-elf/Inputs/relocs.x86-64 | Bin 1536 -> 0 bytes lld/test/old-elf/Inputs/responsefile | 1 - lld/test/old-elf/Inputs/rodata-test.hexagon | Bin 669 -> 0 bytes lld/test/old-elf/Inputs/rodata-test.i386 | Bin 537 -> 0 bytes lld/test/old-elf/Inputs/rodata.c | 4 - lld/test/old-elf/Inputs/rodata.o | Bin 1568 -> 0 bytes lld/test/old-elf/Inputs/section-test.i386 | Bin 717 -> 0 bytes lld/test/old-elf/Inputs/shared.c | 16 - lld/test/old-elf/Inputs/shared.so-x86-64 | Bin 7536 -> 0 bytes lld/test/old-elf/Inputs/shndx.o-x86_64 | Bin 624 -> 0 bytes lld/test/old-elf/Inputs/stripped-empty.x86_64 | Bin 416 -> 0 bytes lld/test/old-elf/Inputs/target-test.hexagon | Bin 676 -> 0 bytes lld/test/old-elf/Inputs/target-test.ppc | Bin 552 -> 0 bytes lld/test/old-elf/Inputs/tls-tbss-size.yaml | 59 - lld/test/old-elf/Inputs/tls.S | 50 - lld/test/old-elf/Inputs/tls.c | 11 - lld/test/old-elf/Inputs/tls.x86-64 | Bin 1424 -> 0 bytes lld/test/old-elf/Inputs/tlsAddr.x86-64 | Bin 1752 -> 0 bytes lld/test/old-elf/Inputs/tlsaddr.c | 8 - lld/test/old-elf/Inputs/undef-from-main-so.c | 1 - lld/test/old-elf/Inputs/undef-from-main.c | 5 - lld/test/old-elf/Inputs/undef-pc32.o | Bin 1248 -> 0 bytes lld/test/old-elf/Inputs/undef.o | Bin 1264 -> 0 bytes lld/test/old-elf/Inputs/undef2-so.o.yaml | 49 - lld/test/old-elf/Inputs/use-shared-32s.c | 8 - lld/test/old-elf/Inputs/use-shared-32s.x86-64 | Bin 1336 -> 0 bytes lld/test/old-elf/Inputs/use-shared.c | 7 - lld/test/old-elf/Inputs/use-shared.x86-64 | Bin 1376 -> 0 bytes lld/test/old-elf/Inputs/weaksym.o | Bin 840 -> 0 bytes lld/test/old-elf/Inputs/writersyms.o | Bin 868 -> 0 bytes lld/test/old-elf/Inputs/x86-64-relocs.S | 12 - lld/test/old-elf/Mips/abi-flags-01.test | 35 - lld/test/old-elf/Mips/abi-flags-02.test | 92 -- lld/test/old-elf/Mips/abi-flags-03.test | 149 --- lld/test/old-elf/Mips/abi-flags-04.test | 125 -- lld/test/old-elf/Mips/abi-flags-05.test | 186 --- lld/test/old-elf/Mips/abi-flags-06.test | 79 -- lld/test/old-elf/Mips/abi-flags-07.test | 60 - lld/test/old-elf/Mips/abi-flags-08.test | 71 - lld/test/old-elf/Mips/abi-flags-09.test | 67 - lld/test/old-elf/Mips/abi-flags-10.test | 60 - lld/test/old-elf/Mips/abi-flags-11.test | 59 - lld/test/old-elf/Mips/base-address-64.test | 80 -- lld/test/old-elf/Mips/base-address.test | 95 -- lld/test/old-elf/Mips/ctors-order.test | 164 --- lld/test/old-elf/Mips/driver-hash-style.test | 15 - lld/test/old-elf/Mips/dt-textrel-64.test | 74 - lld/test/old-elf/Mips/dt-textrel.test | 74 - lld/test/old-elf/Mips/dynamic-linking.test | 22 - lld/test/old-elf/Mips/dynamic-sym.test | 41 - lld/test/old-elf/Mips/dynlib-dynamic.test | 110 -- lld/test/old-elf/Mips/dynlib-dynsym-micro.test | 208 --- lld/test/old-elf/Mips/dynlib-dynsym.test | 202 --- lld/test/old-elf/Mips/dynlib-fileheader-64.test | 72 - .../old-elf/Mips/dynlib-fileheader-micro-64.test | 75 -- lld/test/old-elf/Mips/dynlib-fileheader-micro.test | 79 -- lld/test/old-elf/Mips/dynlib-fileheader.test | 76 -- lld/test/old-elf/Mips/dynsym-table-1.test | 127 -- lld/test/old-elf/Mips/dynsym-table-2.test | 105 -- lld/test/old-elf/Mips/e-flags-merge-1-64.test | 30 - lld/test/old-elf/Mips/e-flags-merge-1.test | 56 - lld/test/old-elf/Mips/e-flags-merge-10.test | 43 - lld/test/old-elf/Mips/e-flags-merge-11.test | 43 - lld/test/old-elf/Mips/e-flags-merge-12.test | 44 - lld/test/old-elf/Mips/e-flags-merge-2-64.test | 33 - lld/test/old-elf/Mips/e-flags-merge-2.test | 35 - lld/test/old-elf/Mips/e-flags-merge-3-64.test | 130 -- lld/test/old-elf/Mips/e-flags-merge-3.test | 134 -- lld/test/old-elf/Mips/e-flags-merge-4-64.test | 64 - lld/test/old-elf/Mips/e-flags-merge-4.test | 65 - lld/test/old-elf/Mips/e-flags-merge-5-64.test | 42 - lld/test/old-elf/Mips/e-flags-merge-5.test | 42 - lld/test/old-elf/Mips/e-flags-merge-6-64.test | 79 -- lld/test/old-elf/Mips/e-flags-merge-6.test | 80 -- lld/test/old-elf/Mips/e-flags-merge-7-64.test | 42 - lld/test/old-elf/Mips/e-flags-merge-7.test | 42 - lld/test/old-elf/Mips/e-flags-merge-8.test | 65 - lld/test/old-elf/Mips/e-flags-merge-9.test | 43 - lld/test/old-elf/Mips/entry-name.test | 26 - lld/test/old-elf/Mips/exe-dynamic.test | 110 -- lld/test/old-elf/Mips/exe-dynsym-micro.test | 94 -- lld/test/old-elf/Mips/exe-dynsym.test | 91 -- lld/test/old-elf/Mips/exe-fileheader-02.test | 62 - lld/test/old-elf/Mips/exe-fileheader-03.test | 72 - lld/test/old-elf/Mips/exe-fileheader-64.test | 66 - lld/test/old-elf/Mips/exe-fileheader-be-64.test | 60 - lld/test/old-elf/Mips/exe-fileheader-be.test | 60 - lld/test/old-elf/Mips/exe-fileheader-micro-64.test | 68 - lld/test/old-elf/Mips/exe-fileheader-micro.test | 69 - lld/test/old-elf/Mips/exe-fileheader-n32.test | 65 - lld/test/old-elf/Mips/exe-fileheader.test | 105 -- lld/test/old-elf/Mips/exe-got-micro.test | 115 -- lld/test/old-elf/Mips/exe-got.test | 116 -- lld/test/old-elf/Mips/got-page-32-micro.test | 251 ---- lld/test/old-elf/Mips/got-page-32.test | 244 ---- lld/test/old-elf/Mips/got-page-64-micro.test | 210 --- lld/test/old-elf/Mips/got-page-64.test | 203 --- lld/test/old-elf/Mips/got16-2.test | 73 - lld/test/old-elf/Mips/got16-micro.test | 165 --- lld/test/old-elf/Mips/got16.test | 196 --- lld/test/old-elf/Mips/gotsym.test | 43 - lld/test/old-elf/Mips/gp-sym-1-micro.test | 88 -- lld/test/old-elf/Mips/gp-sym-1.test | 86 -- lld/test/old-elf/Mips/gp-sym-2.test | 103 -- lld/test/old-elf/Mips/hilo16-1.test | 40 - lld/test/old-elf/Mips/hilo16-2.test | 70 - lld/test/old-elf/Mips/hilo16-3-overflow.test | 44 - lld/test/old-elf/Mips/hilo16-3.test | 74 - lld/test/old-elf/Mips/hilo16-4.test | 93 -- lld/test/old-elf/Mips/hilo16-5.test | 103 -- lld/test/old-elf/Mips/hilo16-8-micro.test | 81 -- lld/test/old-elf/Mips/hilo16-9-micro.test | 142 -- lld/test/old-elf/Mips/initfini-micro.test | 45 - lld/test/old-elf/Mips/interpreter-64.test | 26 - lld/test/old-elf/Mips/interpreter-n32.test | 27 - lld/test/old-elf/Mips/interpreter.test | 26 - lld/test/old-elf/Mips/invalid-reginfo.test | 28 - lld/test/old-elf/Mips/jalx-align-err.test | 46 - lld/test/old-elf/Mips/jalx-jalr.test | 47 - lld/test/old-elf/Mips/jalx.test | 71 - lld/test/old-elf/Mips/jump-fix-err.test | 45 - lld/test/old-elf/Mips/la25-stub-be.test | 113 -- lld/test/old-elf/Mips/la25-stub-micro-be.test | 121 -- lld/test/old-elf/Mips/la25-stub-micro.test | 136 -- lld/test/old-elf/Mips/la25-stub-npic-01.test | 153 --- lld/test/old-elf/Mips/la25-stub-npic-02.test | 123 -- lld/test/old-elf/Mips/la25-stub-npic-shared.test | 152 --- lld/test/old-elf/Mips/la25-stub-pic.test | 144 -- lld/test/old-elf/Mips/la25-stub.test | 133 -- lld/test/old-elf/Mips/mips-options-01.test | 34 - lld/test/old-elf/Mips/mips-options-02.test | 104 -- lld/test/old-elf/Mips/mips-options-03.test | 41 - lld/test/old-elf/Mips/mips-options-04.test | 77 -- lld/test/old-elf/Mips/mips-options-05.test | 119 -- lld/test/old-elf/Mips/mips-options-gp0.test | 77 -- lld/test/old-elf/Mips/n32-rela-chain.test | 68 - lld/test/old-elf/Mips/n64-rel-chain.test | 204 --- lld/test/old-elf/Mips/n64-rel-shift.test | 48 - lld/test/old-elf/Mips/opt-emulation.test | 43 - lld/test/old-elf/Mips/pc23-range.test | 54 - lld/test/old-elf/Mips/plt-entry-mixed-1.test | 114 -- lld/test/old-elf/Mips/plt-entry-mixed-2.test | 93 -- lld/test/old-elf/Mips/plt-entry-mixed-3.test | 98 -- lld/test/old-elf/Mips/plt-entry-mixed-4.test | 85 -- lld/test/old-elf/Mips/plt-entry-r6-be.test | 109 -- lld/test/old-elf/Mips/plt-entry-r6.test | 109 -- lld/test/old-elf/Mips/plt-header-be.test | 104 -- lld/test/old-elf/Mips/plt-header-micro-be.test | 105 -- lld/test/old-elf/Mips/plt-header-micro.test | 108 -- lld/test/old-elf/Mips/plt-header-mixed.test | 105 -- lld/test/old-elf/Mips/plt-header.test | 99 -- lld/test/old-elf/Mips/r26-1-micro.test | 131 -- lld/test/old-elf/Mips/r26-1.test | 132 -- lld/test/old-elf/Mips/r26-2-micro.test | 31 - lld/test/old-elf/Mips/r26-2.test | 31 - lld/test/old-elf/Mips/reginfo-01.test | 30 - lld/test/old-elf/Mips/reginfo-02.test | 107 -- lld/test/old-elf/Mips/reginfo-03.test | 45 - lld/test/old-elf/Mips/reginfo-04.test | 81 -- lld/test/old-elf/Mips/reginfo-05.test | 123 -- lld/test/old-elf/Mips/rel-16-overflow.test | 45 - lld/test/old-elf/Mips/rel-16.test | 51 - lld/test/old-elf/Mips/rel-32-be.test | 60 - lld/test/old-elf/Mips/rel-32.test | 59 - lld/test/old-elf/Mips/rel-64.test | 61 - lld/test/old-elf/Mips/rel-call-hilo-01.test | 109 -- lld/test/old-elf/Mips/rel-call-hilo-micro.test | 154 --- lld/test/old-elf/Mips/rel-copy-micro.test | 159 --- lld/test/old-elf/Mips/rel-copy-pc.test | 113 -- lld/test/old-elf/Mips/rel-copy.test | 177 --- lld/test/old-elf/Mips/rel-dynamic-01-micro.test | 201 --- lld/test/old-elf/Mips/rel-dynamic-01.test | 261 ---- lld/test/old-elf/Mips/rel-dynamic-02.test | 101 -- lld/test/old-elf/Mips/rel-dynamic-03-micro.test | 133 -- lld/test/old-elf/Mips/rel-dynamic-03.test | 129 -- lld/test/old-elf/Mips/rel-dynamic-04-micro.test | 226 ---- lld/test/old-elf/Mips/rel-dynamic-04.test | 221 --- lld/test/old-elf/Mips/rel-dynamic-05-micro.test | 192 --- lld/test/old-elf/Mips/rel-dynamic-05.test | 188 --- lld/test/old-elf/Mips/rel-dynamic-06-64.test | 114 -- lld/test/old-elf/Mips/rel-dynamic-06.test | 115 -- lld/test/old-elf/Mips/rel-dynamic-07-64.test | 348 ----- lld/test/old-elf/Mips/rel-dynamic-07.test | 363 ----- lld/test/old-elf/Mips/rel-dynamic-08-64.test | 275 ---- lld/test/old-elf/Mips/rel-dynamic-08-micro.test | 278 ---- lld/test/old-elf/Mips/rel-dynamic-08.test | 275 ---- lld/test/old-elf/Mips/rel-dynamic-09-micro.test | 109 -- lld/test/old-elf/Mips/rel-dynamic-09.test | 107 -- lld/test/old-elf/Mips/rel-dynamic-10-micro.test | 166 --- lld/test/old-elf/Mips/rel-dynamic-10.test | 160 --- lld/test/old-elf/Mips/rel-dynamic-11.test | 110 -- lld/test/old-elf/Mips/rel-dynamic-12.test | 237 ---- lld/test/old-elf/Mips/rel-dynamic-13.test | 94 -- lld/test/old-elf/Mips/rel-dynamic-14.test | 94 -- lld/test/old-elf/Mips/rel-dynamic-15.test | 81 -- lld/test/old-elf/Mips/rel-eh-01.test | 186 --- lld/test/old-elf/Mips/rel-eh-02.test | 130 -- lld/test/old-elf/Mips/rel-eh-03.test | 128 -- lld/test/old-elf/Mips/rel-got-hilo-01.test | 109 -- lld/test/old-elf/Mips/rel-got-hilo-micro.test | 154 --- .../old-elf/Mips/rel-gprel16-micro-overflow.test | 57 - lld/test/old-elf/Mips/rel-gprel16-micro.test | 78 -- lld/test/old-elf/Mips/rel-gprel16-overflow.test | 48 - lld/test/old-elf/Mips/rel-gprel16.test | 104 -- lld/test/old-elf/Mips/rel-gprel32-64.test | 84 -- lld/test/old-elf/Mips/rel-gprel32.test | 84 -- .../old-elf/Mips/rel-gprel7-micro-overflow.test | 48 - lld/test/old-elf/Mips/rel-gprel7-micro.test | 65 - lld/test/old-elf/Mips/rel-hi0-lo16-micro.test | 58 - lld/test/old-elf/Mips/rel-high-01.test | 25 - lld/test/old-elf/Mips/rel-high-02.test | 25 - lld/test/old-elf/Mips/rel-jalr-01.test | 101 -- lld/test/old-elf/Mips/rel-jalr-02.test | 68 - lld/test/old-elf/Mips/rel-lit-micro.test | 59 - lld/test/old-elf/Mips/rel-lit.test | 57 - lld/test/old-elf/Mips/rel-pc-hilo.test | 70 - lld/test/old-elf/Mips/rel-pc16-align.test | 43 - lld/test/old-elf/Mips/rel-pc16-overflow.test | 45 - lld/test/old-elf/Mips/rel-pc16.test | 53 - lld/test/old-elf/Mips/rel-pc18-s3-align.test | 44 - lld/test/old-elf/Mips/rel-pc18-s3-micro.test | 56 - lld/test/old-elf/Mips/rel-pc18-s3.test | 54 - lld/test/old-elf/Mips/rel-pc19-s2-align.test | 44 - lld/test/old-elf/Mips/rel-pc19-s2-micro.test | 56 - lld/test/old-elf/Mips/rel-pc19-s2.test | 54 - lld/test/old-elf/Mips/rel-pc21-s2-align.test | 44 - lld/test/old-elf/Mips/rel-pc21-s2-micro.test | 56 - lld/test/old-elf/Mips/rel-pc21-s2-overflow.test | 45 - lld/test/old-elf/Mips/rel-pc21-s2.test | 54 - lld/test/old-elf/Mips/rel-pc26-s2-align.test | 44 - lld/test/old-elf/Mips/rel-pc26-s2-micro.test | 56 - lld/test/old-elf/Mips/rel-pc26-s2.test | 54 - lld/test/old-elf/Mips/rel-pc32.test | 59 - lld/test/old-elf/Mips/rel-pc7-10-16-23.test | 86 -- lld/test/old-elf/Mips/rel-sub-micro.test | 62 - lld/test/old-elf/Mips/rel-sub.test | 61 - lld/test/old-elf/Mips/rld_map.test | 42 - lld/test/old-elf/Mips/sign-rela.test | 54 - lld/test/old-elf/Mips/st-other.test | 90 -- lld/test/old-elf/Mips/static-01.test | 119 -- lld/test/old-elf/Mips/tls-1-micro.test | 65 - lld/test/old-elf/Mips/tls-1.test | 63 - lld/test/old-elf/Mips/tls-2-64-static.test | 71 - lld/test/old-elf/Mips/tls-2-64.test | 69 - lld/test/old-elf/Mips/tls-2-micro.test | 70 - lld/test/old-elf/Mips/tls-2-static.test | 125 -- lld/test/old-elf/Mips/tls-2.test | 69 - lld/test/old-elf/Mips/tls-3-64-static.test | 70 - lld/test/old-elf/Mips/tls-3-micro.test | 183 --- lld/test/old-elf/Mips/tls-3-static.test | 67 - lld/test/old-elf/Mips/tls-3.test | 180 --- lld/test/old-elf/Mips/tls-4-64-static.test | 71 - lld/test/old-elf/Mips/tls-4-micro.test | 126 -- lld/test/old-elf/Mips/tls-4-static.test | 68 - lld/test/old-elf/Mips/tls-4.test | 123 -- lld/test/old-elf/Mips/tls-5-64.test | 71 - lld/test/old-elf/Mips/tls-5-micro.test | 70 - lld/test/old-elf/Mips/tls-5.test | 69 - lld/test/old-elf/Mips/validate-rel-01.test | 82 -- lld/test/old-elf/Mips/validate-rel-03.test | 56 - lld/test/old-elf/X86_64/ExampleTarget/triple.test | 32 - lld/test/old-elf/X86_64/Inputs/constint.c | 1 - lld/test/old-elf/X86_64/Inputs/constint.o | Bin 1062 -> 0 bytes lld/test/old-elf/X86_64/Inputs/debug0.c | 5 - lld/test/old-elf/X86_64/Inputs/debug0.x86-64 | Bin 2704 -> 0 bytes lld/test/old-elf/X86_64/Inputs/debug1.c | 3 - lld/test/old-elf/X86_64/Inputs/debug1.x86-64 | Bin 2584 -> 0 bytes lld/test/old-elf/X86_64/Inputs/externtls.c | 6 - lld/test/old-elf/X86_64/Inputs/externtls.x86-64 | Bin 1424 -> 0 bytes lld/test/old-elf/X86_64/Inputs/fn.c | 4 - lld/test/old-elf/X86_64/Inputs/fn.o | Bin 1072 -> 0 bytes .../old-elf/X86_64/Inputs/generaltls-so.o.yaml | 67 - lld/test/old-elf/X86_64/Inputs/group/1.c | 8 - lld/test/old-elf/X86_64/Inputs/group/1.o | Bin 1456 -> 0 bytes lld/test/old-elf/X86_64/Inputs/group/fn.c | 4 - lld/test/old-elf/X86_64/Inputs/group/fn.o | Bin 1360 -> 0 bytes lld/test/old-elf/X86_64/Inputs/group/fn1.c | 3 - lld/test/old-elf/X86_64/Inputs/group/fn1.o | Bin 1352 -> 0 bytes lld/test/old-elf/X86_64/Inputs/group/fn2.c | 3 - lld/test/old-elf/X86_64/Inputs/group/fn2.o | Bin 1224 -> 0 bytes lld/test/old-elf/X86_64/Inputs/group/group.sh | 38 - lld/test/old-elf/X86_64/Inputs/group/libfn.a | Bin 2792 -> 0 bytes lld/test/old-elf/X86_64/Inputs/group/libfn.so | Bin 2516 -> 0 bytes lld/test/old-elf/X86_64/Inputs/group/libfn1.a | Bin 1492 -> 0 bytes lld/test/old-elf/X86_64/Inputs/group/libfn2.so | Bin 9624 -> 0 bytes lld/test/old-elf/X86_64/Inputs/initfini-option.c | 13 - lld/test/old-elf/X86_64/Inputs/initfini-option.o | Bin 1824 -> 0 bytes lld/test/old-elf/X86_64/Inputs/initfini.c | 14 - lld/test/old-elf/X86_64/Inputs/initfini.o | Bin 2256 -> 0 bytes lld/test/old-elf/X86_64/Inputs/largebss.c | 3 - lld/test/old-elf/X86_64/Inputs/largebss.o | Bin 1131 -> 0 bytes lld/test/old-elf/X86_64/Inputs/layoutpass/1.c | 8 - lld/test/old-elf/X86_64/Inputs/layoutpass/1.o | Bin 1448 -> 0 bytes lld/test/old-elf/X86_64/Inputs/layoutpass/2.c | 7 - lld/test/old-elf/X86_64/Inputs/layoutpass/2.o | Bin 1320 -> 0 bytes lld/test/old-elf/X86_64/Inputs/layoutpass/3.c | 3 - lld/test/old-elf/X86_64/Inputs/layoutpass/3.o | Bin 1216 -> 0 bytes lld/test/old-elf/X86_64/Inputs/layoutpass/lib2.a | Bin 1464 -> 0 bytes lld/test/old-elf/X86_64/Inputs/libfn.a | Bin 1364 -> 0 bytes lld/test/old-elf/X86_64/Inputs/libfn.so | Bin 2008 -> 0 bytes lld/test/old-elf/X86_64/Inputs/main.c | 4 - lld/test/old-elf/X86_64/Inputs/main.o | Bin 1360 -> 0 bytes lld/test/old-elf/X86_64/Inputs/multi-ovrd.c | 10 - lld/test/old-elf/X86_64/Inputs/multi-ovrd.o | Bin 1648 -> 0 bytes lld/test/old-elf/X86_64/Inputs/multi-weak.c | 20 - lld/test/old-elf/X86_64/Inputs/multi-weak.o | Bin 1856 -> 0 bytes lld/test/old-elf/X86_64/Inputs/multiweaksyms.o | Bin 928 -> 0 bytes lld/test/old-elf/X86_64/Inputs/nmagic.c | 8 - lld/test/old-elf/X86_64/Inputs/nmagic.o | Bin 1528 -> 0 bytes lld/test/old-elf/X86_64/Inputs/no-interp-section.c | 1 - lld/test/old-elf/X86_64/Inputs/no-interp-section.o | Bin 975 -> 0 bytes lld/test/old-elf/X86_64/Inputs/note.o | Bin 785 -> 0 bytes lld/test/old-elf/X86_64/Inputs/note.s | 11 - lld/test/old-elf/X86_64/Inputs/note_ro_rw.o | Bin 905 -> 0 bytes lld/test/old-elf/X86_64/Inputs/note_ro_rw.s | 21 - lld/test/old-elf/X86_64/Inputs/ovrd.c | 6 - lld/test/old-elf/X86_64/Inputs/ovrd.o | Bin 1488 -> 0 bytes lld/test/old-elf/X86_64/Inputs/rodata.c | 3 - lld/test/old-elf/X86_64/Inputs/rodata.o | Bin 1584 -> 0 bytes lld/test/old-elf/X86_64/Inputs/rodata.s | 24 - lld/test/old-elf/X86_64/Inputs/rwint.c | 1 - lld/test/old-elf/X86_64/Inputs/rwint.o | Bin 963 -> 0 bytes lld/test/old-elf/X86_64/Inputs/sectionmap.c | 4 - lld/test/old-elf/X86_64/Inputs/sectionmap.o | Bin 1478 -> 0 bytes lld/test/old-elf/X86_64/Inputs/undefcpp.c | 1 - lld/test/old-elf/X86_64/Inputs/undefcpp.o | Bin 1344 -> 0 bytes lld/test/old-elf/X86_64/Inputs/weak-zero-sized.o | Bin 688 -> 0 bytes lld/test/old-elf/X86_64/Inputs/weak.c | 14 - lld/test/old-elf/X86_64/Inputs/weak.o | Bin 1712 -> 0 bytes lld/test/old-elf/X86_64/Inputs/weak.s | 21 - lld/test/old-elf/X86_64/Inputs/zerosizedsection.o | Bin 760 -> 0 bytes lld/test/old-elf/X86_64/Inputs/zerosizedsection.s | 3 - lld/test/old-elf/X86_64/alignoffset.test | 118 -- lld/test/old-elf/X86_64/debug.test | 57 - lld/test/old-elf/X86_64/defsym.test | 22 - lld/test/old-elf/X86_64/demangle.test | 12 - .../X86_64/dontignorezerosize-sections.test | 9 - lld/test/old-elf/X86_64/dynamicvars.test | 123 -- .../old-elf/X86_64/dynlib-nointerp-section.test | 4 - lld/test/old-elf/X86_64/dynlib-search.test | 6 - lld/test/old-elf/X86_64/dynsym-weak.test | 118 -- lld/test/old-elf/X86_64/extern-tls.test | 16 - lld/test/old-elf/X86_64/general-dynamic-tls.test | 128 -- lld/test/old-elf/X86_64/imagebase.test | 94 -- lld/test/old-elf/X86_64/initfini-order.test | 10 - lld/test/old-elf/X86_64/initfini.test | 23 - lld/test/old-elf/X86_64/largebss.test | 20 - lld/test/old-elf/X86_64/layoutpass-order.test | 14 - lld/test/old-elf/X86_64/maxpagesize.test | 113 -- lld/test/old-elf/X86_64/mergesimilarstrings.test | 47 - lld/test/old-elf/X86_64/multi-weak-layout.test | 52 - lld/test/old-elf/X86_64/multi-weak-override.test | 16 - lld/test/old-elf/X86_64/multi-weak-syms-order.test | 13 - lld/test/old-elf/X86_64/nmagic.test | 91 -- lld/test/old-elf/X86_64/noalignsegments.test | 95 -- .../old-elf/X86_64/note-sections-ro_plus_rw.test | 42 - lld/test/old-elf/X86_64/note-sections.test | 23 - lld/test/old-elf/X86_64/omagic.test | 237 ---- lld/test/old-elf/X86_64/outputsegments.test | 188 --- lld/test/old-elf/X86_64/reloc_r_x86_64_16.test | 59 - lld/test/old-elf/X86_64/reloc_r_x86_64_pc16.test | 60 - lld/test/old-elf/X86_64/reloc_r_x86_64_pc64.test | 60 - lld/test/old-elf/X86_64/rodata.test | 9 - lld/test/old-elf/X86_64/sectionchoice.test | 7 - lld/test/old-elf/X86_64/sectionmap.test | 22 - lld/test/old-elf/X86_64/startGroupEndGroup.test | 48 - .../X86_64/startGroupEndGroupWithDynlib.test | 10 - lld/test/old-elf/X86_64/staticlib-search.test | 6 - lld/test/old-elf/X86_64/undef.test | 18 - lld/test/old-elf/X86_64/underscore-end.test | 81 -- lld/test/old-elf/X86_64/weak-override.test | 45 - lld/test/old-elf/X86_64/weak-zero-sized.test | 26 - lld/test/old-elf/X86_64/weaksym.test | 77 -- lld/test/old-elf/X86_64/yamlinput.test | 166 --- lld/test/old-elf/abs-dup.objtxt | 19 - lld/test/old-elf/abs.test | 19 - lld/test/old-elf/allowduplicates.objtxt | 41 - lld/test/old-elf/archive-elf-forceload.test | 43 - lld/test/old-elf/archive-elf.test | 38 - lld/test/old-elf/as-needed.test | 15 - lld/test/old-elf/branch.test | 34 - lld/test/old-elf/check.test | 39 - lld/test/old-elf/checkrodata.test | 9 - lld/test/old-elf/common.test | 10 - lld/test/old-elf/consecutive-weak-sym-defs.test | 81 -- lld/test/old-elf/defsym.objtxt | 31 - lld/test/old-elf/discard-all.test | 88 -- lld/test/old-elf/discard-locals.test | 65 - lld/test/old-elf/dynamic-segorder.test | 17 - lld/test/old-elf/dynamic-undef.test | 38 - lld/test/old-elf/dynamic.test | 80 -- lld/test/old-elf/eh_frame_hdr.test | 30 - lld/test/old-elf/entry.objtxt | 58 - lld/test/old-elf/export-dynamic.test | 98 -- lld/test/old-elf/filenotfound.test | 3 - .../gnulinkonce-report-discarded-reference.test | 145 -- .../gnulinkonce/gnulinkonce-report-undef.test | 127 -- lld/test/old-elf/gnulinkonce/gnulinkonce.test | 149 --- lld/test/old-elf/gotpcrel.test | 21 - lld/test/old-elf/gottpoff.test | 119 -- lld/test/old-elf/group-cmd-search.test | 134 -- lld/test/old-elf/hexagon-quickdata-sort.test | 12 - lld/test/old-elf/hexagon-quickdata-sortcommon.test | 16 - lld/test/old-elf/ifunc.test | 69 - lld/test/old-elf/ignore-unknownoption.test | 5 - lld/test/old-elf/init_array-order.test | 67 - lld/test/old-elf/init_array.test | 127 -- lld/test/old-elf/initfini-options.test-1.test | 33 - lld/test/old-elf/initfini-options.test-2.test | 47 - lld/test/old-elf/initfini-options.test-3.test | 53 - lld/test/old-elf/librarynotfound.test | 5 - lld/test/old-elf/linker-as-ld.test | 16 - lld/test/old-elf/linkerscript/Inputs/externs.ls | 3 - lld/test/old-elf/linkerscript/Inputs/invalid.ls | 1 - lld/test/old-elf/linkerscript/Inputs/prog1.o.yaml | 87 -- lld/test/old-elf/linkerscript/Inputs/prog2.o.yaml | 88 -- lld/test/old-elf/linkerscript/Inputs/prog3.o.yaml | 51 - .../old-elf/linkerscript/Inputs/simple-pic.o.yaml | 32 - lld/test/old-elf/linkerscript/Inputs/simple.o.yaml | 51 - lld/test/old-elf/linkerscript/Inputs/valid.ls | 6 - lld/test/old-elf/linkerscript/externs.objtxt | 21 - .../linkerscript/filename-with-wildcards.test | 49 - .../old-elf/linkerscript/invalid-script-cli-1.test | 10 - .../old-elf/linkerscript/invalid-script-cli-2.test | 6 - lld/test/old-elf/linkerscript/invalid.test | 5 - lld/test/old-elf/linkerscript/phdrs-all-none.test | 26 - .../old-elf/linkerscript/phdrs-custom-none.test | 36 - lld/test/old-elf/linkerscript/phdrs-default.test | 82 -- lld/test/old-elf/linkerscript/phdrs-different.test | 45 - .../old-elf/linkerscript/phdrs-extra-program.test | 27 - lld/test/old-elf/linkerscript/phdrs-flags.test | 46 - .../old-elf/linkerscript/phdrs-has-program.test | 33 - lld/test/old-elf/linkerscript/phdrs-invalid.test | 63 - .../linkerscript/phdrs-misplaced-program.test | 26 - .../old-elf/linkerscript/phdrs-no-program.test | 25 - lld/test/old-elf/linkerscript/phdrs-one-none.test | 36 - .../old-elf/linkerscript/phdrs-program-flags.test | 33 - .../linkerscript/phdrs-program-good-phdrs.test | 34 - .../linkerscript/phdrs-program-no-phdrs.test | 26 - .../linkerscript/phdrs-program-wrong-phdrs.test | 26 - .../old-elf/linkerscript/phdrs-same-flags.test | 35 - lld/test/old-elf/linkerscript/phdrs-same.test | 36 - .../linkerscript/phdrs/sections-empty-phdrs.script | 11 - .../linkerscript/phdrs/sections-no-phdrs.script | 7 - .../linkerscript/phdrs/sections-none-phdrs.script | 11 - .../linkerscript/phdrs/undef-empty-phdrs.script | 11 - .../linkerscript/phdrs/undef-id-phdrs.script | 12 - .../linkerscript/phdrs/undef-no-phdrs.script | 7 - lld/test/old-elf/linkerscript/sections-order.test | 113 -- .../linkerscript/sections-with-wildcards.test | 88 -- .../old-elf/linkerscript/symbol-definition-so.test | 32 - .../old-elf/linkerscript/symbol-definition.test | 54 - .../old-elf/linkerscript/valid-script-cli.objtxt | 23 - lld/test/old-elf/loginputfiles.test | 28 - lld/test/old-elf/mergeatoms.test | 6 - lld/test/old-elf/mergeconstants.test | 20 - lld/test/old-elf/mergeglobalatoms.test | 11 - lld/test/old-elf/no-unique-section-names.test | 19 - lld/test/old-elf/note.test | 50 - lld/test/old-elf/options/dynamic-linker.test | 17 - lld/test/old-elf/options/target-specific-args.test | 5 - lld/test/old-elf/phdr.test | 99 -- lld/test/old-elf/quickdata.test | 15 - lld/test/old-elf/reloc.test | 38 - lld/test/old-elf/responsefile.test | 6 - lld/test/old-elf/rodata.test | 5 - lld/test/old-elf/rosegment.test | 26 - .../sectionGroups/sectiongroup-new-members.test | 151 --- .../old-elf/sectionGroups/sectiongroup-simple.test | 144 -- .../sectiongroup-undef-member-other.test | 156 --- .../sectionGroups/sectiongroup-undef-member.test | 142 -- .../sectiongroup-with-globalsymbols.test | 250 ---- ...sectiongroup-with-undef-external-reference.test | 236 ---- .../sectiongroup-with-undef-signature.test | 219 --- lld/test/old-elf/sections.test | 142 -- lld/test/old-elf/sh_addralign.test | 37 - lld/test/old-elf/shndx.test | 18 - lld/test/old-elf/soname.test | 6 - lld/test/old-elf/start-stop-sym.test | 108 -- lld/test/old-elf/strip-all.test | 108 -- lld/test/old-elf/stripped-empty.test | 4 - lld/test/old-elf/symbols.test | 33 - lld/test/old-elf/tls-tbss-size.test | 176 --- lld/test/old-elf/tls.test | 43 - lld/test/old-elf/tlsAddr.test | 7 - lld/test/old-elf/undef-from-dso-to-main.test | 52 - lld/test/old-elf/undef-from-main-dso.test | 43 - lld/test/old-elf/weaksym.test | 7 - lld/test/old-elf/wrap.test | 276 ---- lld/test/old-elf/x86-64-dynamic-relocs.test | 26 - lld/test/old-elf/x86-64-dynamic.test | 79 -- lld/test/old-elf/x86.test | 38 - lld/test/old-elf/x86_64-kinds.test | 23 - lld/test/old-elf/zoption_dtflags.test | 89 -- lld/unittests/DriverTests/CMakeLists.txt | 1 - lld/unittests/DriverTests/GnuLdDriverTest.cpp | 299 ----- lld/unittests/DriverTests/UniversalDriverTest.cpp | 5 +- 779 files changed, 3 insertions(+), 60546 deletions(-) delete mode 100644 lld/include/lld/ReaderWriter/ELFLinkingContext.h delete mode 100644 lld/lib/Driver/GnuLdDriver.cpp delete mode 100644 lld/lib/Driver/GnuLdOptions.td delete mode 100644 lld/lib/ReaderWriter/ELF/AArch64/AArch64DynamicLibraryWriter.h delete mode 100644 lld/lib/ReaderWriter/ELF/AArch64/AArch64ExecutableWriter.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/AArch64/AArch64ExecutableWriter.h delete mode 100644 lld/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.h delete mode 100644 lld/lib/ReaderWriter/ELF/AArch64/AArch64RelocationHandler.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/AArch64/AArch64RelocationHandler.h delete mode 100644 lld/lib/ReaderWriter/ELF/AArch64/AArch64RelocationPass.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/AArch64/AArch64RelocationPass.h delete mode 100644 lld/lib/ReaderWriter/ELF/AArch64/AArch64SectionChunks.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/AArch64/AArch64SectionChunks.h delete mode 100644 lld/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.h delete mode 100644 lld/lib/ReaderWriter/ELF/AArch64/CMakeLists.txt delete mode 100644 lld/lib/ReaderWriter/ELF/AArch64/TODO.rst delete mode 100644 lld/lib/ReaderWriter/ELF/ARM/ARMDynamicLibraryWriter.h delete mode 100644 lld/lib/ReaderWriter/ELF/ARM/ARMELFFile.h delete mode 100644 lld/lib/ReaderWriter/ELF/ARM/ARMELFWriters.h delete mode 100644 lld/lib/ReaderWriter/ELF/ARM/ARMExecutableWriter.h delete mode 100644 lld/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.h delete mode 100644 lld/lib/ReaderWriter/ELF/ARM/ARMRelocationHandler.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/ARM/ARMRelocationHandler.h delete mode 100644 lld/lib/ReaderWriter/ELF/ARM/ARMRelocationPass.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/ARM/ARMRelocationPass.h delete mode 100644 lld/lib/ReaderWriter/ELF/ARM/ARMSymbolTable.h delete mode 100644 lld/lib/ReaderWriter/ELF/ARM/ARMTargetHandler.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/ARM/ARMTargetHandler.h delete mode 100644 lld/lib/ReaderWriter/ELF/ARM/CMakeLists.txt delete mode 100644 lld/lib/ReaderWriter/ELF/ARM/TODO.rst delete mode 100644 lld/lib/ReaderWriter/ELF/Atoms.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/Atoms.h delete mode 100644 lld/lib/ReaderWriter/ELF/CMakeLists.txt delete mode 100644 lld/lib/ReaderWriter/ELF/Chunk.h delete mode 100644 lld/lib/ReaderWriter/ELF/DynamicFile.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/DynamicFile.h delete mode 100644 lld/lib/ReaderWriter/ELF/DynamicLibraryWriter.h delete mode 100644 lld/lib/ReaderWriter/ELF/ELFFile.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/ELFFile.h delete mode 100644 lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/ELFReader.h delete mode 100644 lld/lib/ReaderWriter/ELF/ExecutableWriter.h delete mode 100644 lld/lib/ReaderWriter/ELF/FileCommon.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/FileCommon.h delete mode 100644 lld/lib/ReaderWriter/ELF/HeaderChunks.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/HeaderChunks.h delete mode 100644 lld/lib/ReaderWriter/ELF/Hexagon/CMakeLists.txt delete mode 100644 lld/lib/ReaderWriter/ELF/Hexagon/HexagonDynamicLibraryWriter.h delete mode 100644 lld/lib/ReaderWriter/ELF/Hexagon/HexagonELFFile.h delete mode 100644 lld/lib/ReaderWriter/ELF/Hexagon/HexagonEncodings.h delete mode 100644 lld/lib/ReaderWriter/ELF/Hexagon/HexagonExecutableWriter.h delete mode 100644 lld/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.h delete mode 100644 lld/lib/ReaderWriter/ELF/Hexagon/HexagonRelocationHandler.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/Hexagon/HexagonRelocationHandler.h delete mode 100644 lld/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.h delete mode 100644 lld/lib/ReaderWriter/ELF/Mips/CMakeLists.txt delete mode 100644 lld/lib/ReaderWriter/ELF/Mips/MipsAbiInfoHandler.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/Mips/MipsAbiInfoHandler.h delete mode 100644 lld/lib/ReaderWriter/ELF/Mips/MipsCtorsOrderPass.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/Mips/MipsCtorsOrderPass.h delete mode 100644 lld/lib/ReaderWriter/ELF/Mips/MipsDynamicTable.h delete mode 100644 lld/lib/ReaderWriter/ELF/Mips/MipsELFFile.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/Mips/MipsELFFile.h delete mode 100644 lld/lib/ReaderWriter/ELF/Mips/MipsELFWriters.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/Mips/MipsELFWriters.h delete mode 100644 lld/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.h delete mode 100644 lld/lib/ReaderWriter/ELF/Mips/MipsRelocationHandler.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/Mips/MipsRelocationHandler.h delete mode 100644 lld/lib/ReaderWriter/ELF/Mips/MipsRelocationPass.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/Mips/MipsRelocationPass.h delete mode 100644 lld/lib/ReaderWriter/ELF/Mips/MipsSectionChunks.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/Mips/MipsSectionChunks.h delete mode 100644 lld/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.h delete mode 100644 lld/lib/ReaderWriter/ELF/Mips/MipsTargetLayout.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/Mips/MipsTargetLayout.h delete mode 100644 lld/lib/ReaderWriter/ELF/OrderPass.h delete mode 100644 lld/lib/ReaderWriter/ELF/OutputELFWriter.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/OutputELFWriter.h delete mode 100644 lld/lib/ReaderWriter/ELF/Reader.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/SectionChunks.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/SectionChunks.h delete mode 100644 lld/lib/ReaderWriter/ELF/SegmentChunks.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/SegmentChunks.h delete mode 100644 lld/lib/ReaderWriter/ELF/TODO.txt delete mode 100644 lld/lib/ReaderWriter/ELF/TargetHandler.h delete mode 100644 lld/lib/ReaderWriter/ELF/TargetLayout.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/TargetLayout.h delete mode 100644 lld/lib/ReaderWriter/ELF/Writer.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/Writer.h delete mode 100644 lld/lib/ReaderWriter/ELF/X86/CMakeLists.txt delete mode 100644 lld/lib/ReaderWriter/ELF/X86/X86DynamicLibraryWriter.h delete mode 100644 lld/lib/ReaderWriter/ELF/X86/X86ExecutableWriter.h delete mode 100644 lld/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/X86/X86LinkingContext.h delete mode 100644 lld/lib/ReaderWriter/ELF/X86/X86RelocationHandler.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/X86/X86RelocationHandler.h delete mode 100644 lld/lib/ReaderWriter/ELF/X86/X86TargetHandler.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/X86/X86TargetHandler.h delete mode 100644 lld/lib/ReaderWriter/ELF/X86_64/CMakeLists.txt delete mode 100644 lld/lib/ReaderWriter/ELF/X86_64/ExampleSubTarget/CMakeLists.txt delete mode 100644 lld/lib/ReaderWriter/ELF/X86_64/ExampleSubTarget/ExampleLinkingContext.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/X86_64/ExampleSubTarget/ExampleLinkingContext.h delete mode 100644 lld/lib/ReaderWriter/ELF/X86_64/ExampleSubTarget/ExampleTargetHandler.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/X86_64/ExampleSubTarget/ExampleTargetHandler.h delete mode 100644 lld/lib/ReaderWriter/ELF/X86_64/TODO.rst delete mode 100644 lld/lib/ReaderWriter/ELF/X86_64/X86_64DynamicLibraryWriter.h delete mode 100644 lld/lib/ReaderWriter/ELF/X86_64/X86_64ExecutableWriter.h delete mode 100644 lld/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.h delete mode 100644 lld/lib/ReaderWriter/ELF/X86_64/X86_64RelocationHandler.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/X86_64/X86_64RelocationHandler.h delete mode 100644 lld/lib/ReaderWriter/ELF/X86_64/X86_64RelocationPass.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/X86_64/X86_64RelocationPass.h delete mode 100644 lld/lib/ReaderWriter/ELF/X86_64/X86_64SectionChunks.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/X86_64/X86_64SectionChunks.h delete mode 100644 lld/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.cpp delete mode 100644 lld/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.h delete mode 100644 lld/test/Driver/def-lib-search.test delete mode 100644 lld/test/Driver/flavor-option.test delete mode 100644 lld/test/Driver/lib-search.test delete mode 100644 lld/test/Driver/so-whole-archive.test delete mode 100644 lld/test/Driver/trivial-driver.test delete mode 100644 lld/test/Driver/undef-basic.objtxt delete mode 100644 lld/test/old-elf/AArch64/Inputs/fn.c delete mode 100644 lld/test/old-elf/AArch64/Inputs/fn.o delete mode 100644 lld/test/old-elf/AArch64/Inputs/general-dyn-tls-0.yaml delete mode 100644 lld/test/old-elf/AArch64/Inputs/initfini-option.c delete mode 100644 lld/test/old-elf/AArch64/Inputs/initfini-option.o delete mode 100644 lld/test/old-elf/AArch64/Inputs/initfini.c delete mode 100644 lld/test/old-elf/AArch64/Inputs/initfini.o delete mode 100644 lld/test/old-elf/AArch64/Inputs/initial-exec-tls-1.yaml delete mode 100644 lld/test/old-elf/AArch64/Inputs/main.c delete mode 100644 lld/test/old-elf/AArch64/Inputs/main.o delete mode 100644 lld/test/old-elf/AArch64/Inputs/no-interp-section.c delete mode 100644 lld/test/old-elf/AArch64/Inputs/no-interp-section.o delete mode 100644 lld/test/old-elf/AArch64/Inputs/zerosizedsection.o delete mode 100644 lld/test/old-elf/AArch64/Inputs/zerosizedsection.s delete mode 100644 lld/test/old-elf/AArch64/defsym.test delete mode 100644 lld/test/old-elf/AArch64/dontignorezerosize-sections.test delete mode 100644 lld/test/old-elf/AArch64/dynamicvars.test delete mode 100644 lld/test/old-elf/AArch64/dynlib-nointerp-section.test delete mode 100644 lld/test/old-elf/AArch64/general-dyn-tls-0.test delete mode 100644 lld/test/old-elf/AArch64/initfini.test delete mode 100644 lld/test/old-elf/AArch64/initial-exec-tls-0.test delete mode 100644 lld/test/old-elf/AArch64/local-tls.test delete mode 100644 lld/test/old-elf/AArch64/rel-abs16-overflow.test delete mode 100644 lld/test/old-elf/AArch64/rel-abs16.test delete mode 100644 lld/test/old-elf/AArch64/rel-abs32-overflow.test delete mode 100644 lld/test/old-elf/AArch64/rel-abs32.test delete mode 100644 lld/test/old-elf/AArch64/rel-abs64.test delete mode 100644 lld/test/old-elf/AArch64/rel-adr_prel_lo21-overflow.test delete mode 100644 lld/test/old-elf/AArch64/rel-adr_prel_lo21.test delete mode 100644 lld/test/old-elf/AArch64/rel-adr_prel_pg_hi21-overflow.test delete mode 100644 lld/test/old-elf/AArch64/rel-adr_prel_pg_hi21.test delete mode 100644 lld/test/old-elf/AArch64/rel-bad.test delete mode 100644 lld/test/old-elf/AArch64/rel-prel16-overflow.test delete mode 100644 lld/test/old-elf/AArch64/rel-prel16.test delete mode 100644 lld/test/old-elf/AArch64/rel-prel32-overflow.test delete mode 100644 lld/test/old-elf/AArch64/rel-prel32.test delete mode 100644 lld/test/old-elf/AArch64/rel-prel64.test delete mode 100644 lld/test/old-elf/ARM/Inputs/fn.c delete mode 100755 lld/test/old-elf/ARM/Inputs/libfn.so delete mode 100755 lld/test/old-elf/ARM/Inputs/libobj.so delete mode 100644 lld/test/old-elf/ARM/Inputs/obj.c delete mode 100644 lld/test/old-elf/ARM/arm-symbols.test delete mode 100644 lld/test/old-elf/ARM/defsym.test delete mode 100644 lld/test/old-elf/ARM/dynamic-symbols.test delete mode 100644 lld/test/old-elf/ARM/entry-point.test delete mode 100644 lld/test/old-elf/ARM/exidx.test delete mode 100644 lld/test/old-elf/ARM/header-flags.test delete mode 100644 lld/test/old-elf/ARM/mapping-code-model.test delete mode 100644 lld/test/old-elf/ARM/mapping-symbols.test delete mode 100644 lld/test/old-elf/ARM/missing-symbol.test delete mode 100644 lld/test/old-elf/ARM/plt-dynamic.test delete mode 100644 lld/test/old-elf/ARM/plt-ifunc-interwork.test delete mode 100644 lld/test/old-elf/ARM/plt-ifunc-mapping.test delete mode 100644 lld/test/old-elf/ARM/rel-abs32.test delete mode 100644 lld/test/old-elf/ARM/rel-arm-call.test delete mode 100644 lld/test/old-elf/ARM/rel-arm-jump24-veneer-b.test delete mode 100644 lld/test/old-elf/ARM/rel-arm-jump24-veneer-bl.test delete mode 100644 lld/test/old-elf/ARM/rel-arm-jump24.test delete mode 100644 lld/test/old-elf/ARM/rel-arm-mov.test delete mode 100644 lld/test/old-elf/ARM/rel-arm-prel31.test delete mode 100644 lld/test/old-elf/ARM/rel-arm-target1.test delete mode 100644 lld/test/old-elf/ARM/rel-arm-thm-interwork.test delete mode 100644 lld/test/old-elf/ARM/rel-base-prel.test delete mode 100644 lld/test/old-elf/ARM/rel-copy.test delete mode 100644 lld/test/old-elf/ARM/rel-glob-dat.test delete mode 100644 lld/test/old-elf/ARM/rel-got-brel.test delete mode 100644 lld/test/old-elf/ARM/rel-group-relocs.test delete mode 100644 lld/test/old-elf/ARM/rel-ifunc.test delete mode 100644 lld/test/old-elf/ARM/rel-jump-slot.test delete mode 100644 lld/test/old-elf/ARM/rel-rel32.test delete mode 100644 lld/test/old-elf/ARM/rel-thm-call.test delete mode 100644 lld/test/old-elf/ARM/rel-thm-jump11.test delete mode 100644 lld/test/old-elf/ARM/rel-thm-jump24-veneer.test delete mode 100644 lld/test/old-elf/ARM/rel-thm-jump24.test delete mode 100644 lld/test/old-elf/ARM/rel-thm-mov.test delete mode 100644 lld/test/old-elf/ARM/rel-tls-ie32.test delete mode 100644 lld/test/old-elf/ARM/rel-tls-le32.test delete mode 100644 lld/test/old-elf/ARM/rel-v4bx.test delete mode 100644 lld/test/old-elf/ARM/thm-symbols.test delete mode 100644 lld/test/old-elf/ARM/two-got-for-symbol.test delete mode 100644 lld/test/old-elf/ARM/undef-lazy-symbol.test delete mode 100644 lld/test/old-elf/ARM/veneer-mapping.test delete mode 100644 lld/test/old-elf/ARM/weak-branch.test delete mode 100644 lld/test/old-elf/Hexagon/Inputs/dynobj-data.c delete mode 100644 lld/test/old-elf/Hexagon/Inputs/dynobj-data.o delete mode 100644 lld/test/old-elf/Hexagon/Inputs/dynobj.c delete mode 100644 lld/test/old-elf/Hexagon/Inputs/dynobj.o delete mode 100644 lld/test/old-elf/Hexagon/Inputs/got-plt-order.c delete mode 100644 lld/test/old-elf/Hexagon/Inputs/got-plt-order.o delete mode 100644 lld/test/old-elf/Hexagon/Inputs/libMaxAlignment.a delete mode 100644 lld/test/old-elf/Hexagon/Inputs/sda-base.o delete mode 100644 lld/test/old-elf/Hexagon/Inputs/sdata1.c delete mode 100644 lld/test/old-elf/Hexagon/Inputs/sdata1.o delete mode 100644 lld/test/old-elf/Hexagon/Inputs/sdata2.c delete mode 100644 lld/test/old-elf/Hexagon/Inputs/sdata2.o delete mode 100644 lld/test/old-elf/Hexagon/Inputs/use-shared.hexagon delete mode 100644 lld/test/old-elf/Hexagon/dynlib-data.test delete mode 100644 lld/test/old-elf/Hexagon/dynlib-gotoff.test delete mode 100644 lld/test/old-elf/Hexagon/dynlib-hash.test delete mode 100644 lld/test/old-elf/Hexagon/dynlib-rela.test delete mode 100644 lld/test/old-elf/Hexagon/dynlib-syms.test delete mode 100644 lld/test/old-elf/Hexagon/dynlib.test delete mode 100644 lld/test/old-elf/Hexagon/hexagon-got-plt-order.test delete mode 100644 lld/test/old-elf/Hexagon/hexagon-plt-setup.test delete mode 100644 lld/test/old-elf/Hexagon/maxalignment.test delete mode 100644 lld/test/old-elf/Hexagon/rela-order.test delete mode 100644 lld/test/old-elf/Hexagon/sda-base.test delete mode 100644 lld/test/old-elf/Hexagon/zerofillquick-sdata.test delete mode 100644 lld/test/old-elf/Inputs/abs-test.i386 delete mode 100644 lld/test/old-elf/Inputs/allowduplicates.objtxt delete mode 100644 lld/test/old-elf/Inputs/bar.o.x86-64 delete mode 100644 lld/test/old-elf/Inputs/branch-test.hexagon delete mode 100644 lld/test/old-elf/Inputs/branch-test.ppc delete mode 100644 lld/test/old-elf/Inputs/consecutive-weak-defs.o.yaml delete mode 100644 lld/test/old-elf/Inputs/constants-merge.x86-64 delete mode 100644 lld/test/old-elf/Inputs/constdata.x86-64 delete mode 100644 lld/test/old-elf/Inputs/foo.o.x86-64 delete mode 100644 lld/test/old-elf/Inputs/globalconst.c delete mode 100644 lld/test/old-elf/Inputs/globalconst.o.x86-64 delete mode 100644 lld/test/old-elf/Inputs/gotpcrel.S delete mode 100644 lld/test/old-elf/Inputs/gotpcrel.x86-64 delete mode 100644 lld/test/old-elf/Inputs/group-cmd-search-1.ls delete mode 100644 lld/test/old-elf/Inputs/group-cmd-search-2.ls delete mode 100644 lld/test/old-elf/Inputs/group-cmd-search-3.ls delete mode 100644 lld/test/old-elf/Inputs/ifunc.S delete mode 100644 lld/test/old-elf/Inputs/ifunc.cpp delete mode 100644 lld/test/old-elf/Inputs/ifunc.cpp.x86-64 delete mode 100644 lld/test/old-elf/Inputs/ifunc.x86-64 delete mode 100644 lld/test/old-elf/Inputs/libfnarchive.a delete mode 100644 lld/test/old-elf/Inputs/libifunc.x86-64.so delete mode 100644 lld/test/old-elf/Inputs/libundef.so delete mode 100755 lld/test/old-elf/Inputs/libweaksym.so delete mode 100644 lld/test/old-elf/Inputs/main-with-global-def.o.yaml delete mode 100644 lld/test/old-elf/Inputs/mainobj.x86_64 delete mode 100644 lld/test/old-elf/Inputs/no-unique-section-names.x86-64 delete mode 100644 lld/test/old-elf/Inputs/object-test.elf-hexagon delete mode 100644 lld/test/old-elf/Inputs/object-test.elf-i386 delete mode 100644 lld/test/old-elf/Inputs/phdr.i386 delete mode 100644 lld/test/old-elf/Inputs/quickdata-sort-test.o.elf-hexagon delete mode 100644 lld/test/old-elf/Inputs/quickdata-sortcommon-test.o.elf-hexagon delete mode 100644 lld/test/old-elf/Inputs/quickdata-test.elf-hexagon delete mode 100644 lld/test/old-elf/Inputs/reloc-test.elf-i386 delete mode 100644 lld/test/old-elf/Inputs/reloc-xb.x86 delete mode 100644 lld/test/old-elf/Inputs/reloc-xt.x86 delete mode 100644 lld/test/old-elf/Inputs/relocs-dynamic.x86-64 delete mode 100644 lld/test/old-elf/Inputs/relocs.x86-64 delete mode 100644 lld/test/old-elf/Inputs/responsefile delete mode 100644 lld/test/old-elf/Inputs/rodata-test.hexagon delete mode 100644 lld/test/old-elf/Inputs/rodata-test.i386 delete mode 100644 lld/test/old-elf/Inputs/rodata.c delete mode 100644 lld/test/old-elf/Inputs/rodata.o delete mode 100644 lld/test/old-elf/Inputs/section-test.i386 delete mode 100644 lld/test/old-elf/Inputs/shared.c delete mode 100644 lld/test/old-elf/Inputs/shared.so-x86-64 delete mode 100644 lld/test/old-elf/Inputs/shndx.o-x86_64 delete mode 100644 lld/test/old-elf/Inputs/stripped-empty.x86_64 delete mode 100644 lld/test/old-elf/Inputs/target-test.hexagon delete mode 100644 lld/test/old-elf/Inputs/target-test.ppc delete mode 100644 lld/test/old-elf/Inputs/tls-tbss-size.yaml delete mode 100644 lld/test/old-elf/Inputs/tls.S delete mode 100644 lld/test/old-elf/Inputs/tls.c delete mode 100644 lld/test/old-elf/Inputs/tls.x86-64 delete mode 100644 lld/test/old-elf/Inputs/tlsAddr.x86-64 delete mode 100644 lld/test/old-elf/Inputs/tlsaddr.c delete mode 100644 lld/test/old-elf/Inputs/undef-from-main-so.c delete mode 100644 lld/test/old-elf/Inputs/undef-from-main.c delete mode 100644 lld/test/old-elf/Inputs/undef-pc32.o delete mode 100644 lld/test/old-elf/Inputs/undef.o delete mode 100644 lld/test/old-elf/Inputs/undef2-so.o.yaml delete mode 100644 lld/test/old-elf/Inputs/use-shared-32s.c delete mode 100644 lld/test/old-elf/Inputs/use-shared-32s.x86-64 delete mode 100644 lld/test/old-elf/Inputs/use-shared.c delete mode 100644 lld/test/old-elf/Inputs/use-shared.x86-64 delete mode 100644 lld/test/old-elf/Inputs/weaksym.o delete mode 100644 lld/test/old-elf/Inputs/writersyms.o delete mode 100644 lld/test/old-elf/Inputs/x86-64-relocs.S delete mode 100644 lld/test/old-elf/Mips/abi-flags-01.test delete mode 100644 lld/test/old-elf/Mips/abi-flags-02.test delete mode 100644 lld/test/old-elf/Mips/abi-flags-03.test delete mode 100644 lld/test/old-elf/Mips/abi-flags-04.test delete mode 100644 lld/test/old-elf/Mips/abi-flags-05.test delete mode 100644 lld/test/old-elf/Mips/abi-flags-06.test delete mode 100644 lld/test/old-elf/Mips/abi-flags-07.test delete mode 100644 lld/test/old-elf/Mips/abi-flags-08.test delete mode 100644 lld/test/old-elf/Mips/abi-flags-09.test delete mode 100644 lld/test/old-elf/Mips/abi-flags-10.test delete mode 100644 lld/test/old-elf/Mips/abi-flags-11.test delete mode 100644 lld/test/old-elf/Mips/base-address-64.test delete mode 100644 lld/test/old-elf/Mips/base-address.test delete mode 100644 lld/test/old-elf/Mips/ctors-order.test delete mode 100644 lld/test/old-elf/Mips/driver-hash-style.test delete mode 100644 lld/test/old-elf/Mips/dt-textrel-64.test delete mode 100644 lld/test/old-elf/Mips/dt-textrel.test delete mode 100644 lld/test/old-elf/Mips/dynamic-linking.test delete mode 100644 lld/test/old-elf/Mips/dynamic-sym.test delete mode 100644 lld/test/old-elf/Mips/dynlib-dynamic.test delete mode 100644 lld/test/old-elf/Mips/dynlib-dynsym-micro.test delete mode 100644 lld/test/old-elf/Mips/dynlib-dynsym.test delete mode 100644 lld/test/old-elf/Mips/dynlib-fileheader-64.test delete mode 100644 lld/test/old-elf/Mips/dynlib-fileheader-micro-64.test delete mode 100644 lld/test/old-elf/Mips/dynlib-fileheader-micro.test delete mode 100644 lld/test/old-elf/Mips/dynlib-fileheader.test delete mode 100644 lld/test/old-elf/Mips/dynsym-table-1.test delete mode 100644 lld/test/old-elf/Mips/dynsym-table-2.test delete mode 100644 lld/test/old-elf/Mips/e-flags-merge-1-64.test delete mode 100644 lld/test/old-elf/Mips/e-flags-merge-1.test delete mode 100644 lld/test/old-elf/Mips/e-flags-merge-10.test delete mode 100644 lld/test/old-elf/Mips/e-flags-merge-11.test delete mode 100644 lld/test/old-elf/Mips/e-flags-merge-12.test delete mode 100644 lld/test/old-elf/Mips/e-flags-merge-2-64.test delete mode 100644 lld/test/old-elf/Mips/e-flags-merge-2.test delete mode 100644 lld/test/old-elf/Mips/e-flags-merge-3-64.test delete mode 100644 lld/test/old-elf/Mips/e-flags-merge-3.test delete mode 100644 lld/test/old-elf/Mips/e-flags-merge-4-64.test delete mode 100644 lld/test/old-elf/Mips/e-flags-merge-4.test delete mode 100644 lld/test/old-elf/Mips/e-flags-merge-5-64.test delete mode 100644 lld/test/old-elf/Mips/e-flags-merge-5.test delete mode 100644 lld/test/old-elf/Mips/e-flags-merge-6-64.test delete mode 100644 lld/test/old-elf/Mips/e-flags-merge-6.test delete mode 100644 lld/test/old-elf/Mips/e-flags-merge-7-64.test delete mode 100644 lld/test/old-elf/Mips/e-flags-merge-7.test delete mode 100644 lld/test/old-elf/Mips/e-flags-merge-8.test delete mode 100644 lld/test/old-elf/Mips/e-flags-merge-9.test delete mode 100644 lld/test/old-elf/Mips/entry-name.test delete mode 100644 lld/test/old-elf/Mips/exe-dynamic.test delete mode 100644 lld/test/old-elf/Mips/exe-dynsym-micro.test delete mode 100644 lld/test/old-elf/Mips/exe-dynsym.test delete mode 100644 lld/test/old-elf/Mips/exe-fileheader-02.test delete mode 100644 lld/test/old-elf/Mips/exe-fileheader-03.test delete mode 100644 lld/test/old-elf/Mips/exe-fileheader-64.test delete mode 100644 lld/test/old-elf/Mips/exe-fileheader-be-64.test delete mode 100644 lld/test/old-elf/Mips/exe-fileheader-be.test delete mode 100644 lld/test/old-elf/Mips/exe-fileheader-micro-64.test delete mode 100644 lld/test/old-elf/Mips/exe-fileheader-micro.test delete mode 100644 lld/test/old-elf/Mips/exe-fileheader-n32.test delete mode 100644 lld/test/old-elf/Mips/exe-fileheader.test delete mode 100644 lld/test/old-elf/Mips/exe-got-micro.test delete mode 100644 lld/test/old-elf/Mips/exe-got.test delete mode 100644 lld/test/old-elf/Mips/got-page-32-micro.test delete mode 100644 lld/test/old-elf/Mips/got-page-32.test delete mode 100644 lld/test/old-elf/Mips/got-page-64-micro.test delete mode 100644 lld/test/old-elf/Mips/got-page-64.test delete mode 100644 lld/test/old-elf/Mips/got16-2.test delete mode 100644 lld/test/old-elf/Mips/got16-micro.test delete mode 100644 lld/test/old-elf/Mips/got16.test delete mode 100644 lld/test/old-elf/Mips/gotsym.test delete mode 100644 lld/test/old-elf/Mips/gp-sym-1-micro.test delete mode 100644 lld/test/old-elf/Mips/gp-sym-1.test delete mode 100644 lld/test/old-elf/Mips/gp-sym-2.test delete mode 100644 lld/test/old-elf/Mips/hilo16-1.test delete mode 100644 lld/test/old-elf/Mips/hilo16-2.test delete mode 100644 lld/test/old-elf/Mips/hilo16-3-overflow.test delete mode 100644 lld/test/old-elf/Mips/hilo16-3.test delete mode 100644 lld/test/old-elf/Mips/hilo16-4.test delete mode 100644 lld/test/old-elf/Mips/hilo16-5.test delete mode 100644 lld/test/old-elf/Mips/hilo16-8-micro.test delete mode 100644 lld/test/old-elf/Mips/hilo16-9-micro.test delete mode 100644 lld/test/old-elf/Mips/initfini-micro.test delete mode 100644 lld/test/old-elf/Mips/interpreter-64.test delete mode 100644 lld/test/old-elf/Mips/interpreter-n32.test delete mode 100644 lld/test/old-elf/Mips/interpreter.test delete mode 100644 lld/test/old-elf/Mips/invalid-reginfo.test delete mode 100644 lld/test/old-elf/Mips/jalx-align-err.test delete mode 100644 lld/test/old-elf/Mips/jalx-jalr.test delete mode 100644 lld/test/old-elf/Mips/jalx.test delete mode 100644 lld/test/old-elf/Mips/jump-fix-err.test delete mode 100644 lld/test/old-elf/Mips/la25-stub-be.test delete mode 100644 lld/test/old-elf/Mips/la25-stub-micro-be.test delete mode 100644 lld/test/old-elf/Mips/la25-stub-micro.test delete mode 100644 lld/test/old-elf/Mips/la25-stub-npic-01.test delete mode 100644 lld/test/old-elf/Mips/la25-stub-npic-02.test delete mode 100644 lld/test/old-elf/Mips/la25-stub-npic-shared.test delete mode 100644 lld/test/old-elf/Mips/la25-stub-pic.test delete mode 100644 lld/test/old-elf/Mips/la25-stub.test delete mode 100644 lld/test/old-elf/Mips/mips-options-01.test delete mode 100644 lld/test/old-elf/Mips/mips-options-02.test delete mode 100644 lld/test/old-elf/Mips/mips-options-03.test delete mode 100644 lld/test/old-elf/Mips/mips-options-04.test delete mode 100644 lld/test/old-elf/Mips/mips-options-05.test delete mode 100644 lld/test/old-elf/Mips/mips-options-gp0.test delete mode 100644 lld/test/old-elf/Mips/n32-rela-chain.test delete mode 100644 lld/test/old-elf/Mips/n64-rel-chain.test delete mode 100644 lld/test/old-elf/Mips/n64-rel-shift.test delete mode 100644 lld/test/old-elf/Mips/opt-emulation.test delete mode 100644 lld/test/old-elf/Mips/pc23-range.test delete mode 100644 lld/test/old-elf/Mips/plt-entry-mixed-1.test delete mode 100644 lld/test/old-elf/Mips/plt-entry-mixed-2.test delete mode 100644 lld/test/old-elf/Mips/plt-entry-mixed-3.test delete mode 100644 lld/test/old-elf/Mips/plt-entry-mixed-4.test delete mode 100644 lld/test/old-elf/Mips/plt-entry-r6-be.test delete mode 100644 lld/test/old-elf/Mips/plt-entry-r6.test delete mode 100644 lld/test/old-elf/Mips/plt-header-be.test delete mode 100644 lld/test/old-elf/Mips/plt-header-micro-be.test delete mode 100644 lld/test/old-elf/Mips/plt-header-micro.test delete mode 100644 lld/test/old-elf/Mips/plt-header-mixed.test delete mode 100644 lld/test/old-elf/Mips/plt-header.test delete mode 100644 lld/test/old-elf/Mips/r26-1-micro.test delete mode 100644 lld/test/old-elf/Mips/r26-1.test delete mode 100644 lld/test/old-elf/Mips/r26-2-micro.test delete mode 100644 lld/test/old-elf/Mips/r26-2.test delete mode 100644 lld/test/old-elf/Mips/reginfo-01.test delete mode 100644 lld/test/old-elf/Mips/reginfo-02.test delete mode 100644 lld/test/old-elf/Mips/reginfo-03.test delete mode 100644 lld/test/old-elf/Mips/reginfo-04.test delete mode 100644 lld/test/old-elf/Mips/reginfo-05.test delete mode 100644 lld/test/old-elf/Mips/rel-16-overflow.test delete mode 100644 lld/test/old-elf/Mips/rel-16.test delete mode 100644 lld/test/old-elf/Mips/rel-32-be.test delete mode 100644 lld/test/old-elf/Mips/rel-32.test delete mode 100644 lld/test/old-elf/Mips/rel-64.test delete mode 100644 lld/test/old-elf/Mips/rel-call-hilo-01.test delete mode 100644 lld/test/old-elf/Mips/rel-call-hilo-micro.test delete mode 100644 lld/test/old-elf/Mips/rel-copy-micro.test delete mode 100644 lld/test/old-elf/Mips/rel-copy-pc.test delete mode 100644 lld/test/old-elf/Mips/rel-copy.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-01-micro.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-01.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-02.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-03-micro.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-03.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-04-micro.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-04.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-05-micro.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-05.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-06-64.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-06.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-07-64.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-07.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-08-64.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-08-micro.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-08.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-09-micro.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-09.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-10-micro.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-10.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-11.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-12.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-13.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-14.test delete mode 100644 lld/test/old-elf/Mips/rel-dynamic-15.test delete mode 100644 lld/test/old-elf/Mips/rel-eh-01.test delete mode 100644 lld/test/old-elf/Mips/rel-eh-02.test delete mode 100644 lld/test/old-elf/Mips/rel-eh-03.test delete mode 100644 lld/test/old-elf/Mips/rel-got-hilo-01.test delete mode 100644 lld/test/old-elf/Mips/rel-got-hilo-micro.test delete mode 100644 lld/test/old-elf/Mips/rel-gprel16-micro-overflow.test delete mode 100644 lld/test/old-elf/Mips/rel-gprel16-micro.test delete mode 100644 lld/test/old-elf/Mips/rel-gprel16-overflow.test delete mode 100644 lld/test/old-elf/Mips/rel-gprel16.test delete mode 100644 lld/test/old-elf/Mips/rel-gprel32-64.test delete mode 100644 lld/test/old-elf/Mips/rel-gprel32.test delete mode 100644 lld/test/old-elf/Mips/rel-gprel7-micro-overflow.test delete mode 100644 lld/test/old-elf/Mips/rel-gprel7-micro.test delete mode 100644 lld/test/old-elf/Mips/rel-hi0-lo16-micro.test delete mode 100644 lld/test/old-elf/Mips/rel-high-01.test delete mode 100644 lld/test/old-elf/Mips/rel-high-02.test delete mode 100644 lld/test/old-elf/Mips/rel-jalr-01.test delete mode 100644 lld/test/old-elf/Mips/rel-jalr-02.test delete mode 100644 lld/test/old-elf/Mips/rel-lit-micro.test delete mode 100644 lld/test/old-elf/Mips/rel-lit.test delete mode 100644 lld/test/old-elf/Mips/rel-pc-hilo.test delete mode 100644 lld/test/old-elf/Mips/rel-pc16-align.test delete mode 100644 lld/test/old-elf/Mips/rel-pc16-overflow.test delete mode 100644 lld/test/old-elf/Mips/rel-pc16.test delete mode 100644 lld/test/old-elf/Mips/rel-pc18-s3-align.test delete mode 100644 lld/test/old-elf/Mips/rel-pc18-s3-micro.test delete mode 100644 lld/test/old-elf/Mips/rel-pc18-s3.test delete mode 100644 lld/test/old-elf/Mips/rel-pc19-s2-align.test delete mode 100644 lld/test/old-elf/Mips/rel-pc19-s2-micro.test delete mode 100644 lld/test/old-elf/Mips/rel-pc19-s2.test delete mode 100644 lld/test/old-elf/Mips/rel-pc21-s2-align.test delete mode 100644 lld/test/old-elf/Mips/rel-pc21-s2-micro.test delete mode 100644 lld/test/old-elf/Mips/rel-pc21-s2-overflow.test delete mode 100644 lld/test/old-elf/Mips/rel-pc21-s2.test delete mode 100644 lld/test/old-elf/Mips/rel-pc26-s2-align.test delete mode 100644 lld/test/old-elf/Mips/rel-pc26-s2-micro.test delete mode 100644 lld/test/old-elf/Mips/rel-pc26-s2.test delete mode 100644 lld/test/old-elf/Mips/rel-pc32.test delete mode 100644 lld/test/old-elf/Mips/rel-pc7-10-16-23.test delete mode 100644 lld/test/old-elf/Mips/rel-sub-micro.test delete mode 100644 lld/test/old-elf/Mips/rel-sub.test delete mode 100644 lld/test/old-elf/Mips/rld_map.test delete mode 100644 lld/test/old-elf/Mips/sign-rela.test delete mode 100644 lld/test/old-elf/Mips/st-other.test delete mode 100644 lld/test/old-elf/Mips/static-01.test delete mode 100644 lld/test/old-elf/Mips/tls-1-micro.test delete mode 100644 lld/test/old-elf/Mips/tls-1.test delete mode 100644 lld/test/old-elf/Mips/tls-2-64-static.test delete mode 100644 lld/test/old-elf/Mips/tls-2-64.test delete mode 100644 lld/test/old-elf/Mips/tls-2-micro.test delete mode 100644 lld/test/old-elf/Mips/tls-2-static.test delete mode 100644 lld/test/old-elf/Mips/tls-2.test delete mode 100644 lld/test/old-elf/Mips/tls-3-64-static.test delete mode 100644 lld/test/old-elf/Mips/tls-3-micro.test delete mode 100644 lld/test/old-elf/Mips/tls-3-static.test delete mode 100644 lld/test/old-elf/Mips/tls-3.test delete mode 100644 lld/test/old-elf/Mips/tls-4-64-static.test delete mode 100644 lld/test/old-elf/Mips/tls-4-micro.test delete mode 100644 lld/test/old-elf/Mips/tls-4-static.test delete mode 100644 lld/test/old-elf/Mips/tls-4.test delete mode 100644 lld/test/old-elf/Mips/tls-5-64.test delete mode 100644 lld/test/old-elf/Mips/tls-5-micro.test delete mode 100644 lld/test/old-elf/Mips/tls-5.test delete mode 100644 lld/test/old-elf/Mips/validate-rel-01.test delete mode 100644 lld/test/old-elf/Mips/validate-rel-03.test delete mode 100644 lld/test/old-elf/X86_64/ExampleTarget/triple.test delete mode 100644 lld/test/old-elf/X86_64/Inputs/constint.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/constint.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/debug0.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/debug0.x86-64 delete mode 100644 lld/test/old-elf/X86_64/Inputs/debug1.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/debug1.x86-64 delete mode 100644 lld/test/old-elf/X86_64/Inputs/externtls.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/externtls.x86-64 delete mode 100644 lld/test/old-elf/X86_64/Inputs/fn.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/fn.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/generaltls-so.o.yaml delete mode 100644 lld/test/old-elf/X86_64/Inputs/group/1.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/group/1.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/group/fn.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/group/fn.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/group/fn1.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/group/fn1.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/group/fn2.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/group/fn2.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/group/group.sh delete mode 100644 lld/test/old-elf/X86_64/Inputs/group/libfn.a delete mode 100755 lld/test/old-elf/X86_64/Inputs/group/libfn.so delete mode 100644 lld/test/old-elf/X86_64/Inputs/group/libfn1.a delete mode 100755 lld/test/old-elf/X86_64/Inputs/group/libfn2.so delete mode 100644 lld/test/old-elf/X86_64/Inputs/initfini-option.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/initfini-option.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/initfini.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/initfini.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/largebss.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/largebss.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/layoutpass/1.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/layoutpass/1.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/layoutpass/2.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/layoutpass/2.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/layoutpass/3.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/layoutpass/3.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/layoutpass/lib2.a delete mode 100644 lld/test/old-elf/X86_64/Inputs/libfn.a delete mode 100755 lld/test/old-elf/X86_64/Inputs/libfn.so delete mode 100644 lld/test/old-elf/X86_64/Inputs/main.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/main.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/multi-ovrd.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/multi-ovrd.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/multi-weak.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/multi-weak.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/multiweaksyms.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/nmagic.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/nmagic.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/no-interp-section.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/no-interp-section.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/note.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/note.s delete mode 100644 lld/test/old-elf/X86_64/Inputs/note_ro_rw.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/note_ro_rw.s delete mode 100644 lld/test/old-elf/X86_64/Inputs/ovrd.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/ovrd.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/rodata.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/rodata.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/rodata.s delete mode 100644 lld/test/old-elf/X86_64/Inputs/rwint.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/rwint.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/sectionmap.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/sectionmap.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/undefcpp.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/undefcpp.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/weak-zero-sized.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/weak.c delete mode 100644 lld/test/old-elf/X86_64/Inputs/weak.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/weak.s delete mode 100644 lld/test/old-elf/X86_64/Inputs/zerosizedsection.o delete mode 100644 lld/test/old-elf/X86_64/Inputs/zerosizedsection.s delete mode 100644 lld/test/old-elf/X86_64/alignoffset.test delete mode 100644 lld/test/old-elf/X86_64/debug.test delete mode 100644 lld/test/old-elf/X86_64/defsym.test delete mode 100644 lld/test/old-elf/X86_64/demangle.test delete mode 100644 lld/test/old-elf/X86_64/dontignorezerosize-sections.test delete mode 100644 lld/test/old-elf/X86_64/dynamicvars.test delete mode 100644 lld/test/old-elf/X86_64/dynlib-nointerp-section.test delete mode 100644 lld/test/old-elf/X86_64/dynlib-search.test delete mode 100644 lld/test/old-elf/X86_64/dynsym-weak.test delete mode 100644 lld/test/old-elf/X86_64/extern-tls.test delete mode 100644 lld/test/old-elf/X86_64/general-dynamic-tls.test delete mode 100644 lld/test/old-elf/X86_64/imagebase.test delete mode 100644 lld/test/old-elf/X86_64/initfini-order.test delete mode 100644 lld/test/old-elf/X86_64/initfini.test delete mode 100644 lld/test/old-elf/X86_64/largebss.test delete mode 100644 lld/test/old-elf/X86_64/layoutpass-order.test delete mode 100644 lld/test/old-elf/X86_64/maxpagesize.test delete mode 100644 lld/test/old-elf/X86_64/mergesimilarstrings.test delete mode 100644 lld/test/old-elf/X86_64/multi-weak-layout.test delete mode 100644 lld/test/old-elf/X86_64/multi-weak-override.test delete mode 100644 lld/test/old-elf/X86_64/multi-weak-syms-order.test delete mode 100644 lld/test/old-elf/X86_64/nmagic.test delete mode 100644 lld/test/old-elf/X86_64/noalignsegments.test delete mode 100644 lld/test/old-elf/X86_64/note-sections-ro_plus_rw.test delete mode 100644 lld/test/old-elf/X86_64/note-sections.test delete mode 100644 lld/test/old-elf/X86_64/omagic.test delete mode 100644 lld/test/old-elf/X86_64/outputsegments.test delete mode 100644 lld/test/old-elf/X86_64/reloc_r_x86_64_16.test delete mode 100644 lld/test/old-elf/X86_64/reloc_r_x86_64_pc16.test delete mode 100644 lld/test/old-elf/X86_64/reloc_r_x86_64_pc64.test delete mode 100644 lld/test/old-elf/X86_64/rodata.test delete mode 100644 lld/test/old-elf/X86_64/sectionchoice.test delete mode 100644 lld/test/old-elf/X86_64/sectionmap.test delete mode 100644 lld/test/old-elf/X86_64/startGroupEndGroup.test delete mode 100644 lld/test/old-elf/X86_64/startGroupEndGroupWithDynlib.test delete mode 100644 lld/test/old-elf/X86_64/staticlib-search.test delete mode 100644 lld/test/old-elf/X86_64/undef.test delete mode 100644 lld/test/old-elf/X86_64/underscore-end.test delete mode 100644 lld/test/old-elf/X86_64/weak-override.test delete mode 100644 lld/test/old-elf/X86_64/weak-zero-sized.test delete mode 100644 lld/test/old-elf/X86_64/weaksym.test delete mode 100644 lld/test/old-elf/X86_64/yamlinput.test delete mode 100644 lld/test/old-elf/abs-dup.objtxt delete mode 100644 lld/test/old-elf/abs.test delete mode 100644 lld/test/old-elf/allowduplicates.objtxt delete mode 100644 lld/test/old-elf/archive-elf-forceload.test delete mode 100644 lld/test/old-elf/archive-elf.test delete mode 100644 lld/test/old-elf/as-needed.test delete mode 100644 lld/test/old-elf/branch.test delete mode 100644 lld/test/old-elf/check.test delete mode 100644 lld/test/old-elf/checkrodata.test delete mode 100644 lld/test/old-elf/common.test delete mode 100644 lld/test/old-elf/consecutive-weak-sym-defs.test delete mode 100644 lld/test/old-elf/defsym.objtxt delete mode 100644 lld/test/old-elf/discard-all.test delete mode 100644 lld/test/old-elf/discard-locals.test delete mode 100644 lld/test/old-elf/dynamic-segorder.test delete mode 100644 lld/test/old-elf/dynamic-undef.test delete mode 100644 lld/test/old-elf/dynamic.test delete mode 100644 lld/test/old-elf/eh_frame_hdr.test delete mode 100644 lld/test/old-elf/entry.objtxt delete mode 100644 lld/test/old-elf/export-dynamic.test delete mode 100644 lld/test/old-elf/filenotfound.test delete mode 100644 lld/test/old-elf/gnulinkonce/gnulinkonce-report-discarded-reference.test delete mode 100644 lld/test/old-elf/gnulinkonce/gnulinkonce-report-undef.test delete mode 100644 lld/test/old-elf/gnulinkonce/gnulinkonce.test delete mode 100644 lld/test/old-elf/gotpcrel.test delete mode 100644 lld/test/old-elf/gottpoff.test delete mode 100644 lld/test/old-elf/group-cmd-search.test delete mode 100644 lld/test/old-elf/hexagon-quickdata-sort.test delete mode 100644 lld/test/old-elf/hexagon-quickdata-sortcommon.test delete mode 100644 lld/test/old-elf/ifunc.test delete mode 100644 lld/test/old-elf/ignore-unknownoption.test delete mode 100644 lld/test/old-elf/init_array-order.test delete mode 100644 lld/test/old-elf/init_array.test delete mode 100644 lld/test/old-elf/initfini-options.test-1.test delete mode 100644 lld/test/old-elf/initfini-options.test-2.test delete mode 100644 lld/test/old-elf/initfini-options.test-3.test delete mode 100644 lld/test/old-elf/librarynotfound.test delete mode 100644 lld/test/old-elf/linker-as-ld.test delete mode 100644 lld/test/old-elf/linkerscript/Inputs/externs.ls delete mode 100644 lld/test/old-elf/linkerscript/Inputs/invalid.ls delete mode 100644 lld/test/old-elf/linkerscript/Inputs/prog1.o.yaml delete mode 100644 lld/test/old-elf/linkerscript/Inputs/prog2.o.yaml delete mode 100644 lld/test/old-elf/linkerscript/Inputs/prog3.o.yaml delete mode 100644 lld/test/old-elf/linkerscript/Inputs/simple-pic.o.yaml delete mode 100644 lld/test/old-elf/linkerscript/Inputs/simple.o.yaml delete mode 100644 lld/test/old-elf/linkerscript/Inputs/valid.ls delete mode 100644 lld/test/old-elf/linkerscript/externs.objtxt delete mode 100644 lld/test/old-elf/linkerscript/filename-with-wildcards.test delete mode 100644 lld/test/old-elf/linkerscript/invalid-script-cli-1.test delete mode 100644 lld/test/old-elf/linkerscript/invalid-script-cli-2.test delete mode 100644 lld/test/old-elf/linkerscript/invalid.test delete mode 100644 lld/test/old-elf/linkerscript/phdrs-all-none.test delete mode 100644 lld/test/old-elf/linkerscript/phdrs-custom-none.test delete mode 100644 lld/test/old-elf/linkerscript/phdrs-default.test delete mode 100644 lld/test/old-elf/linkerscript/phdrs-different.test delete mode 100644 lld/test/old-elf/linkerscript/phdrs-extra-program.test delete mode 100644 lld/test/old-elf/linkerscript/phdrs-flags.test delete mode 100644 lld/test/old-elf/linkerscript/phdrs-has-program.test delete mode 100644 lld/test/old-elf/linkerscript/phdrs-invalid.test delete mode 100644 lld/test/old-elf/linkerscript/phdrs-misplaced-program.test delete mode 100644 lld/test/old-elf/linkerscript/phdrs-no-program.test delete mode 100644 lld/test/old-elf/linkerscript/phdrs-one-none.test delete mode 100644 lld/test/old-elf/linkerscript/phdrs-program-flags.test delete mode 100644 lld/test/old-elf/linkerscript/phdrs-program-good-phdrs.test delete mode 100644 lld/test/old-elf/linkerscript/phdrs-program-no-phdrs.test delete mode 100644 lld/test/old-elf/linkerscript/phdrs-program-wrong-phdrs.test delete mode 100644 lld/test/old-elf/linkerscript/phdrs-same-flags.test delete mode 100644 lld/test/old-elf/linkerscript/phdrs-same.test delete mode 100644 lld/test/old-elf/linkerscript/phdrs/sections-empty-phdrs.script delete mode 100644 lld/test/old-elf/linkerscript/phdrs/sections-no-phdrs.script delete mode 100644 lld/test/old-elf/linkerscript/phdrs/sections-none-phdrs.script delete mode 100644 lld/test/old-elf/linkerscript/phdrs/undef-empty-phdrs.script delete mode 100644 lld/test/old-elf/linkerscript/phdrs/undef-id-phdrs.script delete mode 100644 lld/test/old-elf/linkerscript/phdrs/undef-no-phdrs.script delete mode 100644 lld/test/old-elf/linkerscript/sections-order.test delete mode 100644 lld/test/old-elf/linkerscript/sections-with-wildcards.test delete mode 100644 lld/test/old-elf/linkerscript/symbol-definition-so.test delete mode 100644 lld/test/old-elf/linkerscript/symbol-definition.test delete mode 100644 lld/test/old-elf/linkerscript/valid-script-cli.objtxt delete mode 100644 lld/test/old-elf/loginputfiles.test delete mode 100644 lld/test/old-elf/mergeatoms.test delete mode 100644 lld/test/old-elf/mergeconstants.test delete mode 100644 lld/test/old-elf/mergeglobalatoms.test delete mode 100644 lld/test/old-elf/no-unique-section-names.test delete mode 100644 lld/test/old-elf/note.test delete mode 100644 lld/test/old-elf/options/dynamic-linker.test delete mode 100644 lld/test/old-elf/options/target-specific-args.test delete mode 100644 lld/test/old-elf/phdr.test delete mode 100644 lld/test/old-elf/quickdata.test delete mode 100644 lld/test/old-elf/reloc.test delete mode 100644 lld/test/old-elf/responsefile.test delete mode 100644 lld/test/old-elf/rodata.test delete mode 100644 lld/test/old-elf/rosegment.test delete mode 100644 lld/test/old-elf/sectionGroups/sectiongroup-new-members.test delete mode 100644 lld/test/old-elf/sectionGroups/sectiongroup-simple.test delete mode 100644 lld/test/old-elf/sectionGroups/sectiongroup-undef-member-other.test delete mode 100644 lld/test/old-elf/sectionGroups/sectiongroup-undef-member.test delete mode 100644 lld/test/old-elf/sectionGroups/sectiongroup-with-globalsymbols.test delete mode 100644 lld/test/old-elf/sectionGroups/sectiongroup-with-undef-external-reference.test delete mode 100644 lld/test/old-elf/sectionGroups/sectiongroup-with-undef-signature.test delete mode 100644 lld/test/old-elf/sections.test delete mode 100644 lld/test/old-elf/sh_addralign.test delete mode 100644 lld/test/old-elf/shndx.test delete mode 100644 lld/test/old-elf/soname.test delete mode 100644 lld/test/old-elf/start-stop-sym.test delete mode 100644 lld/test/old-elf/strip-all.test delete mode 100644 lld/test/old-elf/stripped-empty.test delete mode 100644 lld/test/old-elf/symbols.test delete mode 100644 lld/test/old-elf/tls-tbss-size.test delete mode 100644 lld/test/old-elf/tls.test delete mode 100644 lld/test/old-elf/tlsAddr.test delete mode 100644 lld/test/old-elf/undef-from-dso-to-main.test delete mode 100644 lld/test/old-elf/undef-from-main-dso.test delete mode 100644 lld/test/old-elf/weaksym.test delete mode 100644 lld/test/old-elf/wrap.test delete mode 100644 lld/test/old-elf/x86-64-dynamic-relocs.test delete mode 100644 lld/test/old-elf/x86-64-dynamic.test delete mode 100644 lld/test/old-elf/x86.test delete mode 100644 lld/test/old-elf/x86_64-kinds.test delete mode 100644 lld/test/old-elf/zoption_dtflags.test delete mode 100644 lld/unittests/DriverTests/GnuLdDriverTest.cpp diff --git a/lld/include/lld/Core/LinkingContext.h b/lld/include/lld/Core/LinkingContext.h index b29f3a5..b156947 100644 --- a/lld/include/lld/Core/LinkingContext.h +++ b/lld/include/lld/Core/LinkingContext.h @@ -33,8 +33,7 @@ class SharedLibraryFile; /// /// The base class LinkingContext contains the options needed by core linking. /// Subclasses of LinkingContext have additional options needed by specific -/// Writers. For example, ELFLinkingContext has methods that supplies -/// options to the ELF Writer and ELF Passes. +/// Writers. class LinkingContext { public: /// \brief The types of output file that the linker creates. diff --git a/lld/include/lld/Core/Reader.h b/lld/include/lld/Core/Reader.h index 9324da4..6b3d049 100644 --- a/lld/include/lld/Core/Reader.h +++ b/lld/include/lld/Core/Reader.h @@ -27,7 +27,6 @@ class IO; } namespace lld { -class ELFLinkingContext; class File; class LinkingContext; class PECOFFLinkingContext; @@ -117,8 +116,6 @@ public: void addSupportCOFFObjects(PECOFFLinkingContext &); void addSupportCOFFImportLibraries(PECOFFLinkingContext &); void addSupportMachOObjects(MachOLinkingContext &); - void addSupportELFObjects(ELFLinkingContext &); - void addSupportELFDynamicSharedObjects(ELFLinkingContext &); /// To convert between kind values and names, the registry walks the list /// of registered kind tables. Each table is a zero terminated array of diff --git a/lld/include/lld/Core/Writer.h b/lld/include/lld/Core/Writer.h index 8214ed6..3d9c836 100644 --- a/lld/include/lld/Core/Writer.h +++ b/lld/include/lld/Core/Writer.h @@ -15,7 +15,6 @@ #include namespace lld { -class ELFLinkingContext; class File; class LinkingContext; class MachOLinkingContext; @@ -41,7 +40,6 @@ protected: Writer(); }; -std::unique_ptr createWriterELF(const ELFLinkingContext &); std::unique_ptr createWriterMachO(const MachOLinkingContext &); std::unique_ptr createWriterPECOFF(const PECOFFLinkingContext &); std::unique_ptr createWriterYAML(const LinkingContext &); diff --git a/lld/include/lld/Driver/Driver.h b/lld/include/lld/Driver/Driver.h index 7b4a381..37ef494 100644 --- a/lld/include/lld/Driver/Driver.h +++ b/lld/include/lld/Driver/Driver.h @@ -30,7 +30,6 @@ class LinkingContext; class CoreLinkingContext; class MachOLinkingContext; class PECOFFLinkingContext; -class ELFLinkingContext; typedef std::vector> FileVector; @@ -65,42 +64,6 @@ private: UniversalDriver() = delete; }; -/// Driver for gnu/binutil 'ld' command line options. -class GnuLdDriver : public Driver { -public: - /// Parses command line arguments same as gnu/binutils ld and performs link. - /// Returns true iff an error occurred. - static bool linkELF(llvm::ArrayRef args, - raw_ostream &diag = llvm::errs()); - - /// Uses gnu/binutils style ld command line options to fill in options struct. - /// Returns true iff there was an error. - static bool parse(llvm::ArrayRef args, - std::unique_ptr &context, - raw_ostream &diag = llvm::errs()); - - /// Parses a given memory buffer as a linker script and evaluate that. - /// Public function for testing. - static std::error_code evalLinkerScript(ELFLinkingContext &ctx, - std::unique_ptr mb, - raw_ostream &diag, bool nostdlib); - - /// A factory method to create an instance of ELFLinkingContext. - static std::unique_ptr - createELFLinkingContext(llvm::Triple triple); - -private: - static llvm::Triple getDefaultTarget(const char *progName); - static bool applyEmulation(llvm::Triple &triple, - llvm::opt::InputArgList &args, - raw_ostream &diag); - static void addPlatformSearchDirs(ELFLinkingContext &ctx, - llvm::Triple &triple, - llvm::Triple &baseTriple); - - GnuLdDriver() = delete; -}; - /// Driver for darwin/ld64 'ld' command line options. class DarwinLdDriver : public Driver { public: diff --git a/lld/include/lld/ReaderWriter/ELFLinkingContext.h b/lld/include/lld/ReaderWriter/ELFLinkingContext.h deleted file mode 100644 index d1a5b28..0000000 --- a/lld/include/lld/ReaderWriter/ELFLinkingContext.h +++ /dev/null @@ -1,422 +0,0 @@ -//===- lld/ReaderWriter/ELFLinkingContext.h -------------------------------===// -// -// The LLVM Linker -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef LLD_READER_WRITER_ELF_LINKER_CONTEXT_H -#define LLD_READER_WRITER_ELF_LINKER_CONTEXT_H - -#include "lld/Core/LinkingContext.h" -#include "lld/Core/Pass.h" -#include "lld/Core/PassManager.h" -#include "lld/Core/STDExtras.h" -#include "lld/Core/range.h" -#include "lld/Core/Reader.h" -#include "lld/Core/Writer.h" -#include "lld/ReaderWriter/LinkerScript.h" -#include "llvm/ADT/StringSet.h" -#include "llvm/ADT/Triple.h" -#include "llvm/Object/ELF.h" -#include "llvm/Support/ELF.h" -#include -#include -#include - -namespace llvm { -class FileOutputBuffer; -} - -namespace lld { -struct AtomLayout; -class File; -class Reference; - -namespace elf { -using llvm::object::ELF32LE; -using llvm::object::ELF32BE; -using llvm::object::ELF64LE; -using llvm::object::ELF64BE; - -class ELFWriter; - -std::unique_ptr createAArch64LinkingContext(llvm::Triple); -std::unique_ptr createAMDGPULinkingContext(llvm::Triple); -std::unique_ptr createARMLinkingContext(llvm::Triple); -std::unique_ptr createExampleLinkingContext(llvm::Triple); -std::unique_ptr createHexagonLinkingContext(llvm::Triple); -std::unique_ptr createMipsLinkingContext(llvm::Triple); -std::unique_ptr createX86LinkingContext(llvm::Triple); -std::unique_ptr createX86_64LinkingContext(llvm::Triple); - -class TargetRelocationHandler { -public: - virtual ~TargetRelocationHandler() {} - - virtual std::error_code applyRelocation(ELFWriter &, llvm::FileOutputBuffer &, - const lld::AtomLayout &, - const Reference &) const = 0; -}; - -} // namespace elf - -/// \brief TargetHandler contains all the information responsible to handle a -/// a particular target on ELF. A target might wish to override implementation -/// of creating atoms and how the atoms are written to the output file. -class TargetHandler { -public: - virtual ~TargetHandler() {} - - /// Determines how relocations need to be applied. - virtual const elf::TargetRelocationHandler &getRelocationHandler() const = 0; - - /// Returns a reader for object files. - virtual std::unique_ptr getObjReader() = 0; - - /// Returns a reader for .so files. - virtual std::unique_ptr getDSOReader() = 0; - - /// Returns a writer to write an ELF file. - virtual std::unique_ptr getWriter() = 0; -}; - -class ELFLinkingContext : public LinkingContext { -public: - /// \brief The type of ELF executable that the linker - /// creates. - enum class OutputMagic : uint8_t { - // The default mode, no specific magic set - DEFAULT, - // Disallow shared libraries and don't align sections - // PageAlign Data, Mark Text Segment/Data segment RW - NMAGIC, - // Disallow shared libraries and don't align sections, - // Mark Text Segment/Data segment RW - OMAGIC, - }; - - /// \brief ELF DT_FLAGS. - enum DTFlag : uint32_t { - DT_NOW = 1 << 1, - DT_ORIGIN = 1 << 2, - }; - - llvm::Triple getTriple() const { return _triple; } - - uint64_t getPageSize() const { return _maxPageSize; } - void setMaxPageSize(uint64_t v) { _maxPageSize = v; } - - OutputMagic getOutputMagic() const { return _outputMagic; } - uint16_t getOutputELFType() const { return _outputELFType; } - uint16_t getOutputMachine() const; - bool mergeCommonStrings() const { return _mergeCommonStrings; } - virtual int getMachineType() const = 0; - virtual uint64_t getBaseAddress() const { return _baseAddress; } - virtual void setBaseAddress(uint64_t address) { _baseAddress = address; } - - void notifySymbolTableCoalesce(const Atom *existingAtom, const Atom *newAtom, - bool &useNew) override; - - /// This controls if undefined atoms need to be created for undefines that are - /// present in a SharedLibrary. If this option is set, undefined atoms are - /// created for every undefined symbol that are present in the dynamic table - /// in the shared library - bool useShlibUndefines() const { return _useShlibUndefines; } - - /// \brief Returns true if a given relocation should be added to the - /// dynamic relocation table. - /// - /// This table is evaluated at loadtime by the dynamic loader and is - /// referenced by the DT_RELA{,ENT,SZ} entries in the dynamic table. - /// Relocations that return true will be added to the dynamic relocation - /// table. - virtual bool isDynamicRelocation(const Reference &) const { return false; } - - /// \brief Returns true if a given reference is a copy relocation. - /// - /// If this is a copy relocation, its target must be an ObjectAtom. We must - /// include in DT_NEEDED the name of the library where this object came from. - virtual bool isCopyRelocation(const Reference &) const { return false; } - - bool validateImpl(raw_ostream &diagnostics) override; - - /// \brief Returns true if the linker allows dynamic libraries to be - /// linked with. - /// - /// This is true when the output mode of the executable is set to be - /// having NMAGIC/OMAGIC - bool allowLinkWithDynamicLibraries() const { - if (_outputMagic == OutputMagic::NMAGIC || - _outputMagic == OutputMagic::OMAGIC || _noAllowDynamicLibraries) - return false; - return true; - } - - /// \brief Use Elf_Rela format to output relocation tables. - virtual bool isRelaOutputFormat() const { return true; } - - /// \brief Returns true if a given relocation should be added to PLT. - /// - /// This table holds all of the relocations used for delayed symbol binding. - /// It will be evaluated at load time if LD_BIND_NOW is set. It is referenced - /// by the DT_{JMPREL,PLTRELSZ} entries in the dynamic table. - /// Relocations that return true will be added to the dynamic plt relocation - /// table. - virtual bool isPLTRelocation(const Reference &) const { return false; } - - /// \brief The path to the dynamic interpreter - virtual StringRef getDefaultInterpreter() const { - return "/lib64/ld-linux-x86-64.so.2"; - } - - /// \brief The dynamic linker path set by the --dynamic-linker option - StringRef getInterpreter() const { - if (_dynamicLinkerPath.hasValue()) - return _dynamicLinkerPath.getValue(); - return getDefaultInterpreter(); - } - - /// \brief Returns true if the output have dynamic sections. - bool isDynamic() const; - - /// \brief Returns true if we are creating a shared library. - bool isDynamicLibrary() const { return _outputELFType == llvm::ELF::ET_DYN; } - - /// \brief Returns true if a given relocation is a relative relocation. - virtual bool isRelativeReloc(const Reference &r) const; - - TargetHandler &getTargetHandler() const { - assert(_targetHandler && "Got null TargetHandler!"); - return *_targetHandler; - } - - virtual void registerRelocationNames(Registry &) = 0; - - void addPasses(PassManager &pm) override; - - void setTriple(llvm::Triple trip) { _triple = trip; } - void setNoInhibitExec(bool v) { _noInhibitExec = v; } - void setExportDynamic(bool v) { _exportDynamic = v; } - void setIsStaticExecutable(bool v) { _isStaticExecutable = v; } - void setMergeCommonStrings(bool v) { _mergeCommonStrings = v; } - void setUseShlibUndefines(bool use) { _useShlibUndefines = use; } - void setOutputELFType(uint32_t type) { _outputELFType = type; } - - bool shouldExportDynamic() const { return _exportDynamic; } - - void createInternalFiles(std::vector> &) const override; - - void finalizeInputFiles() override; - - /// \brief Set the dynamic linker path - void setInterpreter(StringRef s) { _dynamicLinkerPath = s; } - - /// \brief Set NMAGIC output kind when the linker specifies --nmagic - /// or -n in the command line - /// Set OMAGIC output kind when the linker specifies --omagic - /// or -N in the command line - void setOutputMagic(OutputMagic magic) { _outputMagic = magic; } - - /// \brief Disallow dynamic libraries during linking - void setNoAllowDynamicLibraries() { _noAllowDynamicLibraries = true; } - - /// Searches directories for a match on the input File - ErrorOr searchLibrary(StringRef libName) const; - - /// \brief Searches directories for a match on the input file. - /// If \p fileName is an absolute path and \p isSysRooted is true, check - /// the file under sysroot directory. If \p fileName is a relative path - /// and is not in the current directory, search the file through library - /// search directories. - ErrorOr searchFile(StringRef fileName, bool isSysRooted) const; - - /// Get the entry symbol name - StringRef entrySymbolName() const override; - - /// \brief Set new initializer function - void setInitFunction(StringRef name) { _initFunction = name; } - - /// \brief Return an initializer function name. - /// Either default "_init" or configured by the -init command line option. - StringRef initFunction() const { return _initFunction; } - - /// \brief Set new finalizer function - void setFiniFunction(StringRef name) { _finiFunction = name; } - - /// \brief Return a finalizer function name. - /// Either default "_fini" or configured by the -fini command line option. - StringRef finiFunction() const { return _finiFunction; } - - /// Add an absolute symbol. Used for --defsym. - void addInitialAbsoluteSymbol(StringRef name, uint64_t addr) { - _absoluteSymbols[name] = addr; - } - - StringRef sharedObjectName() const { return _soname; } - void setSharedObjectName(StringRef soname) { _soname = soname; } - - StringRef getSysroot() const { return _sysrootPath; } - void setSysroot(StringRef path) { _sysrootPath = path; } - - void addRpath(StringRef path) { _rpathList.push_back(path); } - range getRpathList() const { return _rpathList; } - - void addRpathLink(StringRef path) { _rpathLinkList.push_back(path); } - range getRpathLinkList() const { return _rpathLinkList; } - - const std::map &getAbsoluteSymbols() const { - return _absoluteSymbols; - } - - /// \brief Helper function to allocate strings. - StringRef allocateString(StringRef ref) const { - char *x = _allocator.Allocate(ref.size() + 1); - memcpy(x, ref.data(), ref.size()); - x[ref.size()] = '\0'; - return x; - } - - // add search path to list. - void addSearchPath(StringRef ref) { _inputSearchPaths.push_back(ref); } - - // Retrieve search path list. - StringRefVector getSearchPaths() { return _inputSearchPaths; } - - // By default, the linker would merge sections that are read only with - // segments that have read and execute permissions. When the user specifies a - // flag --rosegment, a separate segment needs to be created. - bool mergeRODataToTextSegment() const { return _mergeRODataToTextSegment; } - - void setCreateSeparateROSegment() { _mergeRODataToTextSegment = false; } - - bool isDynamicallyExportedSymbol(StringRef name) const { - return _dynamicallyExportedSymbols.count(name) != 0; - } - - /// \brief Demangle symbols. - std::string demangle(StringRef symbolName) const override; - bool demangleSymbols() const { return _demangle; } - void setDemangleSymbols(bool d) { _demangle = d; } - - /// \brief Align segments. - bool alignSegments() const { return _alignSegments; } - void setAlignSegments(bool align) { _alignSegments = align; } - - /// \brief Enable new dtags. - /// If this flag is set lld emits DT_RUNPATH instead of - /// DT_RPATH. They are functionally equivalent except for - /// the following two differences: - /// - DT_RUNPATH is searched after LD_LIBRARY_PATH, while - /// DT_RPATH is searched before. - /// - DT_RUNPATH is used only to search for direct dependencies - /// of the object it's contained in, while DT_RPATH is used - /// for indirect dependencies as well. - bool getEnableNewDtags() const { return _enableNewDtags; } - void setEnableNewDtags(bool e) { _enableNewDtags = e; } - - /// \brief Discard local symbols. - bool discardLocals() const { return _discardLocals; } - void setDiscardLocals(bool d) { _discardLocals = d; } - - /// \brief Discard temprorary local symbols. - bool discardTempLocals() const { return _discardTempLocals; } - void setDiscardTempLocals(bool d) { _discardTempLocals = d; } - - /// \brief Strip symbols. - bool stripSymbols() const { return _stripSymbols; } - void setStripSymbols(bool strip) { _stripSymbols = strip; } - - /// \brief Collect statistics. - bool collectStats() const { return _collectStats; } - void setCollectStats(bool s) { _collectStats = s; } - - // --wrap option. - void addWrapForSymbol(StringRef sym) { _wrapCalls.insert(sym); } - - // \brief Set DT_FLAGS flag. - void setDTFlag(DTFlag f) { _dtFlags |= f; } - bool getDTFlag(DTFlag f) { return (_dtFlags & f); } - - const llvm::StringSet<> &wrapCalls() const { return _wrapCalls; } - - void setUndefinesResolver(std::unique_ptr resolver); - - script::Sema &linkerScriptSema() { return _linkerScriptSema; } - const script::Sema &linkerScriptSema() const { return _linkerScriptSema; } - - /// Notify the ELFLinkingContext when the new ELF section is read. - void notifyInputSectionName(StringRef name); - /// Encountered C-ident input section names. - const llvm::StringSet<> &cidentSectionNames() const { - return _cidentSections; - } - - // Set R_ARM_TARGET1 relocation behaviour - bool armTarget1Rel() const { return _armTarget1Rel; } - void setArmTarget1Rel(bool value) { _armTarget1Rel = value; } - - // Set R_MIPS_EH relocation behaviour. - bool mipsPcRelEhRel() const { return _mipsPcRelEhRel; } - void setMipsPcRelEhRel(bool value) { _mipsPcRelEhRel = value; } - -protected: - ELFLinkingContext(llvm::Triple triple, std::unique_ptr handler) - : _triple(triple), _targetHandler(std::move(handler)) {} - - Writer &writer() const override; - - /// Method to create a internal file for an undefined symbol - std::unique_ptr createUndefinedSymbolFile() const override; - - uint16_t _outputELFType = llvm::ELF::ET_EXEC; - llvm::Triple _triple; - std::unique_ptr _targetHandler; - uint64_t _baseAddress = 0; - bool _isStaticExecutable = false; - bool _noInhibitExec = false; - bool _exportDynamic = false; - bool _mergeCommonStrings = false; - bool _useShlibUndefines = true; - bool _dynamicLinkerArg = false; - bool _noAllowDynamicLibraries = false; - bool _mergeRODataToTextSegment = true; - bool _demangle = true; - bool _discardTempLocals = false; - bool _discardLocals = false; - bool _stripSymbols = false; - bool _alignSegments = true; - bool _enableNewDtags = false; - bool _collectStats = false; - bool _armTarget1Rel = false; - bool _mipsPcRelEhRel = false; - uint64_t _maxPageSize = 0x1000; - uint32_t _dtFlags = 0; - - OutputMagic _outputMagic = OutputMagic::DEFAULT; - StringRefVector _inputSearchPaths; - std::unique_ptr _writer; - llvm::Optional _dynamicLinkerPath; - StringRef _initFunction = "_init"; - StringRef _finiFunction = "_fini"; - StringRef _sysrootPath = ""; - StringRef _soname; - StringRefVector _rpathList; - StringRefVector _rpathLinkList; - llvm::StringSet<> _wrapCalls; - std::map _absoluteSymbols; - llvm::StringSet<> _dynamicallyExportedSymbols; - std::unique_ptr _resolver; - std::mutex _cidentMutex; - llvm::StringSet<> _cidentSections; - - // The linker script semantic object, which owns all script ASTs, is stored - // in the current linking context via _linkerScriptSema. - script::Sema _linkerScriptSema; -}; - -} // end namespace lld - -#endif diff --git a/lld/lib/Driver/CMakeLists.txt b/lld/lib/Driver/CMakeLists.txt index 840ccce..40b1b2b8 100644 --- a/lld/lib/Driver/CMakeLists.txt +++ b/lld/lib/Driver/CMakeLists.txt @@ -1,7 +1,5 @@ set(LLVM_TARGET_DEFINITIONS UniversalDriverOptions.td) tablegen(LLVM UniversalDriverOptions.inc -gen-opt-parser-defs) -set(LLVM_TARGET_DEFINITIONS GnuLdOptions.td) -tablegen(LLVM GnuLdOptions.inc -gen-opt-parser-defs) set(LLVM_TARGET_DEFINITIONS CoreOptions.td) tablegen(LLVM CoreOptions.inc -gen-opt-parser-defs) set(LLVM_TARGET_DEFINITIONS DarwinLdOptions.td) @@ -12,7 +10,6 @@ add_lld_library(lldDriver CoreDriver.cpp DarwinLdDriver.cpp Driver.cpp - GnuLdDriver.cpp UniversalDriver.cpp ADDITIONAL_HEADER_DIRS @@ -22,15 +19,7 @@ add_lld_library(lldDriver lldConfig lldMachO lldCOFF - lldELF lldELF2 - lldAArch64ELFTarget - lldARMELFTarget - lldHexagonELFTarget - lldMipsELFTarget - lldX86ELFTarget - lldExampleSubTarget - lldX86_64ELFTarget lldCore lldReaderWriter lldYAML diff --git a/lld/lib/Driver/GnuLdDriver.cpp b/lld/lib/Driver/GnuLdDriver.cpp deleted file mode 100644 index 1cff481..0000000 --- a/lld/lib/Driver/GnuLdDriver.cpp +++ /dev/null @@ -1,782 +0,0 @@ -//===- lib/Driver/GnuLdDriver.cpp -----------------------------------------===// -// -// The LLVM Linker -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -/// -/// \file -/// -/// Concrete instance of the Driver for GNU's ld. -/// -//===----------------------------------------------------------------------===// - -#include "lld/Driver/Driver.h" -#include "lld/ReaderWriter/ELFLinkingContext.h" -#include "lld/ReaderWriter/LinkerScript.h" -#include "llvm/ADT/ArrayRef.h" -#include "llvm/ADT/Optional.h" -#include "llvm/ADT/STLExtras.h" -#include "llvm/ADT/StringExtras.h" -#include "llvm/ADT/Triple.h" -#include "llvm/Option/Arg.h" -#include "llvm/Option/Option.h" -#include "llvm/Support/CommandLine.h" -#include "llvm/Support/Errc.h" -#include "llvm/Support/FileSystem.h" -#include "llvm/Support/Host.h" -#include "llvm/Support/ManagedStatic.h" -#include "llvm/Support/Path.h" -#include "llvm/Support/PrettyStackTrace.h" -#include "llvm/Support/Signals.h" -#include "llvm/Support/StringSaver.h" -#include "llvm/Support/Timer.h" -#include "llvm/Support/raw_ostream.h" -#include -#include - -using namespace lld; - -using llvm::BumpPtrAllocator; - -namespace { - -// Create enum with OPT_xxx values for each option in GnuLdOptions.td -enum { - OPT_INVALID = 0, -#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \ - HELP, META) \ - OPT_##ID, -#include "GnuLdOptions.inc" -#undef OPTION -}; - -// Create prefix string literals used in GnuLdOptions.td -#define PREFIX(NAME, VALUE) const char *const NAME[] = VALUE; -#include "GnuLdOptions.inc" -#undef PREFIX - -// Create table mapping all options defined in GnuLdOptions.td -static const llvm::opt::OptTable::Info infoTable[] = { -#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, ALIASARGS, FLAGS, PARAM, \ - HELPTEXT, METAVAR) \ - { PREFIX, NAME, HELPTEXT, METAVAR, OPT_##ID, llvm::opt::Option::KIND##Class, \ - PARAM, FLAGS, OPT_##GROUP, OPT_##ALIAS, ALIASARGS }, -#include "GnuLdOptions.inc" -#undef OPTION -}; - - -// Create OptTable class for parsing actual command line arguments -class GnuLdOptTable : public llvm::opt::OptTable { -public: - GnuLdOptTable() : OptTable(infoTable){} -}; - -} // anonymous namespace - -// If a command line option starts with "@", the driver reads its suffix as a -// file, parse its contents as a list of command line options, and insert them -// at the original @file position. If file cannot be read, @file is not expanded -// and left unmodified. @file can appear in a response file, so it's a recursive -// process. -static llvm::ArrayRef -maybeExpandResponseFiles(llvm::ArrayRef args, - BumpPtrAllocator &alloc) { - // Expand response files. - SmallVector smallvec; - for (const char *arg : args) - smallvec.push_back(arg); - llvm::StringSaver saver(alloc); - llvm::cl::ExpandResponseFiles(saver, llvm::cl::TokenizeGNUCommandLine, smallvec); - - // Pack the results to a C-array and return it. - const char **copy = alloc.Allocate(smallvec.size() + 1); - std::copy(smallvec.begin(), smallvec.end(), copy); - copy[smallvec.size()] = nullptr; - return llvm::makeArrayRef(copy, smallvec.size() + 1); -} - -// Parses an argument of --defsym== -static bool parseDefsymAsAbsolute(StringRef opt, StringRef &sym, - uint64_t &addr) { - size_t equalPos = opt.find('='); - if (equalPos == 0 || equalPos == StringRef::npos) - return false; - sym = opt.substr(0, equalPos); - if (opt.substr(equalPos + 1).getAsInteger(0, addr)) - return false; - return true; -} - -// Parses an argument of --defsym== -static bool parseDefsymAsAlias(StringRef opt, StringRef &sym, - StringRef &target) { - size_t equalPos = opt.find('='); - if (equalPos == 0 || equalPos == StringRef::npos) - return false; - sym = opt.substr(0, equalPos); - target = opt.substr(equalPos + 1); - return !target.empty(); -} - -// Parses -z max-page-size= -static bool parseMaxPageSize(StringRef opt, uint64_t &val) { - size_t equalPos = opt.find('='); - if (equalPos == 0 || equalPos == StringRef::npos) - return false; - StringRef value = opt.substr(equalPos + 1); - val = 0; - if (value.getAsInteger(0, val) || !val) - return false; - return true; -} - -bool GnuLdDriver::linkELF(llvm::ArrayRef args, - raw_ostream &diag) { - BumpPtrAllocator alloc; - args = maybeExpandResponseFiles(args, alloc); - std::unique_ptr options; - if (!parse(args, options, diag)) - return false; - if (!options) - return true; - bool linked = link(*options, diag); - - // Handle --stats. - if (options->collectStats()) { - llvm::TimeRecord t = llvm::TimeRecord::getCurrentTime(true); - diag << "total time in link " << t.getProcessTime() << "\n"; - diag << "data size " << t.getMemUsed() << "\n"; - } - return linked; -} - -static llvm::Optional -getArchType(const llvm::Triple &triple, StringRef value) { - switch (triple.getArch()) { - case llvm::Triple::x86: - case llvm::Triple::x86_64: - if (value == "elf_i386") - return llvm::Triple::x86; - if (value == "elf_x86_64") - return llvm::Triple::x86_64; - return llvm::None; - case llvm::Triple::mips: - case llvm::Triple::mipsel: - case llvm::Triple::mips64: - case llvm::Triple::mips64el: - return llvm::StringSwitch>(value) - .Cases("elf32btsmip", "elf32btsmipn32", llvm::Triple::mips) - .Cases("elf32ltsmip", "elf32ltsmipn32", llvm::Triple::mipsel) - .Case("elf64btsmip", llvm::Triple::mips64) - .Case("elf64ltsmip", llvm::Triple::mips64el) - .Default(llvm::None); - case llvm::Triple::aarch64: - if (value == "aarch64linux") - return llvm::Triple::aarch64; - return llvm::None; - case llvm::Triple::arm: - if (value == "armelf_linux_eabi") - return llvm::Triple::arm; - return llvm::None; - default: - return llvm::None; - } -} - -static bool isLinkerScript(StringRef path, raw_ostream &diag) { - llvm::sys::fs::file_magic magic = llvm::sys::fs::file_magic::unknown; - if (std::error_code ec = llvm::sys::fs::identify_magic(path, magic)) { - diag << "unknown input file format: " << path << ": " - << ec.message() << "\n"; - return false; - } - return magic == llvm::sys::fs::file_magic::unknown; -} - -static ErrorOr -findFile(ELFLinkingContext &ctx, StringRef path, bool dashL) { - // If the path was referred to by using a -l argument, let's search - // for the file in the search path. - if (dashL) { - ErrorOr pathOrErr = ctx.searchLibrary(path); - if (std::error_code ec = pathOrErr.getError()) - return make_dynamic_error_code( - Twine("Unable to find library -l") + path + ": " + ec.message()); - path = pathOrErr.get(); - } - if (!llvm::sys::fs::exists(path)) - return make_dynamic_error_code( - Twine("lld: cannot find file ") + path); - return path; -} - -static bool isPathUnderSysroot(StringRef sysroot, StringRef path) { - if (sysroot.empty()) - return false; - while (!path.empty() && !llvm::sys::fs::equivalent(sysroot, path)) - path = llvm::sys::path::parent_path(path); - return !path.empty(); -} - -static std::error_code -addFilesFromLinkerScript(ELFLinkingContext &ctx, StringRef scriptPath, - const std::vector &inputPaths, - raw_ostream &diag) { - bool sysroot = (!ctx.getSysroot().empty() - && isPathUnderSysroot(ctx.getSysroot(), scriptPath)); - for (const script::Path &path : inputPaths) { - ErrorOr pathOrErr = path._isDashlPrefix - ? ctx.searchLibrary(path._path) : ctx.searchFile(path._path, sysroot); - if (std::error_code ec = pathOrErr.getError()) { - auto file = llvm::make_unique(path._path, ec); - ctx.getNodes().push_back(llvm::make_unique(std::move(file))); - continue; - } - - std::vector> files - = loadFile(ctx, pathOrErr.get(), false); - for (std::unique_ptr &file : files) { - if (ctx.logInputFiles()) - diag << file->path() << "\n"; - ctx.getNodes().push_back(llvm::make_unique(std::move(file))); - } - } - return std::error_code(); -} - -std::error_code GnuLdDriver::evalLinkerScript(ELFLinkingContext &ctx, - std::unique_ptr mb, - raw_ostream &diag, - bool nostdlib) { - // Read the script file from disk and parse. - StringRef path = mb->getBufferIdentifier(); - auto parser = llvm::make_unique(std::move(mb)); - if (std::error_code ec = parser->parse()) - return ec; - script::LinkerScript *script = parser->get(); - if (!script) - return LinkerScriptReaderError::parse_error; - // Evaluate script commands. - // Currently we only recognize this subset of linker script commands. - for (const script::Command *c : script->_commands) { - if (auto *input = dyn_cast(c)) - if (std::error_code ec = addFilesFromLinkerScript( - ctx, path, input->getPaths(), diag)) - return ec; - if (auto *group = dyn_cast(c)) { - int origSize = ctx.getNodes().size(); - if (std::error_code ec = addFilesFromLinkerScript( - ctx, path, group->getPaths(), diag)) - return ec; - size_t groupSize = ctx.getNodes().size() - origSize; - ctx.getNodes().push_back(llvm::make_unique(groupSize)); - } - if (auto *searchDir = dyn_cast(c)) - if (!nostdlib) - ctx.addSearchPath(searchDir->getSearchPath()); - if (auto *entry = dyn_cast(c)) - ctx.setEntrySymbolName(entry->getEntryName()); - if (auto *output = dyn_cast(c)) - ctx.setOutputPath(output->getOutputFileName()); - if (auto *externs = dyn_cast(c)) { - for (auto symbol : *externs) { - ctx.addInitialUndefinedSymbol(symbol); - } - } - } - // Transfer ownership of the script to the linking context - ctx.linkerScriptSema().addLinkerScript(std::move(parser)); - return std::error_code(); -} - -bool GnuLdDriver::applyEmulation(llvm::Triple &triple, - llvm::opt::InputArgList &args, - raw_ostream &diag) { - llvm::opt::Arg *arg = args.getLastArg(OPT_m); - if (!arg) - return true; - llvm::Optional arch = - getArchType(triple, arg->getValue()); - if (!arch) { - diag << "error: unsupported emulation '" << arg->getValue() << "'.\n"; - return false; - } - triple.setArch(*arch); - return true; -} - -void GnuLdDriver::addPlatformSearchDirs(ELFLinkingContext &ctx, - llvm::Triple &triple, - llvm::Triple &baseTriple) { - if (triple.getOS() == llvm::Triple::NetBSD && - triple.getArch() == llvm::Triple::x86 && - baseTriple.getArch() == llvm::Triple::x86_64) { - ctx.addSearchPath("=/usr/lib/i386"); - return; - } - ctx.addSearchPath("=/usr/lib"); -} - -std::unique_ptr -GnuLdDriver::createELFLinkingContext(llvm::Triple triple) { - std::unique_ptr p; - if ((p = elf::createAArch64LinkingContext(triple))) return p; - if ((p = elf::createARMLinkingContext(triple))) return p; - if ((p = elf::createExampleLinkingContext(triple))) return p; - if ((p = elf::createHexagonLinkingContext(triple))) return p; - if ((p = elf::createMipsLinkingContext(triple))) return p; - if ((p = elf::createX86LinkingContext(triple))) return p; - if ((p = elf::createX86_64LinkingContext(triple))) return p; - return nullptr; -} - -static llvm::Optional -getBool(const llvm::opt::InputArgList &parsedArgs, - unsigned yesFlag, unsigned noFlag) { - if (auto *arg = parsedArgs.getLastArg(yesFlag, noFlag)) - return arg->getOption().getID() == yesFlag; - return llvm::None; -} - -bool GnuLdDriver::parse(llvm::ArrayRef args, - std::unique_ptr &context, - raw_ostream &diag) { - // Parse command line options using GnuLdOptions.td - GnuLdOptTable table; - unsigned missingIndex; - unsigned missingCount; - - llvm::opt::InputArgList parsedArgs = - table.ParseArgs(args.slice(1), missingIndex, missingCount); - if (missingCount) { - diag << "error: missing arg value for '" - << parsedArgs.getArgString(missingIndex) << "' expected " - << missingCount << " argument(s).\n"; - return false; - } - - // Handle --help - if (parsedArgs.hasArg(OPT_help)) { - table.PrintHelp(llvm::outs(), args[0], "LLVM Linker", false); - return true; - } - - // Use -target or use default target triple to instantiate LinkingContext - llvm::Triple baseTriple; - if (auto *arg = parsedArgs.getLastArg(OPT_target)) { - baseTriple = llvm::Triple(arg->getValue()); - } else { - baseTriple = getDefaultTarget(args[0]); - } - llvm::Triple triple(baseTriple); - - if (!applyEmulation(triple, parsedArgs, diag)) - return false; - - std::unique_ptr ctx(createELFLinkingContext(triple)); - - if (!ctx) { - diag << "unknown target triple\n"; - return false; - } - - // Copy mllvm - for (auto *arg : parsedArgs.filtered(OPT_mllvm)) - ctx->appendLLVMOption(arg->getValue()); - - // Ignore unknown arguments. - for (auto unknownArg : parsedArgs.filtered(OPT_UNKNOWN)) - diag << "warning: ignoring unknown argument: " - << unknownArg->getValue() << "\n"; - - // Set sys root path. - if (auto *arg = parsedArgs.getLastArg(OPT_sysroot)) - ctx->setSysroot(arg->getValue()); - - // Handle --demangle option(For compatibility) - if (parsedArgs.hasArg(OPT_demangle)) - ctx->setDemangleSymbols(true); - - // Handle --no-demangle option. - if (parsedArgs.hasArg(OPT_no_demangle)) - ctx->setDemangleSymbols(false); - - // Figure out output kind (-r, -static, -shared) - if (parsedArgs.hasArg(OPT_relocatable)) { - ctx->setOutputELFType(llvm::ELF::ET_REL); - ctx->setPrintRemainingUndefines(false); - ctx->setAllowRemainingUndefines(true); - } - - if (parsedArgs.hasArg(OPT_static)) { - ctx->setOutputELFType(llvm::ELF::ET_EXEC); - ctx->setIsStaticExecutable(true); - } - - if (parsedArgs.hasArg(OPT_shared)) { - ctx->setOutputELFType(llvm::ELF::ET_DYN); - ctx->setAllowShlibUndefines(true); - ctx->setUseShlibUndefines(false); - ctx->setPrintRemainingUndefines(false); - ctx->setAllowRemainingUndefines(true); - } - - // Handle --stats. - if (parsedArgs.hasArg(OPT_stats)) { - ctx->setCollectStats(true); - } - - // Figure out if the output type is nmagic/omagic - if (auto *arg = - parsedArgs.getLastArg(OPT_nmagic, OPT_omagic, OPT_no_omagic)) { - switch (arg->getOption().getID()) { - case OPT_nmagic: - ctx->setOutputMagic(ELFLinkingContext::OutputMagic::NMAGIC); - ctx->setIsStaticExecutable(true); - break; - case OPT_omagic: - ctx->setOutputMagic(ELFLinkingContext::OutputMagic::OMAGIC); - ctx->setIsStaticExecutable(true); - break; - case OPT_no_omagic: - ctx->setOutputMagic(ELFLinkingContext::OutputMagic::DEFAULT); - ctx->setNoAllowDynamicLibraries(); - break; - } - } - - if (parsedArgs.hasArg(OPT_discard_loc)) - ctx->setDiscardLocals(true); - - if (parsedArgs.hasArg(OPT_discard_temp_loc)) - ctx->setDiscardTempLocals(true); - - if (parsedArgs.hasArg(OPT_strip_all)) - ctx->setStripSymbols(true); - - if (auto *arg = parsedArgs.getLastArg(OPT_soname)) - ctx->setSharedObjectName(arg->getValue()); - - if (parsedArgs.hasArg(OPT_rosegment)) - ctx->setCreateSeparateROSegment(); - - if (parsedArgs.hasArg(OPT_no_align_segments)) - ctx->setAlignSegments(false); - - if (auto *arg = parsedArgs.getLastArg(OPT_image_base)) { - uint64_t baseAddress = 0; - StringRef inputValue = arg->getValue(); - if (inputValue.getAsInteger(0, baseAddress) || !baseAddress) { - diag << "invalid value for image base " << inputValue << "\n"; - return false; - } - ctx->setBaseAddress(baseAddress); - } - - if (parsedArgs.hasArg(OPT_merge_strings)) - ctx->setMergeCommonStrings(true); - - if (parsedArgs.hasArg(OPT_t)) - ctx->setLogInputFiles(true); - - if (parsedArgs.hasArg(OPT_use_shlib_undefs)) - ctx->setUseShlibUndefines(true); - - if (auto val = getBool(parsedArgs, OPT_allow_shlib_undefs, - OPT_no_allow_shlib_undefs)) - ctx->setAllowShlibUndefines(*val); - - if (auto *arg = parsedArgs.getLastArg(OPT_e)) - ctx->setEntrySymbolName(arg->getValue()); - - if (auto *arg = parsedArgs.getLastArg(OPT_output)) - ctx->setOutputPath(arg->getValue()); - - if (parsedArgs.hasArg(OPT_noinhibit_exec)) - ctx->setAllowRemainingUndefines(true); - - if (auto val = getBool(parsedArgs, OPT_export_dynamic, OPT_no_export_dynamic)) - ctx->setExportDynamic(*val); - - if (parsedArgs.hasArg(OPT_allow_multiple_definition)) - ctx->setAllowDuplicates(true); - - if (auto *arg = parsedArgs.getLastArg(OPT_dynamic_linker)) - ctx->setInterpreter(arg->getValue()); - - if (auto *arg = parsedArgs.getLastArg(OPT_init)) - ctx->setInitFunction(arg->getValue()); - - if (auto *arg = parsedArgs.getLastArg(OPT_fini)) - ctx->setFiniFunction(arg->getValue()); - - if (auto *arg = parsedArgs.getLastArg(OPT_output_filetype)) - ctx->setOutputFileType(arg->getValue()); - - // Process ELF/ARM specific options - bool hasArmTarget1Rel = parsedArgs.hasArg(OPT_target1_rel); - bool hasArmTarget1Abs = parsedArgs.hasArg(OPT_target1_abs); - if (triple.getArch() == llvm::Triple::arm) { - if (hasArmTarget1Rel && hasArmTarget1Abs) { - diag << "error: options --target1-rel and --target1-abs" - " can't be used together.\n"; - return false; - } else if (hasArmTarget1Rel || hasArmTarget1Abs) { - ctx->setArmTarget1Rel(hasArmTarget1Rel && !hasArmTarget1Abs); - } - } else { - for (const auto *arg : parsedArgs.filtered(OPT_grp_arm_targetopts)) { - diag << "warning: ignoring unsupported ARM/ELF specific argument: " - << arg->getSpelling() << "\n"; - } - } - - // Process MIPS specific options. - if (triple.getArch() == llvm::Triple::mips || - triple.getArch() == llvm::Triple::mipsel || - triple.getArch() == llvm::Triple::mips64 || - triple.getArch() == llvm::Triple::mips64el) { - ctx->setMipsPcRelEhRel(parsedArgs.hasArg(OPT_pcrel_eh_reloc)); - auto *hashArg = parsedArgs.getLastArg(OPT_hash_style); - if (hashArg && hashArg->getValue() != StringRef("sysv")) { - diag << "error: .gnu.hash is incompatible with the MIPS ABI\n"; - return false; - } - } - else { - for (const auto *arg : parsedArgs.filtered(OPT_grp_mips_targetopts)) { - diag << "warning: ignoring unsupported MIPS specific argument: " - << arg->getSpelling() << "\n"; - } - } - - for (auto *arg : parsedArgs.filtered(OPT_L)) - ctx->addSearchPath(arg->getValue()); - - // Add the default search directory specific to the target. - if (!parsedArgs.hasArg(OPT_nostdlib)) - addPlatformSearchDirs(*ctx, triple, baseTriple); - - for (auto *arg : parsedArgs.filtered(OPT_u)) - ctx->addInitialUndefinedSymbol(arg->getValue()); - - for (auto *arg : parsedArgs.filtered(OPT_defsym)) { - StringRef sym, target; - uint64_t addr; - if (parseDefsymAsAbsolute(arg->getValue(), sym, addr)) { - ctx->addInitialAbsoluteSymbol(sym, addr); - } else if (parseDefsymAsAlias(arg->getValue(), sym, target)) { - ctx->addAlias(sym, target); - } else { - diag << "invalid --defsym: " << arg->getValue() << "\n"; - return false; - } - } - - for (auto *arg : parsedArgs.filtered(OPT_z)) { - StringRef opt = arg->getValue(); - if (opt == "muldefs") - ctx->setAllowDuplicates(true); - else if (opt == "now") - ctx->setDTFlag(ELFLinkingContext::DTFlag::DT_NOW); - else if (opt == "origin") - ctx->setDTFlag(ELFLinkingContext::DTFlag::DT_ORIGIN); - else if (opt.startswith("max-page-size")) { - // Parse -z max-page-size option. - // The default page size is considered the minimum page size the user - // can set, check the user input if its atleast the minimum page size - // and does not exceed the maximum page size allowed for the target. - uint64_t maxPageSize = 0; - - // Error if the page size user set is less than the maximum page size - // and greather than the default page size and the user page size is a - // modulo of the default page size. - if ((!parseMaxPageSize(opt, maxPageSize)) || - (maxPageSize < ctx->getPageSize()) || - (maxPageSize % ctx->getPageSize())) { - diag << "invalid option: " << opt << "\n"; - return false; - } - ctx->setMaxPageSize(maxPageSize); - } else { - diag << "warning: ignoring unknown argument for -z: " << opt << "\n"; - } - } - - for (auto *arg : parsedArgs.filtered(OPT_rpath)) { - SmallVector rpaths; - StringRef(arg->getValue()).split(rpaths, ":"); - for (auto path : rpaths) - ctx->addRpath(path); - } - - for (auto *arg : parsedArgs.filtered(OPT_rpath_link)) { - SmallVector rpaths; - StringRef(arg->getValue()).split(rpaths, ":"); - for (auto path : rpaths) - ctx->addRpathLink(path); - } - - // Enable new dynamic tags. - if (parsedArgs.hasArg(OPT_enable_newdtags)) - ctx->setEnableNewDtags(true); - - // Support --wrap option. - for (auto *arg : parsedArgs.filtered(OPT_wrap)) - ctx->addWrapForSymbol(arg->getValue()); - - // Register possible input file parsers. - ctx->registry().addSupportELFObjects(*ctx); - ctx->registry().addSupportArchives(ctx->logInputFiles()); - ctx->registry().addSupportYamlFiles(); - if (ctx->allowLinkWithDynamicLibraries()) - ctx->registry().addSupportELFDynamicSharedObjects(*ctx); - - // Parse the LLVM options before we process files in case the file handling - // makes use of things like DEBUG(). - parseLLVMOptions(*ctx); - - std::stack groupStack; - int numfiles = 0; - bool asNeeded = false; - bool wholeArchive = false; - - // Process files - for (auto arg : parsedArgs) { - switch (arg->getOption().getID()) { - case OPT_no_whole_archive: - wholeArchive = false; - break; - - case OPT_whole_archive: - wholeArchive = true; - break; - - case OPT_as_needed: - asNeeded = true; - break; - - case OPT_no_as_needed: - asNeeded = false; - break; - - case OPT_start_group: - groupStack.push(numfiles); - break; - - case OPT_end_group: { - if (groupStack.empty()) { - diag << "stray --end-group\n"; - return false; - } - int startGroupPos = groupStack.top(); - ctx->getNodes().push_back( - llvm::make_unique(numfiles - startGroupPos)); - groupStack.pop(); - break; - } - - case OPT_INPUT: - case OPT_l: - case OPT_T: { - bool dashL = (arg->getOption().getID() == OPT_l); - StringRef path = arg->getValue(); - - ErrorOr pathOrErr = findFile(*ctx, path, dashL); - if (std::error_code ec = pathOrErr.getError()) { - auto file = llvm::make_unique(path, ec); - auto node = llvm::make_unique(std::move(file)); - node->setAsNeeded(asNeeded); - ctx->getNodes().push_back(std::move(node)); - break; - } - StringRef realpath = pathOrErr.get(); - - bool isScript = - (!path.endswith(".objtxt") && isLinkerScript(realpath, diag)); - if (isScript) { - if (ctx->logInputFiles()) - diag << path << "\n"; - ErrorOr> mb = - MemoryBuffer::getFileOrSTDIN(realpath); - if (std::error_code ec = mb.getError()) { - diag << "Cannot open " << path << ": " << ec.message() << "\n"; - return false; - } - bool nostdlib = parsedArgs.hasArg(OPT_nostdlib); - std::error_code ec = - evalLinkerScript(*ctx, std::move(mb.get()), diag, nostdlib); - if (ec) { - diag << path << ": Error parsing linker script: " - << ec.message() << "\n"; - return false; - } - break; - } - std::vector> files - = loadFile(*ctx, realpath, wholeArchive); - for (std::unique_ptr &file : files) { - if (ctx->logInputFiles()) - diag << file->path() << "\n"; - auto node = llvm::make_unique(std::move(file)); - node->setAsNeeded(asNeeded); - ctx->getNodes().push_back(std::move(node)); - } - numfiles += files.size(); - break; - } - } - } - - if (ctx->getNodes().empty()) { - diag << "No input files\n"; - return false; - } - - // Set default output file name if the output file was not specified. - if (ctx->outputPath().empty()) { - switch (ctx->outputFileType()) { - case LinkingContext::OutputFileType::YAML: - ctx->setOutputPath("-"); - break; - default: - ctx->setOutputPath("a.out"); - break; - } - } - - // Validate the combination of options used. - if (!ctx->validate(diag)) - return false; - - // Perform linker script semantic actions - if (auto ec = ctx->linkerScriptSema().perform()) { - diag << "Error in the linker script's semantics: " << ec.message() << "\n"; - return false; - } - - context.swap(ctx); - return true; -} - -/// Get the default target triple based on either the program name -/// (e.g. "x86-ibm-linux-lld") or the primary target llvm was configured for. -llvm::Triple GnuLdDriver::getDefaultTarget(const char *progName) { - SmallVector components; - llvm::SplitString(llvm::sys::path::stem(progName), components, "-"); - // If has enough parts to be start with a triple. - if (components.size() >= 4) { - llvm::Triple triple(components[0], components[1], components[2], - components[3]); - // If first component looks like an arch. - if (triple.getArch() != llvm::Triple::UnknownArch) - return triple; - } - - // Fallback to use whatever default triple llvm was configured for. - return llvm::Triple(llvm::sys::getDefaultTargetTriple()); -} diff --git a/lld/lib/Driver/GnuLdOptions.td b/lld/lib/Driver/GnuLdOptions.td deleted file mode 100644 index 7d850d4..0000000 --- a/lld/lib/Driver/GnuLdOptions.td +++ /dev/null @@ -1,378 +0,0 @@ -include "llvm/Option/OptParser.td" - -//===----------------------------------------------------------------------===// -/// Utility Functions -//===----------------------------------------------------------------------===// -// Single and multiple dash options combined -multiclass smDash { - // Option - def "" : Separate<["-"], opt1>, HelpText; - def opt1_eq : Joined<["-"], opt1#"=">, - Alias(opt1)>; - // Compatibility aliases - def opt2_dashdash : Separate<["--"], opt2>, - Alias(opt1)>; - def opt2_dashdash_eq : Joined<["--"], opt2#"=">, - Alias(opt1)>; -} - -// Support -