[swift-users] Segfault importing sqlite3.h from a system module
Daniel Dunbar
daniel_dunbar at apple.com
Sat Dec 5 23:00:28 CST 2015
> On Dec 5, 2015, at 4:29 AM, Michael Buhot <m.buhot at gmail.com> wrote:
>
> Hello,
>
> I’m getting a segfault when importing sqlite using a swift system module and the package manager.
> I have the following directory structure with a trivial system module and application:
>
> CSqlite3/
> Package.swift
> module.modulemap
> .git/
>
> app/
> Package.swift
> main.swift
> .git/
>
> CSqlite3 is a system module I created with an empty Package.swift file, and module.modulemap:
>
> module CSqlite3 [system] {
> header "/usr/include/sqlite3.h"
> link "sqlite3"
> export *
> }
>
> app/Package.swift contains:
> import PackageDescription
>
> let package = Package(
> dependencies: [
> .Package(url: "../CSqlite3", majorVersion: 1)
> ]
> )
>
> And main.swift contains:
> import CSqlite3
> print("hello world”)
>
> The error I’m getting is:
> $ swift build
> Compiling Swift Module 'app' (1 sources)
> 0 swift 0x00000001026ea47b llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 43
> 1 swift 0x00000001026e9916 llvm::sys::RunSignalHandlers() + 70
> 2 swift 0x00000001026eaaa3 SignalHandler(int) + 243
> 3 libsystem_platform.dylib 0x00007fff8d25852a _sigtramp + 26
> 4 libsystem_platform.dylib 0x0000000000003c00 _sigtramp + 1926936304
> 5 swift 0x0000000100f0502d clang::Preprocessor::MacroState::getModuleInfo(clang::Preprocessor&, clang::IdentifierInfo const*) const + 189
> 6 swift 0x0000000100f04a76 clang::Preprocessor::getMacroDefinition(clang::IdentifierInfo const*) + 326
> 7 swift 0x0000000101872e50 clang::Preprocessor::HandleIdentifier(clang::Token&) + 320
> 8 swift 0x000000010181c4f4 clang::Lexer::LexIdentifier(clang::Token&, char const*) + 932
> 9 swift 0x0000000101822312 clang::Lexer::LexTokenInternal(clang::Token&, bool) + 8562
> 10 swift 0x00000001018734c4 clang::Preprocessor::Lex(clang::Token&) + 68
> 11 swift 0x00000001018442b7 clang::Preprocessor::ReadMacroName(clang::Token&, clang::MacroUse, bool*) + 55
> 12 swift 0x0000000101847630 clang::Preprocessor::HandleIfdefDirective(clang::Token&, bool, bool) + 48
> 13 swift 0x00000001018464f4 clang::Preprocessor::HandleDirective(clang::Token&) + 1124
> 14 swift 0x0000000101822966 clang::Lexer::LexTokenInternal(clang::Token&, bool) + 10182
> 15 swift 0x00000001018734c4 clang::Preprocessor::Lex(clang::Token&) + 68
> 16 swift 0x00000001011598bf clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 287
> 17 swift 0x00000001010db875 clang::ParseAST(clang::Sema&, bool, bool) + 501
> 18 swift 0x0000000100f2eb72 clang::FrontendAction::Execute() + 66
> 19 swift 0x0000000100efaf43 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 979
> 20 swift 0x000000010268e98d llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) + 269
> 21 swift 0x000000010268ead0 RunSafelyOnThread_Dispatch(void*) + 48
> 22 swift 0x00000001026ebaed ExecuteOnThread_Dispatch(void*) + 13
> 23 libsystem_pthread.dylib 0x00007fff8ea2a9b1 _pthread_body + 131
> 24 libsystem_pthread.dylib 0x00007fff8ea2a92e _pthread_body + 0
> 25 libsystem_pthread.dylib 0x00007fff8ea28385 thread_start + 13
> Stack dump:
> 0. /usr/include/sqlite3.h:76:2: current parser token 'ifndef'
> <unknown>:0: error: unable to execute command: Segmentation fault: 11
> <unknown>:0: error: compile command failed due to signal (use -v to see invocation)
> <unknown>:0: error: build had 1 command failures
> swift-build: exit(1): ["/Library/Developer/Toolchains/swift-2.2-SNAPSHOT-2015-12-01-a.xctoolchain/usr/bin/swift-build-tool", "-f", "/Users/mbuhot/source/app/.build/debug/app.o/llbuild.yaml”]
>
> Is this a bug or have I messed something up?
Any time you see a crash it is a bug, please file on https://bugs.swift.org and a tarball of those files (also, might be good to include the OS version and version of sqlite you have installed).
- Daniel
> Help much appreciated!
>
>
> Mike Buhot
>
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org
> https://lists.swift.org/mailman/listinfo/swift-users
More information about the swift-users
mailing list