sqlite is part of the program: #import c unit replaces the Makefile cc build
src/db/sqlite.sx declares the vendored amalgamation as a named '#import c' unit (pinned defines + -O2 + #source); every #foreign binding resolves against it with UNPREFIXED sqlite3_* names. sx compiles the unit through its content-addressed object cache — once per checkout — links the objects into 'sx build' binaries, and loads them as a priority symbol target under 'sx run', so the OS libsqlite3 can never shadow the vendored copy (the version pin in sqlite_smoke proves it). Retired: the Makefile vendor targets (cc -> .a + jit/.dylib), the GENERATED dist_sqlite3_* rename.h (the JIT no longer resolves program-owned symbols through the process images, so the rename's reason is gone), and the -L plumbing in make build + tests/run.sh. make test 22/22; otool -L build/dist carries no libsqlite3.
This commit is contained in:
BIN
.sx-cache/c-11a77f91b0e34902.o
Normal file
BIN
.sx-cache/c-11a77f91b0e34902.o
Normal file
Binary file not shown.
BIN
.sx-cache/c-532fd2a7a0245e62.o
Normal file
BIN
.sx-cache/c-532fd2a7a0245e62.o
Normal file
Binary file not shown.
Reference in New Issue
Block a user