swiftlang / swift

The Swift Programming Language
https://swift.org
Apache License 2.0
67.41k stars 10.34k forks source link

[SR-6426] [FreeBSD] Reflection.mm:DW.ref.__gnustep_objcxx_personality_v0: $rror: undefined reference to '__gnustep_objcxx_personality_v0' #48976

Open 0acf245c-f0fa-406f-afb9-4746d10f0359 opened 6 years ago

0acf245c-f0fa-406f-afb9-4746d10f0359 commented 6 years ago
Previous ID SR-6426
Radar None
Original Reporter @dcci
Type Bug
Additional Detail from JIRA | | | |------------------|-----------------| |Votes | 0 | |Component/s | Standard Library | |Labels | Bug, Runtime | |Assignee | None | |Priority | Medium | md5: a36bfedbdbb0210aca0fcc567c4419b8

Issue Description:

This happens when linking

[1/2] Linking CXX executable unittests/runtime/LongTests/SwiftRuntimeLongTests

Relevant clang invocation:

/usr/bin/clang++  -Wno-unknown-warning-option -Werror=unguarded-availability-new -fno-stack-protector -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-avai
lability-new -std=c++11 -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wcovered-switch-default -Wnon-virtual-dtor -Wdelete-non-virtual-dtor
 -Wstring-conversion -fcolor-diagnostics -ffunction-sections -fdata-sections -Werror=switch -Wdocumentation -Wimplicit-fallthrough -Wunreachable-code -Woverloaded-virtual -DOBJC_OLD
_DISPATCH_PROTOTYPES=0 -O2  -Wl,-O3 -Wl,--gc-sections -fuse-ld=gold stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/AnyHashableSupport.cpp.o stdlib/public/runtime/C
MakeFiles/swiftRuntime-freebsd-x86_64.dir/Array.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/Casting.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-fr
eebsd-x86_64.dir/CygwinPort.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/HaikuPort.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/D
emangle.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/Enum.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/ErrorObjectConstants.cpp.o
 stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/ErrorObjectNative.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/Errors.cpp.o stdlib/public
/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/ErrorDefaultImpls.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/Exclusivity.cpp.o stdlib/public/runtime/
CMakeFiles/swiftRuntime-freebsd-x86_64.dir/Heap.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/HeapObject.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime
-freebsd-x86_64.dir/ImageInspectionMachO.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/ImageInspectionELF.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntim
e-freebsd-x86_64.dir/ImageInspectionWin32.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/KnownMetadata.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-fr
eebsd-x86_64.dir/Metadata.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/MetadataLookup.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.di
r/MutexPThread.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/MutexWin32.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/Once.cpp.o st
dlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/Portability.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/ProtocolConformance.cpp.o stdlib/pu
blic/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/RefCount.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/RuntimeEntrySymbols.cpp.o stdlib/public/runti
me/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/RuntimeInvocationsTracking.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/__/__/__/lib/Demangling/OldDemangler.
cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/__/__/__/lib/Demangling/Demangler.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/__/__
/__/lib/Demangling/NodePrinter.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/__/__/__/lib/Demangling/Context.cpp.o stdlib/public/runtime/CMakeFiles/swiftRun
time-freebsd-x86_64.dir/__/__/__/lib/Demangling/ManglingUtils.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/__/__/__/lib/Demangling/Punycode.cpp.o stdlib/pu
blic/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/ErrorObject.mm.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/SwiftObject.mm.o stdlib/public/runtime/CMak
eFiles/swiftRuntime-freebsd-x86_64.dir/SwiftValue.mm.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/Reflection.mm.o stdlib/public/runtime/CMakeFiles/swiftRuntime
-freebsd-x86_64.dir/__/__/__/lib/Demangling/OldRemangler.cpp.o stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/__/__/__/lib/Demangling/Remangler.cpp.o unittests/run
time/LongTests/CMakeFiles/SwiftRuntimeLongTests.dir/LongRefcounting.cpp.o unittests/runtime/LongTests/CMakeFiles/SwiftRuntimeLongTests.dir/__/Stdlib.cpp.o  -o unittests/runtime/Long
Tests/SwiftRuntimeLongTests -L/usr/home/davide/build/Ninja-RelWithDebInfoAssert/llvm-freebsd-x86_64/./lib -Wl,-rpath,/usr/home/davide/build/Ninja-RelWithDebInfoAssert/llvm-freebsd-x
86_64/./lib:/usr/home/davide/build/Ninja-RelWithDebInfoAssert/swift-freebsd-x86_64/lib/swift/freebsd/x86_64 /usr/home/davide/build/Ninja-RelWithDebInfoAssert/llvm-freebsd-x86_64/lib
/libLLVMSupport.a -lpthread /usr/home/davide/build/Ninja-RelWithDebInfoAssert/llvm-freebsd-x86_64/lib/libgtest_main.a /usr/home/davide/build/Ninja-RelWithDebInfoAssert/llvm-freebsd-
x86_64/lib/libgtest.a -lpthread lib/swift/freebsd/x86_64/libswiftCore.so /usr/lib/libexecinfo.so ./lib/swift/clang/lib/freebsd/libclang_rt.builtins-x86_64.a /usr/home/davide/build/Ninja-RelWithDebInfoAssert/llvm-freebsd-x86_64/lib/libLLVMSupport.a -lrt /usr/lib/libexecinfo.so -ltinfo -lpthread -lz -lm /usr/home/davide/build/Ninja-RelWithDebInfoAssert/llvm-fre$bsd-x86_64/lib/libLLVMDemangle.a -lpthread && :
stdlib/public/runtime/CMakeFiles/swiftRuntime-freebsd-x86_64.dir/Reflection.mm.o:/usr/home/davide/swift/stdlib/public/runtime/Reflection.mm:DW.ref.__gnustep_objcxx_personality_v0: $rror: undefined reference to '__gnustep_objcxx_personality_v0'

This is the last issue that prevents tests to be linked and run on FreeBSD. It's slightly different from the other missing symbol for obj-c reported as DWARF gets in the way (note the `DW.ref__` bit).

0acf245c-f0fa-406f-afb9-4746d10f0359 commented 6 years ago

@belkadan/@compnerd