aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/xmlrpc-c
diff options
context:
space:
mode:
authorMartin Panter <vadmium+floss@gmail.com>2010-12-24 19:59:02 +0000
committerKhem Raj <raj.khem@gmail.com>2010-12-25 11:47:56 -0800
commit83e703f70646ab84a9ed4b2677da5e5f6ed38dbe (patch)
tree471c4742c3936b1023e8530dfbf41168edba9586 /recipes/xmlrpc-c
parentf47c9d94f0dfbbe665c5158c3f14e796ee2f7ee8 (diff)
downloadopenembedded-83e703f70646ab84a9ed4b2677da5e5f6ed38dbe.tar.gz
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<directory> -l<name>" 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 <raj.khem@gmail.com> Signed-off-by: Martin Panter <vadmium+floss@gmail.com>
Diffstat (limited to 'recipes/xmlrpc-c')
-rw-r--r--recipes/xmlrpc-c/xmlrpc-c-1.06.41/lib-path.patch58
-rw-r--r--recipes/xmlrpc-c/xmlrpc-c_1.06.41.bb21
2 files changed, 74 insertions, 5 deletions
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"