Path: csiph.com!xmission!news.snarked.org!news.linkpendium.com!news.linkpendium.com!panix!usenet.stanford.edu!not-for-mail From: Mark Millard Newsgroups: gnu.utils.bug Subject: ld 2.33.1 targeting powerpc64: can get stuck in an unbounded loop condition in bfd/elf64-ppc.c Date: Fri, 10 Jan 2020 23:23:07 -0800 Lines: 329 Approved: bug-gnu-utils@gnu.org Message-ID: References: <6A51EA4F-6C26-45B5-8B7E-FAF4A8B84565.ref@yahoo.com> <6A51EA4F-6C26-45B5-8B7E-FAF4A8B84565@yahoo.com> NNTP-Posting-Host: lists.gnu.org Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3608.40.2.2.4\)) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Trace: usenet.stanford.edu 1578743338 19773 209.51.188.17 (11 Jan 2020 11:48:58 GMT) X-Complaints-To: action@cs.stanford.edu To: bug-gnu-utils@gnu.org Envelope-to: bug-gnu-utils@gnu.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1578727393; bh=CJuE8lc3Yo2Kh6iJdnGubsjCezxWUJ0wlwbbFj8V5Ac=; h=From:Subject:Date:To:References:From:Subject; b=uljpGvMuNlaqsbCOUvvTE5T+Bud+cG0leHb4sC+1vPo3KwVwfa67zgehmdr8F81sG8Rxb/fb1bnBKOamipUkovuigZR9mVq76BDs8UHYl1ePGbon/82CYLs8gj0Xj3s32gSwsYzhuJdcPpPvR3OjT+NS82hCVj7frVgAQyqfa3r7Imkdj7+kQOr4eCvVCTOu6zY8ro/EVPAX91pXdSLg0X71d12Z8vXontevkie+0sii/nhscJiey7edsX8Q2bhoaZ+WBIG2Jvuyz0U0yq5clG+moSrbfXCtFOJ211JtrD6Au+PC4a5ahDt+aTNcLS7f+X+wrvm1tOBQy4dVJOuKLA== X-YMail-OSG: _HT0WzcVM1mKR_JYm22drn41QS3iva0C5RO0LeJIKCd_p4yvqOfofT6mn0k_8c6 89xDTss8rRSkQk9p1BdYONuoNDkfnW.WpMPbAkVofN7VOWqKItFghQ3n65oTikfT1QUFzzxD.BrJ jSck15_jxY8vqD4eAEv6OEV7UL5zLjN.U7nLAlLUvg5NEBmcgQzU56uV2N9oHKCAp5ez7BBQmp96 PSuYTp5ey9O0oKXyyzRRBBNdhtOHfPQy2B26KYNq6KPYgE6aXCP6YgIswBkNNl..x5gw5C1SVWL. COw0T_LLYZVjyteMk1N8Hv38IuLATuKfAUdjhWmDt08e2vGvcZKyouBKNN49WgaE.fkqNHnEds29 hd7yEgrplhH.oub2SwWHExufMyw0NbprWQpstbFl1qA.A7k2VrTcW8_BR69Uq5y7CfQcQzBcagJK K1PGJR7l9QNSuEM7yy.l2A23WfCrWR2qW6Mg3ML.SztYgjHg3xqukmCP3e0f0VsR0wrSW9gXgm6v ECUDg0hMJ1qkaXqIg6mNjdlFO5ooNa8oBPNFBPJLL7jqacs9Bd0PvtADJnyhoVQXwij5db61Vv_A kRLL4KkWSkIdiCzipxSCTXD9t5ZHdnBA9li_tsB2XLgQweizJ_auMQKPhjU8OLqp5CQJW1dnx4bn hns5gSZPSPOm2INKE6c7qEpSGZ9_z8mQDOCnWNXtBYp7OkT9ElpkYT_I8geoG2hoXlpQUjkE1RUy B.O7ThtFTKwa7NRi3oETnYCUydjOwN5.GtzM2vGaOQWki.cqqt1gY6Cp9hzMT19N3ayj5msarB5W PDezGee9eJ_PWMs0PCWAWCTN4L5N4iyDZf3Ul8XdZGeEyTye_2myaISXGnl4HTXRJ9Nct5OdgzQ_ o975x4C8hlKDcxwq29mkhBP9UgHPf8qCZyrsgkhQrB1uDjwXqTW9hSb297kOei2MTBVAZBZvxLoQ Sq3kvVLcntPZYiFfdPX_oNGR_fjqy.c.gVFP9y5WMAojUFYIxwulMs9hQAVj2foKzV.1zZ6QotWI Qgra6R_FGFeHlkMcHQAZHv1i8xmJf6oE0cTIdaXtS6lOd0Zt5Sv3byAtOk5jqNDE8kQEsJCE0JXz 7PUbygCXSqp5pdIMn7c3PmPqWLxFbx74fCZOBm_2EAyyxWU0D806XFUonzLQPHU23GghgYFSDEGf wV.0.3smqnMRKbz.TwiAcH0Z_e8yZE_z9g7S6u3e.IeUU2N8HqCdZbHVC5PnNU3n1EUaU7DPTvyW s6QUd_F8TzUWdZ5yguAURBeZstHgXY7rMU4_K76MWhSM99I4.uCdGMEFgRSCdG757wJORfPtayhL XkAQLvQwYQwS638DHLnSQu3d4XOygmmzqstpgEIPWrdBiFwGNOZf5EW_FDwOWoFLUH7qcG.hG4xh Ifdabj6Q- X-Mailer: Apple Mail (2.3608.40.2.2.4) Content-Length: 14714 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 98.137.68.82 X-Mailman-Approved-At: Sat, 11 Jan 2020 06:48:57 -0500 X-BeenThere: bug-gnu-utils@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Bug reports for the GNU utilities List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: <6A51EA4F-6C26-45B5-8B7E-FAF4A8B84565@yahoo.com> X-Mailman-Original-References: <6A51EA4F-6C26-45B5-8B7E-FAF4A8B84565.ref@yahoo.com> Xref: csiph.com gnu.utils.bug:2271 ld version (for targetting powerpc64 from amd64): ( from the port devel/binutils@powerpc64 ) # powerpc64-unknown-freebsd13.0-ld --version GNU ld (GNU Binutils) 2.33.1 . . . Host OS version: # uname -apKU FreeBSD ... 13.0-CURRENT FreeBSD 13.0-CURRENT #57 r356426M: Mon Jan 6 = 16:37:25 PST 2020 . . . amd64 amd64 1300075 1300075 compiler used to build ld : # cc -v FreeBSD clang version 9.0.1 (git@github.com:llvm/llvm-project.git = c1a0a213378a458fbea1a5c77b315c7dce08fd05) (based on LLVM 9.0.1) Target: x86_64-unknown-freebsd13.0 Thread model: posix InstalledDir: /usr/bin compiler/toolchain used to produced what was being linked: devel/freebsd-gcc9@powerpc64 (compiler) and devel/binutils@powerpc64 (other toolchain items). As for the gcc9 version: # /usr/local/bin/powerpc64-unknown-freebsd13.0-g++9 --version powerpc64-unknown-freebsd13.0-g++9 (FreeBSD Ports Collection for = powerpc64) 9.2.0 The evidence: I was able to attach with gdb and identify the looping code, done originally after the code had been running for hours: [Switching to LWP 100943 of process 14113] 0x000000000035431d in ppc64_elf_inline_plt (info=3D) at = elf64-ppc.c:7473 7473 && r_type !=3D R_PPC64_PLTCALL_NOTOC) (gdb) bt #0 0x000000000035431d in ppc64_elf_inline_plt (info=3D) = at elf64-ppc.c:7473 #1 0x000000000032acb0 in ppc_before_allocation () at = eelf64ppc_fbsd.c:370 #2 0x0000000000319651 in lang_process () at ldlang.c:7678 #3 0x00000000003208d8 in main (argc=3D, argv=3D) at ./ldmain.c:441 As for the source code that loops badly in some contexts: . . . /* Read the relocations. */ relstart =3D _bfd_elf_link_read_relocs (ibfd, sec, NULL, = NULL, info->keep_memory); if (relstart =3D=3D NULL) return FALSE; relend =3D relstart + sec->reloc_count; for (rel =3D relstart; rel < relend; ) { enum elf_ppc64_reloc_type r_type; unsigned long r_symndx; asection *sym_sec; struct elf_link_hash_entry *h; Elf_Internal_Sym *sym; unsigned char *tls_maskp; r_type =3D ELF64_R_TYPE (rel->r_info); if (r_type !=3D R_PPC64_PLTCALL && r_type !=3D R_PPC64_PLTCALL_NOTOC) continue; . . . Nothing is done before the continue to make rel progress towards relend (or relend towards relstart). It just repeats the same activity over and over on the same rel value. An observed case is: (gdb) print r_type $1 =3D R_PPC64_REL16_HA (gdb) print/x *rel $3 =3D {r_offset =3D 0x2, r_info =3D 0x18000000fc, r_addend =3D 0x2} (I expect that unbounded looping is treated as equivalent to a crash is so is a bug to report, no matter what the inputs were.) Unfortunately the context was large and complicated: it failed trying to produce lld and so far I've not isolated how to get R_PPC64_REL16_HA to occur in that loop in a smaller context (or anything else that would cause the continue to execute). But I figured this evidence, of the unbounded loop existing, would be useful. However, here is the linker command that was recorded. powerpc64-unknown-freebsd13.0-ld was run via powerpc64-unknown-freebsd13.0-g++9 but that had -v so there is a lot of output detail: (There likely is some odd line splitting in getting it copied over.) # Meta data file = /usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/powerpc.po= werpc64/usr.bin/clang/lld/ld.lld.full.meta CMD /usr/local/bin/powerpc64-unknown-freebsd13.0-g++9 = --sysroot=3D/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/sr= c/powerpc.powerpc64/tmp -B/usr/local/powerpc64-unknown-freebsd13.0/bin/ = -O 2 -pipe -I/usr/src/contrib/llvm-project/lld/ELF = -I/usr/src/contrib/llvm-project/lld/include = -I/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/powerpc.= powerpc64/usr.bin/clang/lld -I/usr = /obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/powerpc.powerp= c64/lib/clang/libllvm -I/usr/src/lib/clang/include = -I/usr/src/contrib/llvm-project/llvm/include -D__STDC_CONSTANT_MACROS = -D__S TDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DHAVE_VCS_VERSION_INC = -DLLVM_DEFAULT_TARGET_TRIPLE=3D\"powerpc64-unknown-freebsd13.0\" = -DLLVM_HOST_TRIPLE=3D\"powerpc64-unknown-freebsd13.0\" = -DDEFAULT_SYSROOT=3D\"\ " -DLLVM_TARGET_ENABLE_POWERPC = -DLLVM_NATIVE_ASMPARSER=3DLLVMInitializePowerPCAsmParser = -DLLVM_NATIVE_ASMPRINTER=3DLLVMInitializePowerPCAsmPrinter = -DLLVM_NATIVE_DISASSEMBLER=3DLLVMInitializePowerPCDisassemb ler -DLLVM_NATIVE_TARGET=3DLLVMInitializePowerPCTarget = -DLLVM_NATIVE_TARGETINFO=3DLLVMInitializePowerPCTargetInfo = -DLLVM_NATIVE_TARGETMC=3DLLVMInitializePowerPCTargetMC = -ffunction-sections -fdata-sections - g1 -Wno-format-zero-length -fstack-protector-strong -Wno-error=3Daddress = -Wno-error=3Darray-bounds -Wno-error=3Dattributes = -Wno-error=3Dbool-compare -Wno-error=3Dcast-align -Wno-error=3Dclobbered = -Wno-error=3Ddepre cated-declarations -Wno-error=3Denum-compare -Wno-error=3Dextra = -Wno-error=3Dinline -Wno-error=3Dlogical-not-parentheses = -Wno-error=3Dstrict-aliasing -Wno-error=3Duninitialized = -Wno-error=3Dunused-but-set-variable -Wno-error=3Dunused-function -Wno-error=3Dunused-value = -Wno-error=3Dmisleading-indentation -Wno-error=3Dnonnull-compare = -Wno-error=3Dshift-negative-value -Wno-error=3Dtautological-compare = -Wno-error=3Dunused-const- variable -Wno-error=3Dbool-operation -Wno-error=3Ddeprecated = -Wno-error=3Dexpansion-to-defined -Wno-error=3Dformat-overflow = -Wno-error=3Dformat-truncation -Wno-error=3Dimplicit-fallthrough = -Wno-error=3Dint-in-bool- context -Wno-error=3Dmemset-elt-size -Wno-error=3Dnoexcept-type = -Wno-error=3Dnonnull -Wno-error=3Dpointer-compare = -Wno-error=3Dstringop-overflow -Wno-error=3Daggressive-loop-optimizations = -Wno-error=3Dcast-function -type -Wno-error=3Dcatch-value -Wno-error=3Dmultistatement-macros = -Wno-error=3Drestrict -Wno-error=3Dsizeof-pointer-memaccess = -Wno-error=3Dstringop-truncation -Wno-address-of-packed-member -v = -fno-exceptions -f no-rtti -std=3Dc++11 -Wl,--gc-sections -o ld.lld.full Common/Args.o = Common/ErrorHandler.o Common/Filesystem.o Common/Memory.o = Common/Reproduce.o Common/Strings.o Common/TargetOptionsCommandFlags.o C ommon/Threads.o Common/Version.o ELF/AArch64ErrataFix.o = ELF/Arch/AArch64.o ELF/Arch/AMDGPU.o ELF/Arch/ARM.o ELF/Arch/AVR.o = ELF/Arch/Hexagon.o ELF/Arch/MSP430.o ELF/Arch/Mips.o = ELF/Arch/MipsArchTree.o ELF/Arch/PPC.o ELF/Arch/PPC64.o ELF/Arch/RISCV.o ELF/Arch/SPARCV9.o = ELF/Arch/X86.o ELF/Arch/X86_64.o ELF/CallGraphSort.o ELF/DWARF.o = ELF/Driver.o ELF/DriverUtils.o ELF/EhFrame.o ELF/ICF.o ELF/InputFil es.o ELF/InputSection.o ELF/LTO.o ELF/LinkerScript.o ELF/MapFile.o = ELF/MarkLive.o ELF/OutputSections.o ELF/Relocations.o ELF/ScriptLexer.o = ELF/ScriptParser.o ELF/SymbolTable.o ELF/Symbols.o ELF/Synthe ticSections.o ELF/Target.o ELF/Thunks.o ELF/Writer.o lib/Core/Error.o = lib/Core/File.o lib/Core/LinkingContext.o lib/Core/Reader.o = lib/Core/Resolver.o lib/Core/SymbolTable.o tools/lld/lld.o /usr/obj/po = werpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/powerpc.powerpc64/lib= /clang/libllvm/libllvm.a -lexecinfo -lncursesw -lz -lpthread CWD = /usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/powerpc.po= werpc64/usr.bin/clang/lld TARGET ld.lld.full -- command output -- Using built-in specs. COLLECT_GCC=3D/usr/local/bin/powerpc64-unknown-freebsd13.0-g++9 = COLLECT_LTO_WRAPPER=3D/usr/local/libexec/gcc/powerpc64-unknown-freebsd13.0= /9.2.0/lto-wrapper Target: powerpc64-unknown-freebsd13.0 Configured with: = /wrkdirs/usr/ports/devel/freebsd-gcc9/work-powerpc64/gcc-9.2.0/configure = --target=3Dpowerpc64-unknown-freebsd13.0 --disable-nls = --enable-languages=3Dc,c++ --enable-gnu-indirect-function - -enable-initfini-array --program-prefix=3Dpowerpc64-unknown-freebsd13.0- = --program-suffix=3D9 --without-headers --with-gmp=3D/usr/local = --with-pkgversion=3D'FreeBSD Ports Collection for powerpc64' --with-syst em-zlib --with-gxx-include-dir=3D/usr/include/c++/v1/ --with-sysroot=3D/ = --with-as=3D/usr/local/bin/powerpc64-unknown-freebsd13.0-as = --with-ld=3D/usr/local/bin/powerpc64-unknown-freebsd13.0-ld = --with-abi=3Delfv 2 --prefix=3D/usr/local --localstatedir=3D/var --mandir=3D/usr/local/man = --infodir=3D/usr/local/share/info/ --build=3Dx86_64-unknown-freebsd13.0 Thread model: posix gcc version 9.2.0 (FreeBSD Ports Collection for powerpc64) = COMPILER_PATH=3D/usr/local/powerpc64-unknown-freebsd13.0/bin/:/usr/local/l= ibexec/gcc/powerpc64-unknown-freebsd13.0/9.2.0/:/usr/local/libexec/gcc/pow= erpc64-unknown-freebsd13.0/9.2.0/:/usr/local/libexec/g = cc/powerpc64-unknown-freebsd13.0/:/usr/local/lib/gcc/powerpc64-unknown-fre= ebsd13.0/9.2.0/:/usr/local/lib/gcc/powerpc64-unknown-freebsd13.0/:/usr/loc= al/lib/gcc/powerpc64-unknown-freebsd13.0/9.2.0/../.. /../../powerpc64-unknown-freebsd13.0/bin/ = LIBRARY_PATH=3D/usr/local/powerpc64-unknown-freebsd13.0/bin/:/usr/local/li= b/gcc/powerpc64-unknown-freebsd13.0/9.2.0/:/usr/obj/powerpc64vtsc_xtoolcha= in-gcc/powerpc.powerpc64/usr/src/powerpc.powerpc64/tmp /usr/lib/ COLLECT_GCC_OPTIONS=3D'-B' = '/usr/local/powerpc64-unknown-freebsd13.0/bin/' '-O2' '-pipe' '-I' = '/usr/src/contrib/llvm-project/lld/ELF' '-I' = '/usr/src/contrib/llvm-project/lld/include' '-I' '/usr/obj/powe = rpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/powerpc.powerpc64/usr.b= in/clang/lld' '-I' = '/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/powerpc.p= owerpc64/lib/clang/libllvm' '-I' '/usr/src/lib/clang/include' '-I' = '/usr/src/contrib/llvm-project/llvm/include' '-D' = '__STDC_CONSTANT_MACROS' '-D' '__STDC_FORMAT_MACROS' '-D' = '__STDC_LIMIT_MACROS' '-D' 'HAVE_VCS_VERSION_INC' '-D' 'LL VM_DEFAULT_TARGET_TRIPLE=3D"powerpc64-unknown-freebsd13.0"' '-D' = 'LLVM_HOST_TRIPLE=3D"powerpc64-unknown-freebsd13.0"' '-D' = 'DEFAULT_SYSROOT=3D""' '-D' 'LLVM_TARGET_ENABLE_POWERPC' '-D' = 'LLVM_NATIVE_ASMPARSE R=3DLLVMInitializePowerPCAsmParser' '-D' = 'LLVM_NATIVE_ASMPRINTER=3DLLVMInitializePowerPCAsmPrinter' '-D' = 'LLVM_NATIVE_DISASSEMBLER=3DLLVMInitializePowerPCDisassembler' '-D' = 'LLVM_NATIVE_TARGET=3DLLVMInitializ ePowerPCTarget' '-D' = 'LLVM_NATIVE_TARGETINFO=3DLLVMInitializePowerPCTargetInfo' '-D' = 'LLVM_NATIVE_TARGETMC=3DLLVMInitializePowerPCTargetMC' = '-ffunction-sections' '-fdata-sections' '-g1' '-Wno-format-zero- length' '-fstack-protector-strong' '-Wno-error=3Daddress' = '-Wno-error=3Darray-bounds' '-Wno-error=3Dattributes' = '-Wno-error=3Dbool-compare' '-Wno-error=3Dcast-align' = '-Wno-error=3Dclobbered' '-Wno-error=3Ddeprecate d-declarations' '-Wno-error=3Denum-compare' '-Wno-error=3Dextra' = '-Wno-error=3Dinline' '-Wno-error=3Dlogical-not-parentheses' = '-Wno-error=3Dstrict-aliasing' '-Wno-error=3Duninitialized' = '-Wno-error=3Dunused-but-set -variable' '-Wno-error=3Dunused-function' '-Wno-error=3Dunused-value' = '-Wno-error=3Dmisleading-indentation' '-Wno-error=3Dnonnull-compare' = '-Wno-error=3Dshift-negative-value' '-Wno-error=3Dtautological-compare' = ' -Wno-error=3Dunused-const-variable' '-Wno-error=3Dbool-operation' = '-Wno-error=3Ddeprecated' '-Wno-error=3Dexpansion-to-defined' = '-Wno-error=3Dformat-overflow' '-Wno-error=3Dformat-truncation' = '-Wno-error=3Dimplicit -fallthrough' '-Wno-error=3Dint-in-bool-context' = '-Wno-error=3Dmemset-elt-size' '-Wno-error=3Dnoexcept-type' = '-Wno-error=3Dnonnull' '-Wno-error=3Dpointer-compare' = '-Wno-error=3Dstringop-overflow' '-Wno-error=3Daggr essive-loop-optimizations' '-Wno-error=3Dcast-function-type' = '-Wno-error=3Dcatch-value' '-Wno-error=3Dmultistatement-macros' = '-Wno-error=3Drestrict' '-Wno-error=3Dsizeof-pointer-memaccess' = '-Wno-error=3Dstringop- truncation' '-Wno-address-of-packed-member' '-v' '-fno-exceptions' = '-fno-rtti' '-std=3Dc++11' '-o' 'ld.lld.full' '-shared-libgcc' = '-mabi=3Delfv2' /usr/local/libexec/gcc/powerpc64-unknown-freebsd13.0/9.2.0/collect2 = -plugin = /usr/local/libexec/gcc/powerpc64-unknown-freebsd13.0/9.2.0/liblto_plugin.s= o -plugin-opt=3D/usr/local/libexec/gcc/powerpc64-un known-freebsd13.0/9.2.0/lto-wrapper = -plugin-opt=3D-fresolution=3D/tmp//ccTkdsPB.res = -plugin-opt=3D-pass-through=3D-lgcc_s -plugin-opt=3D-pass-through=3D-lgcc = -plugin-opt=3D-pass-through=3D-lc -plugin-opt=3D-pass-throug h=3D-lgcc_s -plugin-opt=3D-pass-through=3D-lgcc = --sysroot=3D/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/sr= c/powerpc.powerpc64/tmp --eh-frame-hdr -V -melf64ppc_fbsd -V = -dynamic-linker /libexec/ ld-elf.so.1 -o ld.lld.full = /usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/powerpc.po= werpc64/tmp/usr/lib/crt1.o = /usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/powerpc. powerpc64/tmp/usr/lib/crti.o = /usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/powerpc.po= werpc64/tmp/usr/lib/crtbegin.o = -L/usr/local/powerpc64-unknown-freebsd13.0/bin -L/usr/local/lib/gc c/powerpc64-unknown-freebsd13.0/9.2.0 = -L/usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/powerpc.= powerpc64/tmp/usr/lib --gc-sections Common/Args.o Common/ErrorHandler.o = Common/Filesyste m.o Common/Memory.o Common/Reproduce.o Common/Strings.o = Common/TargetOptionsCommandFlags.o Common/Threads.o Common/Version.o = ELF/AArch64ErrataFix.o ELF/Arch/AArch64.o ELF/Arch/AMDGPU.o = ELF/Arch/ARM.o ELF/Arch/AVR.o ELF/Arch/Hexagon.o ELF/Arch/MSP430.o ELF/Arch/Mips.o = ELF/Arch/MipsArchTree.o ELF/Arch/PPC.o ELF/Arch/PPC64.o ELF/Arch/RISCV.o = ELF/Arch/SPARCV9.o ELF/Arch/X86.o ELF/Arch/X86_64.o ELF/Cal lGraphSort.o ELF/DWARF.o ELF/Driver.o ELF/DriverUtils.o ELF/EhFrame.o = ELF/ICF.o ELF/InputFiles.o ELF/InputSection.o ELF/LTO.o = ELF/LinkerScript.o ELF/MapFile.o ELF/MarkLive.o ELF/OutputSections.o = ELF/R elocations.o ELF/ScriptLexer.o ELF/ScriptParser.o ELF/SymbolTable.o = ELF/Symbols.o ELF/SyntheticSections.o ELF/Target.o ELF/Thunks.o = ELF/Writer.o lib/Core/Error.o lib/Core/File.o lib/Core/LinkingContex t.o lib/Core/Reader.o lib/Core/Resolver.o lib/Core/SymbolTable.o = tools/lld/lld.o = /usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/powerpc.po= werpc64/lib/clang/libllvm/libllvm.a -lexecinf o -lncursesw -lz -lpthread -lc++ -lm -lssp_nonshared -lgcc_s -lgcc -lc = -lgcc_s -lgcc = /usr/obj/powerpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/powerpc.po= werpc64/tmp/usr/lib/crtend.o /usr/obj/pow = erpc64vtsc_xtoolchain-gcc/powerpc.powerpc64/usr/src/powerpc.powerpc64/tmp/= usr/lib/crtn.o =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)