[oe-commits] Richard Purdie : libxml2: Fix libzypp ansidecl related build failures

git at git.openembedded.org git at git.openembedded.org
Tue Jul 10 13:27:20 UTC 2012


Module: openembedded-core.git
Branch: master
Commit: bfaaeb44c5023e2d2a9414c07694c75fa527283b
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=bfaaeb44c5023e2d2a9414c07694c75fa527283b

Author: Richard Purdie <richard.purdie at linuxfoundation.org>
Date:   Tue Jul 10 12:04:31 2012 +0000

libxml2: Fix libzypp ansidecl related build failures

cmake looks at all include statements, even if they're not used. To make
builds deterministic and avoid needing to add binutils as a dependency
for libzypp, completely remove the include from the header file, even if
it is never used.

This avoids issues where you'd build binutils, then libzypp, then remove
binutils (and hence ansidecl.h) and then recompile libzypp which would
still have the dependency and hence fail.

Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

---

 meta/recipes-core/libxml/libxml2.inc            |    3 +-
 meta/recipes-core/libxml/libxml2/ansidecl.patch |   25 +++++++++++++++++++++++
 meta/recipes-core/libxml/libxml2_2.8.0.bb       |    2 +-
 3 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/meta/recipes-core/libxml/libxml2.inc b/meta/recipes-core/libxml/libxml2.inc
index 9433631..d70fe47 100644
--- a/meta/recipes-core/libxml/libxml2.inc
+++ b/meta/recipes-core/libxml/libxml2.inc
@@ -13,7 +13,8 @@ DEPENDS_virtclass-native = "python-native"
 DEPENDS =+ "zlib"
 
 SRC_URI = "ftp://xmlsoft.org/libxml2/libxml2-${PV}.tar.gz \
-           file://libxml-64bit.patch"
+           file://libxml-64bit.patch \
+           file://ansidecl.patch"
 
 
 inherit autotools pkgconfig binconfig
diff --git a/meta/recipes-core/libxml/libxml2/ansidecl.patch b/meta/recipes-core/libxml/libxml2/ansidecl.patch
new file mode 100644
index 0000000..2452d78
--- /dev/null
+++ b/meta/recipes-core/libxml/libxml2/ansidecl.patch
@@ -0,0 +1,25 @@
+Sadly cmake is broken. If it sees this reference and ansidecl is present, it will add a 
+dependency upon it, even if HAVE_ANSIDEC_H is never set.
+
+The easiest solution is to remove these lines, otherwise recipes like libzypp can have a 
+dependency on the ansidecl.h header via cmake. This can lead to odd results if the 
+header is removed (clean binutils) and then the code is recompiled.
+
+RP 2012/7/10
+
+Upstream-Status: Inappropriate [its really a cmake bug]
+
+Index: libxml2-2.8.0/include/libxml/xmlversion.h.in
+===================================================================
+--- libxml2-2.8.0.orig/include/libxml/xmlversion.h.in	2012-07-10 11:51:52.460750573 +0000
++++ libxml2-2.8.0/include/libxml/xmlversion.h.in	2012-07-10 11:52:41.436749397 +0000
+@@ -401,9 +401,6 @@
+ #endif
+ 
+ #ifdef __GNUC__
+-#ifdef HAVE_ANSIDECL_H
+-#include <ansidecl.h>
+-#endif
+ 
+ /**
+  * ATTRIBUTE_UNUSED:
diff --git a/meta/recipes-core/libxml/libxml2_2.8.0.bb b/meta/recipes-core/libxml/libxml2_2.8.0.bb
index fe9ec05..37eba34 100644
--- a/meta/recipes-core/libxml/libxml2_2.8.0.bb
+++ b/meta/recipes-core/libxml/libxml2_2.8.0.bb
@@ -1,6 +1,6 @@
 require libxml2.inc
 
-PR = "r1"
+PR = "r2"
 
 SRC_URI[md5sum] = "c62106f02ee00b6437f0fb9d370c1093"
 SRC_URI[sha256sum] = "f2e2d0e322685193d1affec83b21dc05d599e17a7306d7b90de95bb5b9ac622a"





More information about the Openembedded-commits mailing list