On Tue, Nov 21, 2017 at 06:46:25PM +0100, Jason A. Donenfeld wrote: > 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? Could do, I was debating about extending this for the buggy linker problem too from a few weeks ago. > > +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. What if we locate the "badr" instruction to the same offset - does that trigger the binutils bug? Note that the grep expression will need updating... -- RMK's Patch system: http://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up According to speedtest.net: 8.21Mbps down 510kbps up