swiftlang / swift-package-manager

The Package Manager for the Swift Programming Language
Apache License 2.0
9.7k stars 1.33k forks source link

[SR-9292] SwiftPM should diagnose case-insensitive module name conflicts #4746

Open ainopara opened 5 years ago

ainopara commented 5 years ago
Previous ID SR-9292
Radar rdar://problem/69073152
Original Reporter @ainopara
Type Bug
Environment swift version: DEVELOPMENT-SNAPSHOT-2018-11-01-a swift pm version: DEVELOPMENT-SNAPSHOT-2018-11-01-a Xcode: Version 10.1 (10B61) Xcode Toolchain: Swift Development Snapshot 2018-11-01 (a)
Additional Detail from JIRA | | | |------------------|-----------------| |Votes | 0 | |Component/s | Package Manager | |Labels | Bug, Screened | |Assignee | None | |Priority | Medium | md5: 960dea92de539801c320fe8e5d36f09f

Issue Description:

After switching SwiftPM dependency version to `.branch("master")`, sourcekit-lsp now having llbuild as dependency which contains a target named `llvmSupport`
After executing

swift package generate-xcodeproj --xcconfig-overrides overrides.xcconfig

Open the generated `SourceKitLSP.xcodeproj` trying to build it. First I found a error related to SR-8018 .
Due to generated xcodeproj do not add `SWIFT_PACKAGE` macro to `GCC_PREPROCESSOR_DEFINITIONS`, the workaround in COFF.h

#ifdef SWIFT_PACKAGE
#undef DEBUG
#endif

will not be triggered.

This issue can be fixed by manually adding `SWIFT_PACKAGE=1` to `GCC_PREPROCESSOR_DEFINITIONS` in project build settings.

Then I found build failed with error message:

Ld /Users/ainopara/Library/Developer/Xcode/DerivedData/SourceKitLSP-fnjsratimrzzuhcgogbpmfzxmawj/Build/Products/Debug/llvmSupport.framework/Versions/A/llvmSupport normal x86_64 (in target: llvmSupport)
    cd /Users/ainopara/Documents/Projects/sourcekit-lsp
    export MACOSX_DEPLOYMENT_TARGET=10.10
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch x86_64 -dynamiclib -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -L/Users/ainopara/Library/Developer/Xcode/DerivedData/SourceKitLSP-fnjsratimrzzuhcgogbpmfzxmawj/Build/Products/Debug -F/Users/ainopara/Library/Developer/Xcode/DerivedData/SourceKitLSP-fnjsratimrzzuhcgogbpmfzxmawj/Build/Products/Debug -F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks -filelist /Users/ainopara/Library/Developer/Xcode/DerivedData/SourceKitLSP-fnjsratimrzzuhcgogbpmfzxmawj/Build/Intermediates.noindex/SourceKitLSP.build/Debug/llvmSupport.build/Objects-normal/x86_64/llvmSupport.LinkFileList -install_name @rpath/llvmSupport.framework/Versions/A/llvmSupport -Xlinker -rpath -Xlinker /Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2018-11-01-a.xctoolchain/usr/lib/swift/macosx -mmacosx-version-min=10.10 -Xlinker -object_path_lto -Xlinker /Users/ainopara/Library/Developer/Xcode/DerivedData/SourceKitLSP-fnjsratimrzzuhcgogbpmfzxmawj/Build/Intermediates.noindex/SourceKitLSP.build/Debug/llvmSupport.build/Objects-normal/x86_64/llvmSupport_lto.o -Xlinker -export_dynamic -Xlinker -no_deduplicate -framework CoreServices -Xlinker -dependency_info -Xlinker /Users/ainopara/Library/Developer/Xcode/DerivedData/SourceKitLSP-fnjsratimrzzuhcgogbpmfzxmawj/Build/Intermediates.noindex/SourceKitLSP.build/Debug/llvmSupport.build/Objects-normal/x86_64/llvmSupport_dependency_info.dat -o /Users/ainopara/Library/Developer/Xcode/DerivedData/SourceKitLSP-fnjsratimrzzuhcgogbpmfzxmawj/Build/Products/Debug/llvmSupport.framework/Versions/A/llvmSupport

Undefined symbols for architecture x86_64:
  "_AnnotateHappensAfter", referenced from:
      llvm::ManagedStatic<std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >::operator->() in Debug.o
      llvm::ManagedStatic<std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >::operator*() in Debug.o
      llvm::ManagedStatic<llvm::sys::SmartMutex<false> >::operator*() in ErrorHandling.o
      llvm::ManagedStatic<llvm::sys::SmartMutex<false> >::operator*() in Process.o
      llvm::ManagedStatic<llvm::sys::SmartMutex<true> >::operator*() in Signals.o
      llvm::ManagedStatic<std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >::operator*() in Signals.o
      llvm::ManagedStatic<std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >::operator->() in Signals.o
      ...
  "_AnnotateHappensBefore", referenced from:
      llvm::ManagedStaticBase::RegisterManagedStatic(void* (*)(), void (*)(void*)) const in ManagedStatic.o
  "_AnnotateIgnoreWritesBegin", referenced from:
      llvm::ManagedStaticBase::RegisterManagedStatic(void* (*)(), void (*)(void*)) const in ManagedStatic.o
  "_AnnotateIgnoreWritesEnd", referenced from:
      llvm::ManagedStaticBase::RegisterManagedStatic(void* (*)(), void (*)(void*)) const in ManagedStatic.o
  "llvm::raw_ostream::anchor()", referenced from:
      vtable for llvm::circular_raw_ostream in circular_raw_ostream.o
  "llvm::raw_ostream::operator<<(llvm::formatv_object_base const&)", referenced from:
      llvm::json::ParseError::log(llvm::raw_ostream&) const in JSON.o
  "llvm::isLegalUTF8String(unsigned char const**, unsigned char const*)", referenced from:
      llvm::json::isUTF8(llvm::StringRef, unsigned long*) in JSON.o
  "llvm::ConvertUTF32toUTF8(unsigned int const**, unsigned int const*, unsigned char**, unsigned char*, llvm::ConversionFlags)", referenced from:
      toUTF8(unsigned int, llvm::MutableArrayRef<unsigned char>) in DJB.o
      llvm::json::fixUTF8(llvm::StringRef) in JSON.o
  "llvm::ConvertUTF8toUTF32(unsigned char const**, unsigned char const*, unsigned int**, unsigned int*, llvm::ConversionFlags)", referenced from:
      chopOneUTF32(llvm::StringRef&) in DJB.o
      llvm::json::fixUTF8(llvm::StringRef) in JSON.o
  "llvm::SmallPtrSetImplBase::insert_imp_big(void const*)", referenced from:
      llvm::SmallPtrSetImplBase::insert_imp(void const*) in CommandLine.o
  "llvm::consumeUnsignedInteger(llvm::StringRef&, unsigned int, unsigned long long&)", referenced from:
      std::__1::enable_if<!(std::numeric_limits<unsigned long>::is_signed), bool>::type llvm::StringRef::consumeInteger<unsigned long>(unsigned int, unsigned long&) in FormatVariadic.o
      std::__1::enable_if<!(std::numeric_limits<unsigned long>::is_signed), bool>::type llvm::StringRef::consumeInteger<unsigned long>(unsigned int, unsigned long&) in JSON.o
  "llvm::report_bad_alloc_error(char const*, bool)", referenced from:
      llvm::safe_malloc(unsigned long) in CommandLine.o
      llvm::safe_calloc(unsigned long, unsigned long) in FoldingSet.o
      llvm::safe_malloc(unsigned long) in FoldingSet.o
      llvm::safe_malloc(unsigned long) in StringSaver.o
      llvm::safe_malloc(unsigned long) in Timer.o
      llvm::SmallVectorTemplateBase<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, false>::grow(unsigned long) in YAMLTraits.o
      llvm::safe_malloc(unsigned long) in YAMLTraits.o
      ...
  "llvm::sys::path::is_relative(llvm::Twine const&, llvm::sys::path::Style)", referenced from:
      ExpandResponseFile(llvm::StringRef, llvm::StringSaver&, void (*)(llvm::StringRef, llvm::StringSaver&, llvm::SmallVectorImpl<char const*>&, bool), llvm::SmallVectorImpl<char const*>&, bool, bool) in CommandLine.o
  "llvm::sys::path::parent_path(llvm::StringRef, llvm::sys::path::Style)", referenced from:
      ExpandResponseFile(llvm::StringRef, llvm::StringSaver&, void (*)(llvm::StringRef, llvm::StringSaver&, llvm::SmallVectorImpl<char const*>&, bool), llvm::SmallVectorImpl<char const*>&, bool, bool) in CommandLine.o
  "llvm::sys::path::filename(llvm::StringRef, llvm::sys::path::Style)", referenced from:
      (anonymous namespace)::CommandLineParser::ParseCommandLineOptions(int, char const* const*, llvm::StringRef, llvm::raw_ostream*) in CommandLine.o
  "llvm::sys::Process::GetTimeUsage(std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >&, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> >&, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> >&)", referenced from:
      llvm::TimeRecord::getCurrentTime(bool) in Timer.o
  "llvm::yaml::Stream::Stream(llvm::MemoryBufferRef, llvm::SourceMgr&, bool, std::__1::error_code*)", referenced from:
      llvm::yaml::Input::Input(llvm::MemoryBufferRef, void*, void (*)(llvm::SMDiagnostic const&, void*), void*) in YAMLTraits.o
  "llvm::yaml::Stream::Stream(llvm::StringRef, llvm::SourceMgr&, bool, std::__1::error_code*)", referenced from:
      llvm::yaml::Input::Input(llvm::StringRef, void*, void (*)(llvm::SMDiagnostic const&, void*), void*) in YAMLTraits.o
  "llvm::yaml::escape(llvm::StringRef, bool)", referenced from:
      llvm::yaml::Output::scalarString(llvm::StringRef&, llvm::yaml::QuotingType) in YAMLTraits.o
  "llvm::StringRef::split(llvm::SmallVectorImpl<llvm::StringRef>&, char, int, bool) const", referenced from:
      llvm::Triple::Triple(llvm::Twine const&) in Triple.o
      llvm::Triple::normalize(llvm::StringRef) in Triple.o
  "vtable for llvm::raw_pwrite_stream", referenced from:
      llvm::raw_pwrite_stream::raw_pwrite_stream(bool) in MD5.o
      llvm::raw_pwrite_stream::raw_pwrite_stream(bool) in NativeFormatting.o
      llvm::raw_pwrite_stream::raw_pwrite_stream(bool) in PrettyStackTrace.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "_del_curterm", referenced from:
      terminalHasColors(int) in Process.o
  "_set_curterm", referenced from:
      terminalHasColors(int) in Process.o
  "_setupterm", referenced from:
      terminalHasColors(int) in Process.o
  "_tigetnum", referenced from:
      terminalHasColors(int) in Process.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

At the same time, building sourcekit-lsp with

swift build

will succeed.
The difference is that `swift build` will not generate a LLVMSupport.framework, in fact all the .o file generated with `LLVMSupport` target will only be linked when sourcekit-lsp generated and in this case swiftc is used to generate the binary rather than clang++.

Related fragment in `.build/debug.yaml`:

"C.sourcekit-lsp-debug.exe":
    tool: shell
    description: "Linking ./.build/x86_64-apple-macosx10.10/debug/sourcekit-lsp"
    inputs: ["/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/Csourcekitd.build/sourcekitd.c.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/IndexStoreDB.build/IndexStoreDB.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/IndexStoreDB_CIndexStoreDB.build/CIndexStoreDB.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/IndexStoreDB_Core.build/Symbol.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/IndexStoreDB_Database.build/Database.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/IndexStoreDB_Database.build/DatabaseError.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/IndexStoreDB_Database.build/ImportTransaction.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/IndexStoreDB_Database.build/ReadTransaction.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/IndexStoreDB_Database.build/lmdb/mdb.c.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/IndexStoreDB_Database.build/lmdb/midl.c.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/IndexStoreDB_Index.build/FilePathIndex.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/IndexStoreDB_Index.build/FileVisibilityChecker.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/IndexStoreDB_Index.build/IndexDatastore.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/IndexStoreDB_Index.build/IndexStoreLibraryProvider.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/IndexStoreDB_Index.build/IndexSystem.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/IndexStoreDB_Index.build/StoreSymbolRecord.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/IndexStoreDB_Index.build/SymbolIndex.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/IndexStoreDB_Support.build/Concurrency-Mac.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/IndexStoreDB_Support.build/FilePathWatcher.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/IndexStoreDB_Support.build/Logging-Mac.mm.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/IndexStoreDB_Support.build/Logging-NonMac.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/IndexStoreDB_Support.build/Logging.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/IndexStoreDB_Support.build/Path.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/IndexStoreDB_Support.build/PatternMatching.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/APFloat.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/APInt.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/APSInt.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/Allocator.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/Atomic.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/Chrono.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/CommandLine.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/ConvertUTF.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/ConvertUTFWrapper.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/DJB.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/Debug.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/Errno.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/Error.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/ErrorHandling.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/FileUtilities.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/FoldingSet.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/FormatVariadic.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/Hashing.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/JSON.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/LineIterator.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/Locale.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/MD5.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/ManagedStatic.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/MathExtras.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/Memory.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/MemoryBuffer.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/Mutex.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/NativeFormatting.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/Options.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/Path.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/PrettyStackTrace.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/Process.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/Program.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/Signals.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/SmallPtrSet.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/SmallVector.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/SourceMgr.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/Statistic.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/StringExtras.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/StringMap.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/StringRef.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/StringSaver.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/TargetParser.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/Threading.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/TimeValue.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/Timer.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/ToolOutputFile.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/Triple.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/Twine.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/Unicode.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/UnicodeCaseFold.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/Valgrind.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/Watchdog.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/WithColor.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/YAMLParser.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/YAMLTraits.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/circular_raw_ostream.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LLVMSupport.build/Support/raw_ostream.cpp.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/ClientCapabilities.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/CodeActionKind.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/CompletionItem.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/CompletionItemKind.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/Connection.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/Diagnostic.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/DocumentHighlight.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/Error.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/InitializationOptions.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/Language.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/LanguageServer.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/Location.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/MarkupContent.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/Message.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/MessageRegistry.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/Messages.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/Position.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/PositionRange.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/Request.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/RequestID.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/ServerCapabilities.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/SymbolKind.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/TextDocumentContentChangeEvent.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/TextDocumentEdit.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/TextDocumentIdentifier.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/TextDocumentItem.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/TextDocumentSaveReason.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/TextEdit.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/VersionedTextDocumentIdentifier.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/WindowMessageType.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/WorkspaceFolder.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocol.build/WorkspaceSettings.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocolJSONRPC.build/JSONRPCConnection.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocolJSONRPC.build/MessageCoding.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/LanguageServerProtocolJSONRPC.build/MessageSplitting.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SKCore.build/BuildSettingsProviderList.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SKCore.build/BuildSystem.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SKCore.build/CompilationDatabase.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SKCore.build/CompilationDatabaseBuildSystem.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SKCore.build/ExternalWorkspace.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SKCore.build/FallbackBuildSettingsProvider.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SKCore.build/Toolchain.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SKCore.build/ToolchainRegistry.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SKSupport.build/ByteString.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SKSupport.build/Cancellation.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SKSupport.build/Collection.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SKSupport.build/FileSystem.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SKSupport.build/Int.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SKSupport.build/LineTable.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SKSupport.build/Logging.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SKSupport.build/Random.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SKSupport.build/Result.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SKSupport.build/dlopen.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SKSwiftPMWorkspace.build/SwiftPMWorkspace.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SourceKit.build/DocumentManager.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SourceKit.build/SourceKitServer.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SourceKit.build/Workspace.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SourceKit.build/clangd/ClangLanguageServer.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SourceKit.build/sourcekitd/CommentXML.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SourceKit.build/sourcekitd/SwiftLanguageServer.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/SourceKit.build/sourcekitd/SwiftSourceKitFramework.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/sourcekit_lsp.build/main.swift.o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/libSwiftPM.dylib"]
    outputs: ["/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/sourcekit-lsp"]
    args: ["/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2018-11-01-a.xctoolchain/usr/bin/swiftc","-target","x86_64-apple-macosx10.10","-sdk","/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk","-F","/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks","-lc++","-g","-L","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug","-o","/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/sourcekit-lsp","-module-name","sourcekit_lsp","-lSwiftPM","-emit-executable","@/Users/ainopara/Documents/Projects/sourcekit-lsp/.build/x86_64-apple-macosx10.10/debug/sourcekit-lsp.product/Objects.LinkFileList"]

Is there anything I can do to workaround this issue too?

It seems the fact that both `IndexStoreDB` and `llbuild` has the target `LLVMSupport` may be the source of this issue. The target in `llbuild` named `llvmSupport` seems not identical to `LLVMSupport`, but the APFS on my mac is case insensitive file system.
The issue can be reproduced by build swift-package-manager project alone with generated xcodeproj.

Finally I got sourcekit-lsp build with generated xcodeproj by applying following modifications:

  1. Add `SWIFT_PACKAGE=1` to `GCC_PREPROCESSOR_DEFINITIONS` in build settings of project `SourceKitLSP`.
  2. Add `-lsqlite3 -lncurses` to `OTHER_LDFLAGS` in build settings of project `SourceKitLSP`. As hinted from https://github.com/apple/swift-llbuild/blob/40c302a0b2ac12e99d1355986e4f16590d1fb03e/Package.swift#L9
  3. Rename LLVMSupport to LLVMSupport1 in `Package.swift` of IndexStoreDB.
    // Support code that is generally useful to the C++ implementation.
    .target(
      name: "IndexStoreDB_Support",
      dependencies: ["LLVMSupport1"],
      path: "lib/Support"),

    // Copy of a subset of llvm's ADT and Support libraries.
    .target(
      name: "LLVMSupport1",
      dependencies: [],
      path: "lib/LLVMSupport"),

The naming conflect actually is a source of this issue, though not the only source.

benlangmuir commented 5 years ago

The case-insensitive conflict between llvmSupport and LLVMSupport is pretty terrifying.

benlangmuir commented 5 years ago

I'll rename indexstoredb's module: https://github.com/apple/indexstore-db/pull/3

benlangmuir commented 5 years ago

Remaining issues

abertelrud commented 3 years ago

@swift-ci create