swift-riscv / swift-riscv64

Building swift for riscv64 platforms
Apache License 2.0
18 stars 1 forks source link

clang: error: invalid linker name in argument '-fuse-ld=gold' #4

Open futurejones opened 1 year ago

futurejones commented 1 year ago

Build Failure:- https://ci.swiftlang.xyz/job/swift-5.8-ubuntu-jammy-riscv64/17/console

OS = Ubuntu Release = 22.04 / Jammy Swift Branch = release/5.8

FAILED: bin/swift-compatibility-symbols 
: && /usr/bin/clang++ -Wno-unknown-warning-option -Werror=unguarded-availability-new -fno-stack-protector -fPIC 
-fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall 
-Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-class-memaccess -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor 
-Wsuggest-override -Wstring-conversion -Wmisleading-indentation -fdiagnostics-color -ffunction-sections 
-fdata-sections -Werror=switch -Wdocumentation -Wimplicit-fallthrough -Wunreachable-code -Woverloaded-virtual -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -O3 
-DNDEBUG -target riscv64-unknown-linux-gnu -fuse-ld=gold tools/swift-compatibility-symbols/CMakeFiles/swift-compatibility-symbols.dir/swift-compatibility-symbols.cpp.o 
-o bin/swift-compatibility-symbols -L/home/build-user/build/buildbot_linux/llvm-linux-riscv64/./lib 
-Wl,-rpath,/home/build-user/build/buildbot_linux/llvm-linux-riscv64/./lib  -lpthread  
-ldl  /home/build-user/build/buildbot_linux/llvm-linux-riscv64/lib/libLLVMSupport.a  /home/build-user/build/buildbot_linux/llvm-linux-riscv64/lib/libLLVMDemangle.a  
-lrt  -ldl  -lm  /usr/lib/riscv64-linux-gnu/libz.so  /usr/lib/riscv64-linux-gnu/libtinfo.so   -latomic && :
clang: error: invalid linker name in argument '-fuse-ld=gold'
futurejones commented 1 year ago

gold linker is not available on riscv64. Changing to lld linker results in a similar error - invalid linker name in argument '-fuse-ld=lld' Issue is fixed by using the ld linker

Patch File = use-ld-linker.patch
Patch File = dswift-use-linker-ld.patch

hggz commented 1 year ago

Great work on the patches thus far!