/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/../../../../i686-pc-linux-gnu/bin/ld: cannot find -lasound collect2: ld returned 1 exit status make[1]: *** [qemu-fast] Błąd 1 make[1]: Leaving directory `/var/tmp/portage/qemu-0.6.1/work/qemu-0.6.1/i386' make: *** [all] Błąd 1 I think some dependency (or maybe library?) is missing. Probably something with alsa.
As stated at the start of the ebuild you need to have EVERY library build static including ALSA and NAS, if you use it. I cannot track every library sdl is using nor rewrite the qemu x86 virtualizer in order to work in a cleaner way. I'll think again about that but the only solution that came every time is to disable qemu-fast useflag. Sound herd people, could be possible to have alsa and nas build every time the static version of the library?
You are right there was something. But I can't really guess how slow user computer needs to be so he/she can spot that notice in the beginning of qemu emerging. Maybe some pause for let sey ten seconds? Or maybe it is possible in emerge to require alsa-lib builded with static? I don't know.
bash-2.05b# USE="static" emerge alsa-lib && emerge qemu [...] rm -f libqemu.a ar rcs libqemu.a exec.o translate-all.o cpu-exec.o translate.o op.o helper.o helper2.o translate-copy.o disas.o i386-dis.o gcc -static -Wl,-T,/var/tmp/portage/qemu-0.6.1/work/qemu-0.6.1/i386-vl.ld -o qemu-fast vl.o osdep.o block.o readline.o monitor.o pci.o console.o block-cow.o block-qcow.o aes.o block-vmdk.o block-cloop.o ide.o ne2000.o pckbd.o vga.o sb16.o dma.o audio.o noaudio.o wavaudio.o sdlaudio.o ossaudio.o fdc.o mc146818rtc.o serial.o i8259.o i8254.o pc.o cirrus_vga.o mixeng.o gdbstub.o sdl.o slirp/cksum.o slirp/if.o slirp/ip_icmp.o slirp/ip_input.o slirp/ip_output.o slirp/slirp.o slirp/mbuf.o slirp/misc.o slirp/sbuf.o slirp/socket.o slirp/tcp_input.o slirp/tcp_output.o slirp/tcp_subr.o slirp/tcp_timer.o slirp/udp.o slirp/bootp.o slirp/debug.o slirp/tftp.o libqemu.a -lm -lz -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread -lm -ldl -lasound -L/usr/X11R6/lib -lX11 -lXext -lutil /usr/lib/libSDL.a(SDL_loadso.o)(.text+0x1b): In function `SDL_LoadObject': : warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/X11R6/lib/libX11.a(x11trans.o)(.text+0x113c): In function `_X11TransSocketINETConnect': : warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking slirp/misc.o(.text+0x2a): In function `getouraddr': /var/tmp/portage/qemu-0.6.1/work/qemu-0.6.1/slirp/misc.c:96: warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/X11R6/lib/libX11.a(x11trans.o)(.text+0x127e): In function `_X11TransSocketINETConnect': : warning: Using 'getservbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/lib/libSDL.a(SDL_alsa_audio.o)(.text+0x24d): In function `ALSA_OpenAudio': : undefined reference to `snd_pcm_hw_params_set_rate_near@ALSA_0.9' /usr/lib/libSDL.a(SDL_alsa_audio.o)(.text+0x284): In function `ALSA_OpenAudio': : undefined reference to `snd_pcm_hw_params_set_period_size_near@ALSA_0.9' /usr/lib/libSDL.a(SDL_alsa_audio.o)(.text+0x2b5): In function `ALSA_OpenAudio': : undefined reference to `snd_pcm_hw_params_set_periods_near@ALSA_0.9' /usr/lib/libSDL.a(SDL_alsa_audio.o)(.text+0x3fe): In function `ALSA_OpenAudio': : undefined reference to `snd_pcm_hw_params_get_channels@ALSA_0.9' collect2: ld returned 1 exit status make[1]: *** [qemu-fast] Błąd 1 make[1]: Leaving directory `/var/tmp/portage/qemu-0.6.1/work/qemu-0.6.1/i386' make: *** [all] Błąd 1 Something still wrong. Maybe alsa version mismatch? bash-2.05b# qpkg -I -v | grep alsa media-libs/alsa-lib-1.0.6 * media-sound/alsa-utils-1.0.6 * media-sound/alsa-headers-1.0.6a *
emerge again libsdl I'm even more versed to disable qemu-fast
Still same bug. Reemerging alsa-lib and libsdl didn't help. And you are probably right about removing qemu-fast, because it doesn't work every time with every OS.
lu_zero: It would be preferable to make it work with the shared libraries than to use static ones... I'm trying to cut down on the number of static libraries that are installed without an explicit USE=static... not the other way around...
IIRC that would require you to rewrite that code from scratch. since the depend by useflag isn't implemented yet I'd like to have libraries build their static counterparts w/out the static useflag, better add a dynamiconly useflag for such task.
why would hte code need to be rewritten? Just drop the '-static' from the Makefile.am's LDFLAGS and change lib_LIBRARIES = libblah.a to lib_LTLIBRARIES = libblah.la in the Makefile.am There is absolutely no NEED to have static libs. -static IS dynamiconly. That's the purpose of the static USE flag.
should be fixed now.