config/build problem due to libncursesw on Xenial

Bug #1596009 reported by Alexander Stohr
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Invalid
Undecided
Unassigned

Bug Description

it happened to me during a build of yocto/bitbake related cross tools. the auto-configuration part titled "SDL probe" for qemu-2.2.0 i found the configuration step failing for the compile_prog routine. actually those test compile went fine but only the test linking failed.

this was due a reference of the sub-sub-...-included libcaca referenced an initially not installed (hint: check for and report such pre-requisites upfront - might be yocto related) and later on installed by me component of name libncursesw seemingly in its dev variant (i was installing libncursesw5-dev_6.0+20160213-1ubuntu1_amd64.deb). tests on the command line showed that adding the required paths and resources made the test application link nicely.

a quick hack attempt for the config script resulted in those line:
  sdl_libs="$sdl_libs -L/lib/x86_64-linux-gnu -lncursesw"
this allowed me to pass the configuration check nicely.
i am just seeing my full scale compile fail for the same reason multiple times for linking. that all should be fixable the same way.

you might or might not have addressed this in newer versions of your package. but you probably know that setups for embedded targets will sometimes lack behind in their evolution until a sudden (well prepared) some big jump in versions does happen. so i leave the hint here for your reference - for the main reason of this very often spotted message - raised by several main reasons according to public web reports, but not this one until right here and now:

| ERROR: User requested feature sdl
| configure was not able to find it.
| Install SDL devel

By the way these lines already have to locations in the configure script
where the first indicates that pkg/sdl/sdl2-config application is not there (=no SDL devel there)
whilst the second indicates that *-config is there but the test compile failed (=devel is broken for some other reason).
This could/should see some improvement as well as this is the first hint on what went wrong - and in the second case you definitely can give the user the quite valueable hint for the log file with the results of the test compile.

Revision history for this message
Thomas Huth (th-huth) wrote :

Could you please try to reproduce this problem with the latest release of QEMU (version 2.6)? Thanks!

Revision history for this message
TundraMan (asselsm) wrote :

This is not an issue with Ubu but a Yocto build issue. In Xenial libsdl1.2-dev depends on libcaca-dev which depends on libcaca0 which depends on ncursesw5. Additionally libcaca.so is looking for symbols in libncursesw5 with variable decorations like `resize_term@NCURSESW_5.3.20021019', yet Yocto builds ncurses-native with the symbol decorations like 'resize_term@Base', thus the symbols aren't found when configure attempts to build a test application to check on SDL. So basically the above is describing a confusing web of who is providing what (host vs. Yocto -native) and what each library looks like internally.

You can see these details better if you do something like:
bitbake qemu -c devshell
edit configure to add '-x' to the #! line
run '../temp/run.do_configure'
after the failure is displayed, cd ../build and run the gcc line from the failure msg

To work around this you can force use of the host's ncurses library, so do something like this in your build's local.conf:

ASSUME_PROVIDED += "libsdl-native ncurses-native"

This is not a Ubu bug, so this issue should be closed.

Revision history for this message
Thomas Huth (th-huth) wrote :

Closing according to comment #2.

Changed in qemu:
status: New → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.