[PATCH] arm: ensure symbol is a thumb symbol in new binutils
Jason A. Donenfeld
Jason at zx2c4.com
Tue Nov 21 09:46:25 PST 2017
Hi Russell,
On Tue, Nov 21, 2017 at 6:38 PM, Russell King - ARM Linux
<linux at armlinux.org.uk> 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
More information about the linux-arm-kernel
mailing list