This is a bug to record a dependency issue, that might be solveable in the future. I experience this problem on both x86 and ppc-macos. The problem is as follows: # env USE="gif rle" emerge -pv urt These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild N ] media-libs/giflib-4.1.4 -X +rle 0 kB [ebuild N ] media-libs/urt-3.1b-r1 -X +gif -gs +tiff 0 kB Total size of downloads: 0 kB So, urt pulls giflib, and giflib on it's turn needs urt. I enabled rle USE-flag. then compiling (by invoking the same command minus "-pv", fails in giflib: then mv -f ".deps/gifrotat.Tpo" ".deps/gifrotat.Po"; else rm -f ".deps/gifrotat.Tpo"; exit 1; fi /bin/sh ../libtool --tag=CC --mode=link i686-pc-linux-gnu-gcc -march=athlon-xp -O3 -pipe -Wall -march=athlon-xp -O3 -pipe -o gifrotat gifrotat.o ../lib/libgif.la ../lib/libgetarg.a -lm i686-pc-linux-gnu-gcc -march=athlon-xp -O3 -pipe -Wall -march=athlon-xp -O3 -pipe -o .libs/gifrotat gifrotat.o ../lib/.libs/libgif.so ../lib/libgetarg.a -lm creating gifrotat if i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I.. -I. -I.. -I../lib -march=athlon-xp -O3 -pipe -Wall -march=athlon-xp -O3 -pipe -MT gif2rle.o -MD -MP -MF ".deps/gif2rle.Tpo" -c -o gif2rle.o gif2rle.c; \ then mv -f ".deps/gif2rle.Tpo" ".deps/gif2rle.Po"; else rm -f ".deps/gif2rle.Tpo"; exit 1; fi gif2rle.c:38:80: rle.h: No such file or directory gif2rle.c: In function `DumpScreen2Rle': gif2rle.c:245: error: `rle_pixel' undeclared (first use in this function) gif2rle.c:245: error: (Each undeclared identifier is reported only once gif2rle.c:245: error: for each function it appears in.) gif2rle.c:245: error: `rows' undeclared (first use in this function) gif2rle.c:250: warning: implicit declaration of function `RLE_SET_BIT' gif2rle.c:250: error: `rle_dflt_hdr' undeclared (first use in this function) gif2rle.c:250: error: `RLE_ALPHA' undeclared (first use in this function) gif2rle.c:258: warning: implicit declaration of function `rle_putcom' gif2rle.c:259: warning: implicit declaration of function `rle_put_setup' gif2rle.c:262: error: syntax error before ')' token gif2rle.c:262: error: syntax error before ')' token gif2rle.c:243: warning: unused variable `j' gif2rle.c:246: warning: unused variable `GifRow' gif2rle.c:248: warning: unused variable `ColorMapEntry' gif2rle.c: At top level: gif2rle.c:266: error: syntax error before "if" gif2rle.c:274: error: syntax error before string constant gif2rle.c:274: warning: type defaults to `int' in declaration of `GifQprintf' gif2rle.c:274: error: conflicting types for `GifQprintf' ../lib/gif_lib.h:234: error: previous declaration of `GifQprintf' gif2rle.c:274: warning: data definition has no type or storage class gif2rle.c:277: error: `j' undeclared here (not in a function) gif2rle.c:277: warning: type defaults to `int' in declaration of `rows' gif2rle.c:277: error: `rows' used prior to declaration gif2rle.c:277: error: `ColorMapEntry' undeclared here (not in a function) gif2rle.c:277: warning: data definition has no type or storage class gif2rle.c:278: error: `j' undeclared here (not in a function) gif2rle.c:278: warning: type defaults to `int' in declaration of `rows' gif2rle.c:278: error: conflicting types for `rows' gif2rle.c:277: error: previous declaration of `rows' gif2rle.c:278: error: `ColorMapEntry' undeclared here (not in a function) gif2rle.c:278: warning: data definition has no type or storage class gif2rle.c:279: error: `j' undeclared here (not in a function) gif2rle.c:279: warning: type defaults to `int' in declaration of `rows' gif2rle.c:279: error: conflicting types for `rows' gif2rle.c:278: error: previous declaration of `rows' gif2rle.c:279: error: `ColorMapEntry' undeclared here (not in a function) gif2rle.c:279: warning: data definition has no type or storage class gif2rle.c:280: error: syntax error before '}' token gif2rle.c:281: error: syntax error before '&' token gif2rle.c:281: warning: type defaults to `int' in declaration of `rle_putrow' gif2rle.c:281: warning: data definition has no type or storage class gif2rle.c:284: error: syntax error before '&' token gif2rle.c:284: warning: type defaults to `int' in declaration of `rle_puteof' gif2rle.c:284: warning: data definition has no type or storage class gif2rle.c:279: error: storage size of `rows' isn't known make[2]: *** [gif2rle.o] Error 1 make[2]: Leaving directory `/var/tmp/portage/giflib-4.1.4/work/giflib-4.1.4/util' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/giflib-4.1.4/work/giflib-4.1.4' make: *** [all] Error 2 First emerging urt (without rle USE-flag) then reemerging giflib with rle USE flag works, since urt probably provides rle. Reproducible: Always Steps to Reproduce: 1. make sure giflib and urt are not emerged 2. env USE="gif rle" emerge urt 3. watch compilation of giflib die on rle Actual Results: compilation of giflib failed due to missing rle Expected Results: ideally, portage should detect it and compile giflib twice, once without rle and once with after urt has compiled.
Circular dependencies are certainly bad... Looks like vapier introduced this in Bug 107497 (and it does not seem to fix the original problem anyway)...
Ah, I missed that bug.
it fixes the problem just fine, you're confusing issues jakub fixed *this* issue in cvs