Bug 6821

Summary: alsa-utils fails to crosscompile
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Petr Baudis <pasky>
Component: coreAssignee: Robert Yang <liezhi.yang>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Medium CC: alexandre.belloni, bluelightning, meta.mr.watcher, meta.watcher, poky.bs.watcher, poky.watcher
Version: 1.6.2   
Target Milestone: 1.7.1   
Hardware: Other   
OS: arm   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: No (bug/feature does not impact docs)

Description Petr Baudis 2014-10-09 19:32:47 UTC
I'm trying to build the atmel-xplained-demo-image bitbake target, but this fails
through some dependencies on alsa-utils.

The surface failure is:

    ERROR: Task 2030 (/home/morix/devel/yocto/poky/meta/recipes-multimedia/alsa/alsa-utils_1.0.28.bb, do_configure) failed with exit code '1'

In the log file, the failure is...

checking for new_panel in -lpanelw... no
configure: error: panelw library not found

...and in more detail:

configure:8717: checking for new_panel in -lpanelw
configure:8742: arm-poky-linux-gnueabi-gcc  -march=armv7-a -marm -mthumb-interwork -mfloat-abi=hard -mtune=cortex-a5 --sysroot=/home/pasky/byz/pubnub-embeddedapi/atmel-sama5d3/poky/poky/build-atmel/tmp/sysroots/sama5d3xek -o conftest  -O2 -pipe -g -feliminate-unused-debug-types -I/home/pasky/byz/pubnub-embeddedapi/atmel-sama5d3/poky/poky/build-atmel/tmp/sysroots/x86_64-linux/usr/include/ncursesw -I/home/pasky/byz/pubnub-embeddedapi/atmel-sama5d3/poky/poky/build-atmel/tmp/sysroots/x86_64-linux/usr/include  -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -L/home/pasky/byz/pubnub-embeddedapi/atmel-sama5d3/poky/poky/build-atmel/tmp/sysroots/x86_64-linux/usr/lib conftest.c -lpanelw  -lncursesw -ltinfo -lasound -lm -ldl -lpthread >&5
/home/pasky/byz/pubnub-embeddedapi/atmel-sama5d3/poky/poky/build-atmel/tmp/sysroots/x86_64-linux/usr/lib/libpanelw.so: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status

So the problem seems to be that arm (target) gcc is trying to link against x86_64 (host) libpanelw library... It seems to me it's correct to use the target gcc but I don't know why it's linking against the host library.

Earlier message of the configure script:

checking for curses compiler flags... -I/home/pasky/byz/pubnub-embeddedapi/atmel-sama5d3/poky/poky/build-atmel/tmp/sysroots/x86_64-linux/usr/include/ncursesw -I/home/pasky/byz/pubnub-embeddedapi/atmel-sama5d3/poky/poky/build-atmel/tmp/sysroots/x86_64-linux/usr/include

I think it's because:

configure:8108: checking for ncursesw5-config
configure:8124: found /home/pasky/byz/pubnub-embeddedapi/atmel-sama5d3/poky/poky/build-atmel/tmp/sysroots/x86_64-linux/usr/bin/ncursesw5-config

I don't see ncursesw5-config in tmp/sysroots/sama5d3xek - how do you solve situations like that, should the configure script be passed explicit ncurses paths from the commandline?

(I'm not alone seeing this bug, c.f. 2 days old SO question: http://stackoverflow.com/questions/26238663/yocto-cannot-configure-alsa-utils-on-ti-am335x)
Comment 1 Alexandre Belloni 2014-10-14 22:01:43 UTC
This is actually solved by http://patchwork.openembedded.org/patch/80727/ that should get merged for 1.7.
Comment 2 Paul Eggleton 2014-10-30 11:00:48 UTC
The aforementioned fix was merged into master and dizzy (for 1.7):

http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=448549b7dbed17f78ae80b3c780318ba5701c0ba