[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