pseudo: fix link of sqlite3 using pkg-config
PATCH 1/1 pseudo: fix link of sqlite3 using pkg-config
If sqlite3 is built with FTS5 it uses log() from libm, it sqlite3 is built with READLINE it uses tgetent from a curses lib and readline from libreadline, if it is built using deflate from libz ... , but all that linkage is lost if we manually statically link so explicitely extract extra static linking options from pkg-config and force them into pseudo as well.
This commit obsoletes (so include the implicit revert)
e39fec613d pseudo: fix link with new sqlite3
--- meta/recipes-devtools/pseudo/files/libm.patch | 33 ------------------- meta/recipes-devtools/pseudo/pseudo.inc | 19 +++++++++-- meta/recipes-devtools/pseudo/pseudo_git.bb | 1 - 3 files changed, 16 insertions(+), 37 deletions(-) delete mode 100644 meta/recipes-devtools/pseudo/files/libm.patch
meta/recipes-devtools/pseudo/files/libm.patch deleted +0 -33
@@ -1,33 +0,0 @@ -If sqlite3 is built with FTS5 enabled then it links to libm.so for log(), but if -we statically link to libsqlite3.a then this linkage is lost. - -Work around this by always linking to libm.so. - -Upstream-Status: Submitted -Signed-off-by: Ross Burton <[email protected]> - -From 4633a8750f0966621d258548fba82bc6aa5aa997 Mon Sep 17 00:00:00 2001 -From: Ross Burton <[email protected]> -Date: Tue, 6 Nov 2018 12:13:17 +0000 -Subject: [PATCH] Makefile: sqlite can need libm - ---- - Makefile.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile.in b/Makefile.in -index ad6541b..28b5ecb 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -73,7 +73,7 @@ WRAPOBJS=pseudo_wrappers.o - - # needed for anything that links with pseduo_client.o, pretty much - CLIENT_LDFLAGS=-ldl -lpthread --DB_LDFLAGS=@SQLITE_LDARG@ -lpthread -+DB_LDFLAGS=@SQLITE_LDARG@ -lpthread -lm - - PSEUDO=$(BIN)/pseudo - PSEUDODB=$(BIN)/pseudodb --- -2.11.0 -
meta/recipes-devtools/pseudo/pseudo.inc +16 -3
@@ -17,7 +17,7 @@ PROVIDES += "virtual/fakeroot" MAKEOPTS = "" -inherit siteinfo +inherit siteinfo pkgconfig do_configure () { :
@@ -30,10 +30,23 @@ PSEUDO_EXTRA_OPTS ?= "--enable-force-async --without-passwd-fallback --enable-ep # Compile for the local machine arch... do_compile () { + SQLITE_LDADD='$(SQLITE)/$(SQLITE_LIB)/libsqlite3.a' + for sqlite_link_opt in $(pkg-config sqlite3 --libs --static) + do + case "$sqlite_link_opt" in + -lsqlite3) + ;; + -l*) + SQLITE_LDADD="${SQLITE_LDADD} ${sqlite_link_opt}" + ;; + *) + ;; + esac + done if [ "${SITEINFO_BITS}" = "64" ]; then - ${S}/configure ${PSEUDO_EXTRA_OPTS} --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib${SITEINFO_BITS} --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --enable-static-sqlite --without-rpath + ${S}/configure ${PSEUDO_EXTRA_OPTS} --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib${SITEINFO_BITS} --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --with-static-sqlite="$SQLITE_LDADD" --without-rpath else - ${S}/configure ${PSEUDO_EXTRA_OPTS} --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --enable-static-sqlite --without-rpath + ${S}/configure ${PSEUDO_EXTRA_OPTS} --prefix=${prefix} --libdir=${prefix}/lib/pseudo/lib --with-sqlite-lib=${baselib} --with-sqlite=${STAGING_DIR_TARGET}${exec_prefix} --cflags="${CFLAGS}" --bits=${SITEINFO_BITS} --with-static-sqlite="$SQLITE_LDADD" --without-rpath fi oe_runmake ${MAKEOPTS} }
meta/recipes-devtools/pseudo/pseudo_git.bb +0 -1
@@ -2,7 +2,6 @@ require pseudo.inc SRC_URI = "git://git.yoctoproject.org/pseudo \ file://0001-configure-Prune-PIE-flags.patch \ - file://libm.patch \ file://fallback-passwd \ file://fallback-group \ file://moreretries.patch \
Signature · 1 line
2.17.1
meta/recipes-devtools/pseudo/pseudo.inc PSEUDO_EXTRA_OPTS ?= "--enable-force-async --without-passwd-fallback --enable-ep · line 34
Quoted 1 line · On Sun, 18 Nov 2018 19:36:46 +0100 Jens Rehsack <[email protected]> wrote:
meta/recipes-devtools/pseudo/pseudo.inc +1
-0+ for sqlite_link_opt in $(pkg-config sqlite3 --libs --static)
Ugh, but yeah, I think this is probably needed. I'm a bit concerned about libsqlite3 ending up with readline included, that really seems like something that should only be ending up in the sqlite3 binary, not in the library?
None of this affects client side (libpseudo doesn't get linked against sqlite3), so it shouldn't cause problems for other programs. So this looks good to me.
Sorry about the delay in getting to things, I am sorta swamped lately.
-s