From 83e703f70646ab84a9ed4b2677da5e5f6ed38dbe Mon Sep 17 00:00:00 2001 From: Martin Panter Date: Fri, 24 Dec 2010 19:59:02 +0000 Subject: xmlrpc-c_1.06.41.bb: QA issue with staging (workdir) for .la files in xmlrpc-c package I think I've solved this problem. Half of my solution is to modify the xmlrpc-c package's Make file to pass the library file names directly instead of using the "-L -l" method. The other half is to force it to use the newer Libtool version instead of its own. See patch #1 attached, though I'm not really an expert on Libtool or Open embedded, so I can't say if it might break something else, and I haven't even tested out the packages I built yet. Adds a patch to avoid using -L link flags, and forces the Make files to use a newer external Libtool. Fix do_configure to bypass reconfigure but still generate libtool Fix below messages NOTE: Multiple libraries (libxmlrpc_server_cgi.so.3, libxmlrpc_util.so.3, libxmlrpc_client.so.3, libxmlrpc_abyss.so.3, libxmlrpc_server_abyss.so.3, libxmlrpc_server.so.3, libxmlrpc.so.3) found and LEAD_SONAME not defined ERROR: QA Issue with xmlrpc-c: No GNU_HASH in the elf binary: '/scratch/oe/work/armv7a-oe-linux-gnueabi/xmlrpc-c-1.06.41-r1/packages-split/xmlrpc-c/usr/lib/libxmlrpc_server_cgi.so.3.6.15' Signed-off-by: Khem Raj Signed-off-by: Martin Panter --- recipes/xmlrpc-c/xmlrpc-c-1.06.41/lib-path.patch | 58 ++++++++++++++++++++++++ recipes/xmlrpc-c/xmlrpc-c_1.06.41.bb | 21 +++++++-- 2 files changed, 74 insertions(+), 5 deletions(-) create mode 100644 recipes/xmlrpc-c/xmlrpc-c-1.06.41/lib-path.patch (limited to 'recipes/xmlrpc-c') diff --git a/recipes/xmlrpc-c/xmlrpc-c-1.06.41/lib-path.patch b/recipes/xmlrpc-c/xmlrpc-c-1.06.41/lib-path.patch new file mode 100644 index 0000000000..1ec148b749 --- /dev/null +++ b/recipes/xmlrpc-c/xmlrpc-c-1.06.41/lib-path.patch @@ -0,0 +1,58 @@ +Don't use build directories in the library search path because it apparently +causes Libtool to hard-code the build directories inside installed .la files, +triggering "QA issues". Use with newer Libtool. +--- xmlrpc-c-1.06.41/src/Makefile ++++ xmlrpc-c-1.06.41/src/Makefile +@@ -7,8 +7,8 @@ VPATH = .:$(SRCDIR) + + include $(BUILDDIR)/Makefile.config + +-ABYSS_LIBDIR = $(BUILDDIR)/lib/abyss/src/.libs +-LIBUTIL_LIBDIR = $(BUILDDIR)/lib/libutil/.libs ++ABYSS_LIB = $(BUILDDIR)/lib/abyss/src/libxmlrpc_abyss.la ++LIBUTIL_LIB = $(BUILDDIR)/lib/libutil/libxmlrpc_util.la + + default: all + +@@ -70,17 +70,17 @@ endif + # may require the necessary -L options in addition. + + LIBXMLRPC_CLIENT_OBJS = xmlrpc_client.lo xmlrpc_client_global.lo +-LIBXMLRPC_CLIENT_LIBDEP = -lxmlrpc_util -lxmlrpc ++LIBXMLRPC_CLIENT_LIBDEP = $(LIBUTIL_LIB) libxmlrpc.la + + LIBXMLRPC_SERVER_OBJS = registry.lo system_method.lo +-LIBXMLRPC_SERVER_LIBDEP = -lxmlrpc_util -lxmlrpc ++LIBXMLRPC_SERVER_LIBDEP = $(LIBUTIL_LIB) libxmlrpc.la + + LIBXMLRPC_SERVER_ABYSS_OBJS = xmlrpc_server_abyss.lo + LIBXMLRPC_SERVER_ABYSS_LIBDEP = \ +- -lxmlrpc_util -lxmlrpc_server -L$(ABYSS_LIBDIR) -lxmlrpc_abyss -lxmlrpc ++ $(LIBUTIL_LIB) libxmlrpc_server.la $(ABYSS_LIB) libxmlrpc.la + + LIBXMLRPC_SERVER_CGI_OBJS = xmlrpc_server_cgi.lo +-LIBXMLRPC_SERVER_CGI_LIBDEP = -lxmlrpc_util -lxmlrpc_server -lxmlrpc ++LIBXMLRPC_SERVER_CGI_LIBDEP = $(LIBUTIL_LIB) libxmlrpc_server.la libxmlrpc.la + + LIBXMLRPC_OBJS = \ + trace.lo \ +@@ -96,7 +96,7 @@ LIBXMLRPC_OBJS = \ + xmlrpc_utf8.lo \ + xmlrpc_authcookie.lo \ + +-LIBXMLRPC_LIBDEP = -lxmlrpc_util $(LIBXML_LIBS) ++LIBXMLRPC_LIBDEP = $(LIBUTIL_LIB) $(LIBXML_LIBS) + + LIB_OBJS = $(LIBXMLRPC_CLIENT_OBJS) $(LIBXMLRPC_SERVER_OBJS) + +@@ -133,9 +133,7 @@ all: $(TARGET_LTLIBRARIES) $(SUBDIRS:%=% + + LDFLAGS = $(LADD) + +-LIBPATHS = -L.libs -L$(LIBUTIL_LIBDIR) +- +-LIBLDFLAGS = $(LDFLAGS_VERSINFO) -rpath $(LIBINST_DIR) $(LIBPATHS) $(LADD) ++LIBLDFLAGS = $(LDFLAGS_VERSINFO) -rpath $(LIBINST_DIR) $(LADD) + + + libxmlrpc.la: $(LIBXMLRPC_OBJS) diff --git a/recipes/xmlrpc-c/xmlrpc-c_1.06.41.bb b/recipes/xmlrpc-c/xmlrpc-c_1.06.41.bb index e9bbc312e8..3cd817920f 100644 --- a/recipes/xmlrpc-c/xmlrpc-c_1.06.41.bb +++ b/recipes/xmlrpc-c/xmlrpc-c_1.06.41.bb @@ -2,24 +2,35 @@ DESCRIPTION = "XML-RPC for C/C++ is programming libraries and related tools to h write an XML-RPC server or client in C or C++." LICENSE = "GPLv2+" DEPENDS = "curl libxml2" -PR = "r1" - +PR = "r2" +LEAD_SONAME = "libxmlrpc.so.3" # note: this is version 1.06.47 # there seems to be versions with higher numbers (e.g. 1.11.00) # but these are actually not newer EXTRA_OECONF = " --enable-libxml2-backend -disable-libwww-client" +TARGET_CC_ARCH += "${LDFLAGS}" + PARALLEL_MAKE = "" inherit autotools binconfig -do_configure () { - gnu-configize +do_configure() { + # no autoreconf please + aclocal + autoconf + libtoolize --force + gnu-configize --force oe_runconf } +do_compile_prepend () { + (cd ${S}; ln -s ${HOST_SYS}-libtool libtool) +} -SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/${P}.tgz" +SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/${P}.tgz \ + file://lib-path.patch \ +" SRC_URI[md5sum] = "02c6b89b8ff911341b6b6d4a6c621ea9" SRC_URI[sha256sum] = "a13f5ef40ed75d89543b9cd086185121dead9fc7de850ca4d2edd9a0cec12205" -- cgit 1.2.3-korg