Recent versions of SQLite fail to run on Mac OS X 10.4 (Tiger) with
the following error message:

    $ DYLD_LIBRARY_PATH=. ./sqlite3
    dyld: lazy symbol binding failed: Symbol not found:
_OSAtomicCompareAndSwapPtrBarrier
      Referenced from: ./libsqlite3.0.dylib
      Expected in: /usr/lib/libSystem.B.dylib

    dyld: Symbol not found: _OSAtomicCompareAndSwapPtrBarrier
      Referenced from: ./libsqlite3.0.dylib
      Expected in: /usr/lib/libSystem.B.dylib

    Trace/BPT trap

This is because OSAtomicCompareAndSwapPtrBarrier was not introduced
until Mac OS X 10.5 (Leopard).

Affected versions:

- Latest trunk (fossil 45cdc32f1e cloned from https://sqlite.org/src/)
- SQLite 3.7.13
- SQLite 3.7.12

Not affected:

- SQLite 3.7.11
- SQLite 3.7.10
- SQLite 3.7.9

Build environment:

    Mac OS X SDK: MacOSX10.6.sdk

    $ xcodebuild -version
    Xcode 3.2.5
    Component versions: DevToolsCore-1763.0; DevToolsSupport-1758.0
    BuildVersion: 10M2423

    $ gcc --version
    i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664)

How to reproduce:

I built SQLite on a Mac OS X 10.5 (Leopard) machine, then copied
.libs/ to a machine running 10.4 (Tiger) and ran sqlite3 from there:

    tar xzf sqlite-autoconf-3071300.tar.gz
    mkdir bld
    cd bld
    CFLAGS='-arch ppc -arch i386 -mmacosx-version-min=10.4' \
        LDFLAGS='-arch ppc -arch i386 -mmacosx-version-min=10.4' \
        ../sqlite-autoconf-3071300/configure --without-dependency-tracking
    make
    rsync --delete -a .libs/ tigerbox:~/sqlite-scratch/
    ssh -t tigerbox "cd ~/sqlite-scratch && DYLD_LIBRARY_PATH=. ./sqlite3"

I should get a regular sqlite prompt.  What I actually got was the
"Symbol not found" error above.

It looks like other people have seen this issue before[1], but it does
not look like it's actually been fixed.

Please apply the attached patch against the latest trunk (45cdc32f1e),
which fixes this bug.  (You can ignore the git commit id in the patch.
 It wasn't obvious to me how to make fossil output a commit as a
patch, so just I did a "git init" inside the fossil working directory
and then worked from that.)

Cheers,
- Dwayne

[1] http://sqlite.org:8080/pipermail/sqlite-users/2012-January/036184.html
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to