Hi Russell, On Tue, Nov 21, 2017 at 6:38 PM, Russell King - ARM Linux <linux@xxxxxxxxxxxxxxx> wrote: > +toolcheck: > + @$(CONFIG_SHELL) '$(srctree)/$(src)/toolcheck' Perhaps faster to put the check for THUMB2_KERNEL around the make target, instead of doing it in the code? > +if grep -q 'CONFIG_THUMB2_KERNEL=y' .config; then See above. > + tmp=$(mktemp -d /tmp/binutils-test.XXXXXXXXXX) > + cat <<EOF | $AS $ASFLAGS -o $tmp/test.o > + .syntax unified > + .thumb > + .macro badr, reg, sym > + adr \reg, \sym + 1 > + .endm > + > +test: > + mov r0, #0 > + badr lr, test > +EOF > + if ! $OBJDUMP -d $tmp/test.o | grep -q '4:\s*f2af 0e07'; then > + echo "Error: your assembler version produces buggy kernels" >&2 > + $AS --version | head -n1 >&2 > + rm $tmp/*.o > + rmdir $tmp > + exit 1 > + fi > + rm $tmp/*.o > + rmdir $tmp > +fi This doesn't actually catch the issues. In the buggy binutils, it appears that sometimes adr grabs the right symbol and sometimes it doesn't. I'm not yet able to figure out a minimal condition for it going one way or the other. Jason