summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/Makefile
diff options
context:
space:
mode:
authorMichael Ellerman <mpe@ellerman.id.au>2015-04-23 17:27:12 +1000
committerMichael Ellerman <mpe@ellerman.id.au>2015-05-11 20:00:00 +1000
commit60e065f70bdb0b0e916389024922ad40f3270c96 (patch)
tree98951d818f988287ff21cc1e10c135537c890d9c /arch/powerpc/Makefile
parente79c8385c878abdf90290cba6bea08fd60058562 (diff)
downloadop-kernel-dev-60e065f70bdb0b0e916389024922ad40f3270c96.zip
op-kernel-dev-60e065f70bdb0b0e916389024922ad40f3270c96.tar.gz
powerpc: Reject binutils 2.24 when building little endian
There is a bug in binutils 2.24 which causes miscompilation if we're building little endian and using weak symbols (which the kernel does). It is fixed in binutils commit 57fa7b8c7e59 "Correct elf_merge_st_other arguments for weak symbols", which is in binutils 2.25 and has been backported to the binutils 2.24 branch and has been picked up by most distros it seems. However if we're running stock 2.24 (no extra version) then the bug is present, so check for that and bail. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/Makefile')
-rw-r--r--arch/powerpc/Makefile8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 3609504..a314cb0 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -339,6 +339,14 @@ checkbin:
echo 'disable kernel modules' ; \
false ; \
fi
+ @if test "x${CONFIG_CPU_LITTLE_ENDIAN}" = "xy" \
+ && $(LD) --version | head -1 | grep ' 2\.24$$' >/dev/null ; then \
+ echo -n '*** binutils 2.24 miscompiles weak symbols ' ; \
+ echo 'in some circumstances.' ; \
+ echo -n '*** Please use a different binutils version.' ; \
+ false ; \
+ fi
+
CLEAN_FILES += $(TOUT)
OpenPOWER on IntegriCloud