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

(From OE-Core rev: 042af406583acc091ef82c3d1dcedd41315046de)

Signed-off-by: Jens Rehsack <sno@netbsd.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Jens Rehsack
2018-11-18 19:36:46 +01:00
committed by Richard Purdie
parent e234be1bef
commit 1d8a8e36b9
3 changed files with 16 additions and 37 deletions

View File

@@ -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 <ross.burton@intel.com>
From 4633a8750f0966621d258548fba82bc6aa5aa997 Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
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

View File

@@ -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}
}

View File

@@ -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 \