[yocto] Curl recipe not applying DISTRO_FEATURES

Christian Fuchs christian.fuchs at fos4x.de
Wed May 18 00:58:52 PDT 2016


Am 17.05.2016 um 16:56 schrieb Khem Raj:
> On Tue, May 17, 2016 at 1:14 AM, Christian Fuchs
> <christian.fuchs at fos4x.de> wrote:
>> Hello everybody,
>>
>> I am using Yocto version 1.8 and I'm having trouble compiling curl on a
>> 64-bit machine running Debian Wheezy 7.10.
>>
>> The recipe always creates a libcurl.so.5 library, which I understand is due
>> to an error regarding the size of off_t picked up by autotools. From the
>> recipe:
>>
>>> # see
>>> https://lists.yoctoproject.org/pipermail/poky/2013-December/009435.html
>>> # We should ideally drop ac_cv_sizeof_off_t from site files but until then
>>> EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'largefile',
>>> 'ac_cv_sizeof_off_t=8', '', d)}"
>> As far as I understand bitbake this last line should add the string
>> 'ac_cv_sizeoff_off_t=8' to EXTRA_OECONF, if 'largefile' is set in
>> DISTRO_FEATURES. When I checked the DISTRO_FEATURES variable with "bitbake
>> -e curl", 'largefile' was indeed set.
>>> DISTRO_FEATURES="alsa argp bluetooth ext2 irda largefile pcmcia usbgadget
>>> usbhost wifi xattr nfs zeroconf pci 3g nfc x11 ipv4 ipv6 libc-backtrace
>>> libc-big-macros libc-bsd libc-cxx-tests libc-catgets libc-charsets
>>> libc-crypt                                         libc-crypt-ufc
>>> libc-db-aliases libc-envz libc-fcvt libc-fmtmsg libc-fstab libc-ftraverse
>>> libc-getlogin libc-idn libc-inet-anl libc-libm libc-locales libc-locale-code
>>> libc-memusage libc-nis libc-nsswitch libc-rcmd libc-rtld-debug libc-spawn
>>> libc-streams libc-sunrpc libc-utmp libc-utmpx libc-wordexp
>>> libc-posix-clang-wchar libc-posix-regexp libc-posix-regexp-glibc
>>> libc-posix-wchar-io largefile multiarch tiny pam keyboard usbhost ext2 ipv6
>>> pcmcia pulseaudio sysvinit"
>>
>> However the configure log shows that configure is called without
>> 'ac_cv_sizeoff_off_t=8':
>>> NOTE: Running
>>> /data/jenkins/workspace/kOS/build/tmp/work/core2-32-fos4x-linux/curl/7.40.0-r0/curl-7.40.0/configure
>>> --build=x86_64-linux           --host=i586-fos4x-linux
>>> --target=i586-fos4x-linux           --prefix=/usr --exec_prefix=/usr
>>> --bindir=/usr/bin --sbindir=/usr/sbin           --libexecdir=/usr/lib/curl
>>> --datadir=/usr/share           --sysconfdir=/etc --sharedstatedir=/com
>>> --localstatedir=/var --libdir=/usr/lib           --includedir=/usr/include
>>> --oldincludedir=/usr/include --infodir=/usr/share/info
>>> --mandir=/usr/share/man           --disable-silent-rules
>>> --disable-dependency-tracking
>>> --with-libtool-sysroot=/data/jenkins/workspace/kOS/build/tmp/sysroots/fos4x
>>> --without-libidn --enable-crypto-auth --disable-ldap
>>> --disable-ldaps --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt
>>> --with-gnutls --enable-ipv6 --without-libssh2 --without-librtmp
>>> --disable-smb --without-ssl
>>> --with-zlib=/data/jenkins/workspace/kOS/build/tmp/sysroots/fos4x/usr/lib/../
>> ...
>>> configure: WARNING: This libcurl built is probably not ABI compatible with
>>> previous
>>> configure: WARNING: builds! You MUST read lib/README.curl_off_t to figure
>>> it out.
>>
>> When I try to compile this recipe with the exact same settings on a
>> test-machine running Ubuntu 14.04 everything works fine, configure is called
>> with 'ac_cv_sizeoff_off_t=8', no ABI issues are detected and libcurl.so.4 is
>> produced.
>>> NOTE: Running
>>> /scratch/working/build/tmp/work/core2-32-fos4x-linux/curl/7.40.0-r0/curl-7.40.0/configure
>>> --build=x86_64-linux         --host=i586-fos4x-linux
>>> --target=i586-fos4x-linux           --prefix=/usr --exec_prefix=/usr
>>> --bindir=/usr    /bin --sbindir=/usr/sbin         --libexecdir=/usr/lib/curl
>>> --datadir=/usr/share        --sysconfdir=/etc --sharedstatedir=/com
>>> --localstatedir=/var --libdir=/usr/lib           --includedir=/usr/include
>>> --oldinc ludedir=/usr/include --infodir=/usr/share/info
>>> --mandir=/usr/share/man         --disable-silent-rules
>>> --disable-dependency-tracking
>>> --with-libtool-sysroot=/scratch/working/build/tmp/sysroots/fos4x
>>> --without-libidn                 - -enable-crypto-auth
>>> --disable-ldap --disable-ldaps
>>> --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt ac_cv_sizeof_off_t=8
>>> --with-gnutls --enable-ipv6 --without-libssh2 --without-librtmp
>>> --disable-smb --without-ssl --
>>> with-zlib=/scratch/working/build/tmp/sysroots/fos4x/usr/lib/../
>>
>> Could somebody give me a hint, how I can fix this?
> use bitbake -e output to see if EXTRA_OECONF is correctly expanded.
> Secondly, you might want to check
> if its expanding correctly then check if its appended to configure
> call correctly. also check whats /bin/sh pointing to on both systems.
I just checked and EXTRA_OECONF is not correctly expanded. It is missing 
the "ac_cv_sizeof_off_t=8" part that is present on the Ubuntu machine.

On Ubuntu:
EXTRA_OECONF="--without-libidn --enable-crypto-auth                 
--disable-ldap --disable-ldaps 
--with-ca-bundle=/etc/ssl/certs/ca-certificates.crt ac_cv_sizeof_off_t=8 
--with-gnutls --enable-ipv6 --without-libssh2 --without-librtmp 
--disable-smb --without-ssl 
--with-zlib=/scratch/working/build/tmp/sysroots/fos4x/usr/lib/../"

On Debian:
EXTRA_OECONF="--without-libidn --enable-crypto-auth                 
--disable-ldap --disable-ldaps 
--with-ca-bundle=/etc/ssl/certs/ca-certificates.crt  --with-gnutls 
--enable-ipv6 --without-libssh2 --without-librtmp --disable-smb 
--without-ssl 
--with-zlib=/data/jenkins/workspace/kOS/build/tmp/sysroots/fos4x/usr/lib/../"

On both machines /bin/sh is pointing to /bin/bash.
>> Best regards,
>> Christian
>>
>> --
>> Christian Fuchs, M.Sc. - Software-Developer
>> fos4X GmbH - www.fos4x.de - T +49 89 999 542 15 - F +49 89 999 542 01
>> Thalkirchner Str. 210, Geb. 6 - D-81371 München; AG München HRB 189 218
>> Managing Directors: Dr. Lars Hoffmann, Dr. Mathias Müller
>>
>> --
>> _______________________________________________
>> yocto mailing list
>> yocto at yoctoproject.org
>> https://lists.yoctoproject.org/listinfo/yocto



More information about the yocto mailing list