when we use externalsrc for a component where S = B then make clean is not happening in the S ( as pointed by externalsrc location) The problem is that it fails to link or package when we build the same package for another MACHINE. This is brought to fore by using devtool. E.g. on lvm2 or fbset component from meta-oe Procedure to reproduce is MACHINE=qemux86 devtool modify -x lvm2 bitbake lvm2 now change MACHINE=qemux86-64 bitbake lvm2 you will get errors | /home/ubuntu/hacking/sources/lvm2/libdm/libdm-string.c:587: undefined reference to `__udivdi3' | /home/ubuntu/work/oe/openembedded-core/build/tmp-musl/sysroots/x86_64-linux/usr/libexec/x86_64-oe-linux-musl/gcc/x86_64-oe-linux-musl/5.3.0/ld: datastruct/bitset.o: file class ELFCLASS32 incompatible with ELFCLASS64 | /home/ubuntu/work/oe/openembedded-core/build/tmp-musl/sysroots/x86_64-linux/usr/libexec/x86_64-oe-linux-musl/gcc/x86_64-oe-linux-musl/5.3.0/ld: final link failed: File in wrong format
A fix to this bug was merged in http://git.openembedded.org/openembedded-core/commit/?id=f44f12af346888bdeb3ae01a275cb5dd4396b505 Please re-open if you still experience similar problems.