Hi Russell,
On Tue, Nov 21, 2017 at 6:38 PM, Russell King - ARM Linux linux@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