SQLite User Forum

3.48.0 release: lack of substitution in Libs.private of sqlite3.pc
Login

3.48.0 release: lack of substitution in Libs.private of sqlite3.pc

(1) By Even Rouault (rouault) on 2025-01-22 13:20:25 [source]

Hi

I've observed a regression in the generation of the Libs.private variable of sqlite3.pc. The @LDFLAGS_xxx@ content is not substituted. This breaks static linking scenarios.

Reproducer on Linux and MacOSX:
- wget https://www.sqlite.org/2025/sqlite-autoconf-3480000.tar.gz
- tar xvzf sqlite-autoconf-3480000.tar.gz
- cd sqlite-autoconf-3480000
- mkdir build
- cd build
- ../configure
- cat sqlite3.pc

outputs:
```
# Package Information for pkg-config

prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: SQLite
Description: SQL database engine
Version: 3.48.0
Libs: -L${libdir} -lsqlite3
Libs.private: @LDFLAGS_MATH@ @LDFLAGS_ZLIB@ @LDFLAGS_ICU@
Cflags: -I${includedir}
```

Previous version 3.47.2 has instead: "Libs.private: -lz -lm -ldl -lpthread"

(2.1) By Stephan Beal (stephan) on 2025-01-22 13:28:56 edited from 2.0 in reply to 1 [link] [source]

The @LDFLAGS_xxx@ content is not substituted. This breaks static linking scenarios.

This has since been resolved. See /forumpost/5cb625cdab.

The workaround until the next release is either to use the canonical source tree (which doesn't have this problem) or to replace the Libs.private line of sqlite3.pc.in with:

Libs.private: @LIBS@