root@Unimatrix08-Jammy:/clang# /usr/bin/g++-12 -O3 -fstack-protector-strong -Wformat -Werror=format-security -Wno-unused-command-line-argument -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fdebug-prefix-map=/llvm-toolchain-16-16.0.5/build-llvm=build-llvm -fdebug-prefix-map=/llvm-toolchain-16-16.0.5/= -no-canonical-prefixes -ffile-prefix-map=/llvm-toolchain-16-16.0.5/build-llvm=build-llvm -ffile-prefix-map=/llvm-toolchain-16-16.0.5/= -no-canonical-prefixes -fno-common -Woverloaded-virtual -fno-strict-aliasing -O3 -DNDEBUG -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,--build-id -fuse-ld=bfd -Wl,--gc-sections tools/clang/tools/driver/CMakeFiles/clang.dir/driver.cpp.o tools/clang/tools/driver/CMakeFiles/clang.dir/cc1_main.cpp.o tools/clang/tools/driver/CMakeFiles/clang.dir/cc1as_main.cpp.o tools/clang/tools/driver/CMakeFiles/clang.dir/cc1gen_reproducer_main.cpp.o tools/clang/tools/driver/CMakeFiles/clang.dir/clang-driver.cpp.o -o bin/clang-16-bfd -Wl,-rpath,"\$ORIGIN/../lib:" lib/libLLVMPowerPCCodeGen.a lib/libLLVMPowerPCAsmParser.a lib/libLLVMPowerPCDesc.a lib/libLLVMPowerPCDisassembler.a lib/libLLVMPowerPCInfo.a lib/libLLVMAnalysis.a lib/libLLVMCodeGen.a lib/libLLVMCore.a lib/libLLVMipo.a lib/libLLVMAggressiveInstCombine.a lib/libLLVMInstCombine.a lib/libLLVMInstrumentation.a lib/libLLVMMC.a lib/libLLVMMCParser.a lib/libLLVMObjCARCOpts.a lib/libLLVMOption.a lib/libLLVMScalarOpts.a lib/libLLVMSupport.a lib/libLLVMTargetParser.a lib/libLLVMTransformUtils.a lib/libLLVMVectorize.a lib/libclangBasic.a lib/libclangCodeGen.a lib/libclangDriver.a lib/libclangFrontend.a lib/libclangFrontendTool.a lib/libclangSerialization.a lib/libLLVMAsmPrinter.a lib/libLLVMGlobalISel.a lib/libLLVMSelectionDAG.a lib/libLLVMMCDisassembler.a lib/libclangCodeGen.a lib/libLLVMCoverage.a lib/libLLVMLTO.a lib/libLLVMExtensions.a lib/libPolly.a lib/libPollyISL.a lib/libLLVMPasses.a lib/libLLVMCodeGen.a lib/libLLVMObjCARCOpts.a lib/libLLVMTarget.a lib/libLLVMCoroutines.a lib/libLLVMipo.a lib/libLLVMInstrumentation.a lib/libLLVMVectorize.a lib/libLLVMBitWriter.a lib/libLLVMLinker.a lib/libLLVMIRPrinter.a lib/libclangExtractAPI.a lib/libclangRewriteFrontend.a lib/libclangARCMigrate.a lib/libclangStaticAnalyzerFrontend.a lib/libclangStaticAnalyzerCheckers.a lib/libclangStaticAnalyzerCore.a lib/libclangCrossTU.a lib/libclangIndex.a lib/libclangFrontend.a lib/libclangDriver.a lib/libLLVMWindowsDriver.a lib/libLLVMOption.a lib/libclangParse.a lib/libclangSerialization.a lib/libclangSema.a lib/libclangAnalysis.a lib/libclangASTMatchers.a lib/libLLVMFrontendHLSL.a lib/libclangEdit.a lib/libclangSupport.a lib/libclangAST.a lib/libLLVMFrontendOpenMP.a lib/libLLVMScalarOpts.a lib/libLLVMAggressiveInstCombine.a lib/libLLVMInstCombine.a lib/libLLVMTransformUtils.a lib/libLLVMAnalysis.a lib/libLLVMProfileData.a lib/libLLVMSymbolize.a lib/libLLVMDebugInfoDWARF.a lib/libLLVMDebugInfoPDB.a lib/libLLVMObject.a lib/libLLVMMCParser.a lib/libLLVMMC.a lib/libLLVMIRReader.a lib/libLLVMBitReader.a lib/libLLVMAsmParser.a lib/libLLVMTextAPI.a lib/libLLVMDebugInfoCodeView.a lib/libLLVMDebugInfoMSF.a lib/libLLVMCore.a lib/libLLVMBinaryFormat.a lib/libLLVMRemarks.a lib/libLLVMBitstreamReader.a lib/libclangFormat.a lib/libclangToolingInclusions.a lib/libclangToolingCore.a lib/libclangRewrite.a lib/libclangLex.a lib/libclangBasic.a lib/libLLVMTargetParser.a lib/libLLVMSupport.a lib/libLLVMDemangle.a -lrt -ldl -lm /usr/lib/powerpc64le-linux-gnu/libz.so /usr/lib/powerpc64le-linux-gnu/libtinfo.so
root@Unimatrix08-Jammy:/clang# /usr/bin/g++-12 -O3 -fstack-protector-strong -Wformat -Werror=format-security -Wno-unused-command-line-argument -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fdebug-prefix-map=/llvm-toolchain-16-16.0.5/build-llvm=build-llvm -fdebug-prefix-map=/llvm-toolchain-16-16.0.5/= -no-canonical-prefixes -ffile-prefix-map=/llvm-toolchain-16-16.0.5/build-llvm=build-llvm -ffile-prefix-map=/llvm-toolchain-16-16.0.5/= -no-canonical-prefixes -fno-common -Woverloaded-virtual -fno-strict-aliasing -O3 -DNDEBUG -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,--build-id -fuse-ld=gold -Wl,--gc-sections tools/clang/tools/driver/CMakeFiles/clang.dir/driver.cpp.o tools/clang/tools/driver/CMakeFiles/clang.dir/cc1_main.cpp.o tools/clang/tools/driver/CMakeFiles/clang.dir/cc1as_main.cpp.o tools/clang/tools/driver/CMakeFiles/clang.dir/cc1gen_reproducer_main.cpp.o tools/clang/tools/driver/CMakeFiles/clang.dir/clang-driver.cpp.o -o bin/clang-16 -Wl,-rpath,"\$ORIGIN/../lib:" lib/libLLVMPowerPCCodeGen.a lib/libLLVMPowerPCAsmParser.a lib/libLLVMPowerPCDesc.a lib/libLLVMPowerPCDisassembler.a lib/libLLVMPowerPCInfo.a lib/libLLVMAnalysis.a lib/libLLVMCodeGen.a lib/libLLVMCore.a lib/libLLVMipo.a lib/libLLVMAggressiveInstCombine.a lib/libLLVMInstCombine.a lib/libLLVMInstrumentation.a lib/libLLVMMC.a lib/libLLVMMCParser.a lib/libLLVMObjCARCOpts.a lib/libLLVMOption.a lib/libLLVMScalarOpts.a lib/libLLVMSupport.a lib/libLLVMTargetParser.a lib/libLLVMTransformUtils.a lib/libLLVMVectorize.a lib/libclangBasic.a lib/libclangCodeGen.a lib/libclangDriver.a lib/libclangFrontend.a lib/libclangFrontendTool.a lib/libclangSerialization.a lib/libLLVMAsmPrinter.a lib/libLLVMGlobalISel.a lib/libLLVMSelectionDAG.a lib/libLLVMMCDisassembler.a lib/libclangCodeGen.a lib/libLLVMCoverage.a lib/libLLVMLTO.a lib/libLLVMExtensions.a lib/libPolly.a lib/libPollyISL.a lib/libLLVMPasses.a lib/libLLVMCodeGen.a lib/libLLVMObjCARCOpts.a lib/libLLVMTarget.a lib/libLLVMCoroutines.a lib/libLLVMipo.a lib/libLLVMInstrumentation.a lib/libLLVMVectorize.a lib/libLLVMBitWriter.a lib/libLLVMLinker.a lib/libLLVMIRPrinter.a lib/libclangExtractAPI.a lib/libclangRewriteFrontend.a lib/libclangARCMigrate.a lib/libclangStaticAnalyzerFrontend.a lib/libclangStaticAnalyzerCheckers.a lib/libclangStaticAnalyzerCore.a lib/libclangCrossTU.a lib/libclangIndex.a lib/libclangFrontend.a lib/libclangDriver.a lib/libLLVMWindowsDriver.a lib/libLLVMOption.a lib/libclangParse.a lib/libclangSerialization.a lib/libclangSema.a lib/libclangAnalysis.a lib/libclangASTMatchers.a lib/libLLVMFrontendHLSL.a lib/libclangEdit.a lib/libclangSupport.a lib/libclangAST.a lib/libLLVMFrontendOpenMP.a lib/libLLVMScalarOpts.a lib/libLLVMAggressiveInstCombine.a lib/libLLVMInstCombine.a lib/libLLVMTransformUtils.a lib/libLLVMAnalysis.a lib/libLLVMProfileData.a lib/libLLVMSymbolize.a lib/libLLVMDebugInfoDWARF.a lib/libLLVMDebugInfoPDB.a lib/libLLVMObject.a lib/libLLVMMCParser.a lib/libLLVMMC.a lib/libLLVMIRReader.a lib/libLLVMBitReader.a lib/libLLVMAsmParser.a lib/libLLVMTextAPI.a lib/libLLVMDebugInfoCodeView.a lib/libLLVMDebugInfoMSF.a lib/libLLVMCore.a lib/libLLVMBinaryFormat.a lib/libLLVMRemarks.a lib/libLLVMBitstreamReader.a lib/libclangFormat.a lib/libclangToolingInclusions.a lib/libclangToolingCore.a lib/libclangRewrite.a lib/libclangLex.a lib/libclangBasic.a lib/libLLVMTargetParser.a lib/libLLVMSupport.a lib/libLLVMDemangle.a -lrt -ldl -lm /usr/lib/powerpc64le-linux-gnu/libz.so /usr/lib/powerpc64le-linux-gnu/libtinfo.so
root@Unimatrix08-Jammy:/clang# ./bin/clang-16 -v
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
Segmentation fault (core dumped)
root@Unimatrix08-Jammy:/clang# ./bin/clang-16-bfd -v
Ubuntu clang version 16.0.5
Target: powerpc64le-unknown-linux-gnu
Thread model: posix
InstalledDir: /clang/./bin
Found candidate GCC installation: /usr/lib/gcc/powerpc64le-linux-gnu/12
Selected GCC installation: /usr/lib/gcc/powerpc64le-linux-gnu/12
Candidate multilib: .;@m64
Selected multilib: .;@m64
With bfd everything works, with gold, I get a Segmentation Fault.
(Ubuntu mantic development release)
First broken version is 2.40-2ubuntu5
Last working version is 2.40-2ubuntu4
According to the diff only one powerpc change was added on gold linker
http://launchpadlibrarian.net/664314947/binutils_2.40-2ubuntu4_2.40-2ubuntu5.diff.gz
And its this one
https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=0961e631575b0a1eafccf32fbde56d456aef9169
root@Unimatrix0 8-Jammy: /clang# /usr/bin/g++-12 -O3 -fstack- protector- strong -Wformat -Werror= format- security -Wno-unused- command- line-argument -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -fno-semantic- interposition -fvisibility- inlines- hidden -Werror=date-time -Wall -Wextra -Wno-unused- parameter -Wwrite-strings -Wcast-qual -Wno-missing- field-initializ ers -pedantic -Wno-long-long -Wimplicit- fallthrough -Wno-maybe- uninitialized -Wno-class- memaccess -Wno-redundant-move -Wno-pessimizin g-move -Wno-noexcept-type -Wdelete- non-virtual- dtor -Wsuggest-override -Wno-comment -Wno-misleading -indentation -Wctad- maybe-unsupport ed -fdiagnostics-color -ffunction-sections -fdata-sections -fdebug- prefix- map=/llvm- toolchain- 16-16.0. 5/build- llvm=build- llvm -fdebug- prefix- map=/llvm- toolchain- 16-16.0. 5/= -no-canonical- prefixes -ffile- prefix- map=/llvm- toolchain- 16-16.0. 5/build- llvm=build- llvm -ffile- prefix- map=/llvm- toolchain- 16-16.0. 5/= -no-canonical- prefixes -fno-common -Woverloaded- virtual -fno-strict- aliasing -O3 -DNDEBUG -Wl,-Bsymbolic- functions -Wl,-z,relro -Wl,--build-id -fuse-ld=bfd -Wl,--gc-sections tools/clang/ tools/driver/ CMakeFiles/ clang.dir/ driver. cpp.o tools/clang/ tools/driver/ CMakeFiles/ clang.dir/ cc1_main. cpp.o tools/clang/ tools/driver/ CMakeFiles/ clang.dir/ cc1as_main. cpp.o tools/clang/ tools/driver/ CMakeFiles/ clang.dir/ cc1gen_ reproducer_ main.cpp. o tools/clang/ tools/driver/ CMakeFiles/ clang.dir/ clang-driver. cpp.o -o bin/clang-16-bfd -Wl,-rpath, "\$ORIGIN/ ../lib: " lib/libLLVMPowe rPCCodeGen. a lib/libLLVMPowe rPCAsmParser. a lib/libLLVMPowe rPCDesc. a lib/libLLVMPowe rPCDisassembler .a lib/libLLVMPowe rPCInfo. a lib/libLLVMAnal ysis.a lib/libLLVMCode Gen.a lib/libLLVMCore.a lib/libLLVMipo.a lib/libLLVMAggr essiveInstCombi ne.a lib/libLLVMInst Combine. a lib/libLLVMInst rumentation. a lib/libLLVMMC.a lib/libLLVMMCPa rser.a lib/libLLVMObjC ARCOpts. a lib/libLLVMOption.a lib/libLLVMScal arOpts. a lib/libLLVMSupp ort.a lib/libLLVMTarg etParser. a lib/libLLVMTran sformUtils. a lib/libLLVMVect orize.a lib/libclangBasic.a lib/libclangCod eGen.a lib/libclangDri ver.a lib/libclangFro ntend.a lib/libclangFro ntendTool. a lib/libclangSer ialization. a lib/libLLVMAsmP rinter. a lib/libLLVMGlob alISel. a lib/libLLVMSele ctionDAG. a lib/libLLVMMCDi sassembler. a lib/libclangCod eGen.a lib/libLLVMCove rage.a lib/libLLVMLTO.a lib/libLLVMExte nsions. a lib/libPolly.a lib/libPollyISL.a lib/libLLVMPasses.a lib/libLLVMCode Gen.a lib/libLLVMObjC ARCOpts. a lib/libLLVMTarget.a lib/libLLVMCoro utines. a lib/libLLVMipo.a lib/libLLVMInst rumentation. a lib/libLLVMVect orize.a lib/libLLVMBitW riter.a lib/libLLVMLinker.a lib/libLLVMIRPr inter.a lib/libclangExt ractAPI. a lib/libclangRew riteFrontend. a lib/libclangARC Migrate. a lib/libclangSta ticAnalyzerFron tend.a lib/libclangSta ticAnalyzerChec kers.a lib/libclangSta ticAnalyzerCore .a lib/libclangCro ssTU.a lib/libclangIndex.a lib/libclangFro ntend.a lib/libclangDri ver.a lib/libLLVMWind owsDriver. a lib/libLLVMOption.a lib/libclangParse.a lib/libclangSer ialization. a lib/libclangSema.a lib/libclangAna lysis.a lib/libclangAST Matchers. a lib/libLLVMFron tendHLSL. a lib/libclangEdit.a lib/libclangSup port.a lib/libclangAST.a lib/libLLVMFron te...