sys-devel/crossdev-20100620 does not update symlinks for binutils when binutils is upgraded. Reproducible: Always Steps to Reproduce: 1. Unmask ~cross-mips-linux-uclibc/linux-headers-2.6.34 ~x86 ~mips ~cross-mips-linux-uclibc/uclibc-0.9.30.1-r1 ~x86 ~mips 2. ensure cross-mips-linux-uclibc/binutils-2.16.1-r3 will install (i.e. not later version) 3.setup env export CHOST=x86_64-pc-linux-gnu export CHOST=x86_64-pc-linux-gnu export CTARGET=mips-linux-uclibc export UCLIBC_CPU=MIPS_ISA_MIPS32 4. Invoke Crossdev crossdev -S -P -v -t mips-linux-uclibc 5. Above fails @ gcc build 6. unmask ~cross-mips-linux-uclibc/binutils-2.20.1 ~x86 ~mips 7. Invoke Crossdev crossdev -S -P -v -t mips-linux-uclibc ## this fails again @ gcc - no ar found 5. observe broken symlinks: ls -l /usr/bin/mips-linux-uclibc-* ls -l /usr/libexec/gcc/mips-linux-uclibc Actual Results: all symlinks broken Expected Results: symlinks corrected attached is additional info
Created attachment 244261 [details] output of crossdev where binutils is upgraded from binutils_2.16.1-r3 to 2.20.1-r1
Created attachment 244263 [details] cross-mips-linux-uclibc-info.log
Created attachment 244265 [details] emerge --info
Created attachment 244269 [details] equery l cross-mips-linux-uclibc/
*** Bug 334129 has been marked as a duplicate of this bug. ***
*** Bug 334131 has been marked as a duplicate of this bug. ***
one liner to fix: ls /usr/x86_64-pc-linux-gnu/mips-linux-uclibc/binutils-bin/2.20.1/ \ | xargs -I '{}' bash -c 'rm /usr/libexec/gcc/mips-linux-uclibc/$1; ln -s /usr/x86_64-pc-linux-gnu/mips-linux-uclibc/binutils-bin/2.20.1/$1 /usr/libexec/gcc/mips-linux-uclibc/$1' '{}' '{}';
crossdev has nothing to do with updating of packages. however, your pre-env setup makes no sense. dont do that -- crossdev will set the values for you and will setup proper wrappers for you. i dont even know why you're doing that. no documentation is telling you to. clean out the target, stop mucking with the environment, and then see if the upgrade works correctly.