Den 2019-10-15 kl. 09:21, skrev Dan Callaghan:
Excerpts from Jacob Kroon's message of 2019-10-15 08:59:56 +02:00:
Den 2019-10-15 kl. 08:15, skrev Dan Callaghan:
@@ -46,8 +46,12 @@ SRC_URI[sha256sum]
= "fa489deccbcae7d8c920f60d85906124c1989c591196d90e0fd668e3dc

   inherit autotools gettext ptest

-EXTRA_OECONF = "--program-prefix=eu- --without-lzma"
-EXTRA_OECONF_append_class-native = " --without-bzlib"
+EXTRA_OECONF = "--program-prefix=eu-"
+
+PACKAGECONFIG ??= "bzip2"
+PACKAGECONFIG[bzip2] = "--with-bzlib,--without-bzlib,bzip2"
+PACKAGECONFIG[xz] = "--with-lzma,--without-lzma,xz"
+
   RDEPENDS_${PN}-ptest += "libasm libelf bash make coreutils ${PN}-binutils"

   EXTRA_OECONF_append_class-target += "--disable-tests-rpath"


If I get it correctly, previously the recipe depended on bzip2, but for
native it was actually disabled at configure time. Can't we just skip it
for native then, since it hasn't been required sofar ?

You can do

PACKAGECONFIG_class-native = ""

Yes true, that would work, although it seems like needless complication
to have different build configurations for the target recipe and native
variant.


Lots of recipes do this. I personally think its ok if it helps keeping build times down by avoiding unnecessary deps.

Anyway, I figured out why the --without-bzlib was originally added for
the native variant. The commit message wasn't clear to me, but I have
seen the problem in action now.

I saw that elfutils-native correctly depends on bzip2-native, and the
build worked on my PC. But it was actually the host bzip2 library
leaking into the build.

Poky has "bzip2-native" in ASSUME_PROVIDED. Presumably, this is because
bzip2 (the command line program) is a required host tool and so there is
no need to build bzip2-native just to get a working bzip2 program.

However that also means that bzip2-native libraries and headers are
silently omitted from the recipe-sysroot-native for elfutils-native,
even though it depends on bzip2-native. On our Jenkins, which has a very
minimal build environment and lacks the bzip2 headers, elfutils-native
fails to configure:

     | checking for library containing BZ2_bzdopen... no
     | configure: error: missing -lbz2 for --with-bzlib

It seems to me the real problem here is that "bzip2-native" does not
really belong in ASSUME_PROVIDED. Recipes can assume that the host
provides the bzip2 *command* but not necessarily its headers and
libraries.


Maybe try removing bzip2-native from ASSUME_PROVIDED in your local jenkins builds ? Something like 'ASSUME_PROVIDED_remove = "bzip2-native"' in local.conf.

Jacob
--
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to