| Summary: | libmpeg2 emerge fails with -lgpm not found | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | Lionel Bouton <lionel-dev> |
| Component: | [OLD] Library | Assignee: | Gentoo Linux bug wranglers <bug-wranglers> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | lionel-dev |
| Priority: | High | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
|
Description
Lionel Bouton
2005-03-24 02:14:31 UTC
um, can you please post the compile errors. From the very scant information you have provided, it's not clear whether something else links to a now non-existent libgpm or whether libmpeg2 is trying to link directly. I strongly suspect that libmpeg2 is linking to something which used to link to gpm (and is still trying to). Please reopen the bug after you have provided the compile output. Here it is. I'm not sure why the -lgpm is used. I tried emerging aalib again (on pure guess, given libaa.so is sitting right next to the -lgpm) without success ("-gpm" was clearly used on aalib emerge and given the -av output was used on the previous aalib emerge too). Oddly I have another system where libmpeg2 could be installed without gpm.
i686-pc-linux-gnu-gcc -Wall -march=pentium4 -fomit-frame-pointer -pipe -O3 -fomit-frame-pointer -fno-common -I/usr/include/SDL -D_REENTRANT -o .libs/mpeg2dec mpeg2dec.o dump_state.o getopt.o gettimeofday.o -Wl,-rpath -Wl,/usr/lib ../libvo/libvo.a -lSM -lICE -lXv -L/usr/lib /usr/lib/libSDL.so //usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/libstdc++.so -L/usr/i686-pc-linux-gnu/bin -L/usr/i686-pc-linux-gnu/lib -L/usr/lib/gcc-lib/i686-pc-linux-gnu/../../../i686-pc-linux-gnu/lib -lgcc_s -lc /usr/lib/libasound.so -ldl -lXext -lvga /usr/lib/libaa.so -lm -lgpm /usr/lib/libcaca.so -lX11 -lncurses -lpthread ../libmpeg2/.libs/libmpeg2.so ../libmpeg2/convert/.libs/libmpeg2convert.so -Wl,--rpath -Wl,//usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/../../../../i686-pc-linux-gnu/bin/ld: cannot find -lgpm
collect2: ld returned 1 exit status
distcc[13129] ERROR: compile (null) on localhost failed
make[1]: *** [mpeg2dec] Error 1
make[1]: Leaving directory `/var/tmp/portage/libmpeg2-0.4.0b/work/mpeg2dec-0.4.0/src'
make: *** [all-recursive] Error 1
Lionel, the symptoms you show indicate that something (not necessarily aalib) that libmpeg2 links against is, in turn, trying to link against lgpm. So the key here is to find what that is and remerge it so it does not try to link against gpm.
So two things you can do: if you used to have "gpm" in USE, please run:
emerge -Duv --newuse world -p
to see what needs to be remerged because of changed USE flags.
revdep-rebuild -- -p
to see what portage itself finds as broken linking.
"emerge -Duv --newuse world -p" was my first attempt to find what could have gone wrong. Unfortunately portage thinks everything is ok there (nothing to re-emerge). "revdep-rebuild" slipped my mind though so I just launched: revdep-rebuild -- -p Checking reverse dependencies... Packages containing binaries and libraries broken by any package update, will be recompiled. Collecting system binaries and libraries... done. (/root/.revdep-rebuild.1_files) Collecting complete LD_LIBRARY_PATH... done. (/root/.revdep-rebuild.2_ldpath) Checking dynamic linking consistency... done. (/root/.revdep-rebuild.3_rebuild) Assigning files to ebuilds... Nothing to rebuild Evaluating package order... done. (/root/.revdep-rebuild.5_order) Dynamic linking on your system is consistent... All done. Nothing :-( The command genrating the gcc call with -lgpm is the following: /bin/sh ../libtool --mode=link gcc -Wall -g -O3 -fomit-frame-pointer -fno-common -I/usr/include/SDL -D_REENTRANT -o mpeg2dec mpeg2dec.o dump_state.o getopt.o gettimeofday.o ../libvo/libvo.a -lSM -lICE -lX11 -lXext -lXv -L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread ../libmpeg2/libmpeg2.la ../libmpeg2/convert/libmpeg2convert.la I'm trying to reemerge all suspect components one by one (beginning with SDL). re-emerging libsdl did the trick. I'm not sure why... After re-emerging libsdl the libtool command calls: i686-pc-linux-gnu-gcc -Wall -march=pentium4 -fomit-frame-pointer -pipe -O3 -fomit-frame-pointer -fno-common -I/usr/include/SDL -D_REENTRANT -o .libs/mpeg2dec mpeg2dec.o dump_state.o getopt.o gettimeofday.o -Wl,-rpath -Wl,/usr/lib ../libvo/libvo.a -lSM -lICE -lXv -L/usr/lib /usr/lib/libSDL.so //usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/libstdc++.so -L/usr/i686-pc-linux-gnu/bin -L/usr/i686-pc-linux-gnu/lib -L/usr/lib/gcc-lib/i686-pc-linux-gnu/../../../i686-pc-linux-gnu/lib -lgcc_s -lc /usr/lib/libasound.so -ldl -lXext -lvga /usr/lib/libaa.so -lm /usr/lib/libcaca.so -lX11 -lncurses -lpthread ../libmpeg2/.libs/libmpeg2.so ../libmpeg2/convert/.libs/libmpeg2convert.so -Wl,--rpath -Wl,//usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5 -lgpm between -lm and /usr/lib/libcaca.so disappeared. Note that the libsdl is linked to libcaca and libaa. Is it possible that for example, sdl was emerged with aalib compiled with gpm support, then aalib was re-emerged without it and libsdl still somehow could fool libtool into thinking it needs -lgpm for this? yes, it's very possible. |