linux/arch/powerpc/boot
Michael Ellerman 65c5ec11c2 powerpc/boot: Fix 64-bit boot wrapper build with non-biarch compiler
Historically the boot wrapper was always built 32-bit big endian, even
for 64-bit kernels. That was because old firmwares didn't necessarily
support booting a 64-bit image. Because of that arch/powerpc/boot/Makefile
uses CROSS32CC for compilation.

However when we added 64-bit little endian support, we also added
support for building the boot wrapper 64-bit. However we kept using
CROSS32CC, because in most cases it is just CC and everything works.

However if the user doesn't specify CROSS32_COMPILE (which no one ever
does AFAIK), and CC is *not* biarch (32/64-bit capable), then CROSS32CC
becomes just "gcc". On native systems that is probably OK, but if we're
cross building it definitely isn't, leading to eg:

  gcc ... -m64 -mlittle-endian -mabi=elfv2 ... arch/powerpc/boot/cpm-serial.c
  gcc: error: unrecognized argument in option ‘-mabi=elfv2’
  gcc: error: unrecognized command line option ‘-mlittle-endian’
  make: *** [zImage] Error 2

To fix it, stop using CROSS32CC, because we may or may not be building
32-bit. Instead setup a BOOTCC, which defaults to CC, and only use
CROSS32_COMPILE if it's set and we're building for 32-bit.

Fixes: 147c05168f ("powerpc/boot: Add support for 64bit little endian wrapper")
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Reviewed-by: Cyril Bur <cyrilbur@gmail.com>
2017-07-28 19:35:46 +10:00
..
dts powerpc updates for 4.13 2017-07-07 13:55:45 -07:00
.gitignore powerpc/boot: Update .gitignore 2017-02-02 16:35:26 +11:00
4xx.c
4xx.h
44x.h
addnote.c powerpc/boot: Add 64bit and little endian support to addnote 2014-04-28 17:36:00 +10:00
bamboo.c
cpm-serial.c
crt0.S powerpc/boot: don't clobber r6 and r7 in epapr boot 2015-03-16 18:58:35 +11:00
crtsavres.S powerpc/64: Do not link crtsaveres.o in boot 2017-05-30 14:59:51 +10:00
cuboot-8xx.c
cuboot-52xx.c
cuboot-83xx.c
cuboot-85xx-cpm2.c
cuboot-85xx.c
cuboot-824x.c
cuboot-acadia.c
cuboot-amigaone.c
cuboot-bamboo.c
cuboot-c2k.c powerpc/boot: Remove the legacy gzip wrapper 2016-09-28 14:31:50 +10:00
cuboot-ebony.c
cuboot-hotfoot.c
cuboot-katmai.c
cuboot-kilauea.c
cuboot-mpc7448hpc2.c
cuboot-pq2.c
cuboot-rainier.c
cuboot-sam440ep.c
cuboot-sequoia.c
cuboot-taishan.c
cuboot-warp.c
cuboot-yosemite.c
cuboot.c
cuboot.h
dcr.h IBM Akebono: Add the Akebono platform 2014-05-01 08:26:26 +10:00
decompress.c powerpc/boot: Add support for XZ compression 2016-09-28 14:35:14 +10:00
devtree.c
div64.S
dummy.c
ebony.c
elf_util.c powerpc/boot: Add little endian support to elf utils 2014-04-28 17:36:04 +10:00
elf.h
ep88xc.c
ep405.c
ep8248e.c
epapr-wrapper.c powerpc/zImage: make the "OF" wrapper support ePAPR boot 2013-09-25 14:18:44 +10:00
epapr.c powerpc/zImage: make the "OF" wrapper support ePAPR boot 2013-09-25 14:18:44 +10:00
fixed-head.S
fixup-headers.sed powerpc/boot: Add sed script 2016-09-28 14:20:44 +10:00
fsl-soc.c
fsl-soc.h
gamecube-head.S
gamecube.c
hack-coff.c
holly.c
install.sh
io.h powerpc: Fix wrong defintion in boot/io.h 2014-08-05 15:41:03 +10:00
libfdt_env.h libfdt: add fdt type definitions 2015-04-29 17:17:17 -05:00
libfdt-wrapper.c powerpc/boot/fdt: Use unsigned long for pointer casts 2015-03-16 18:58:30 +11:00
main.c powerpc/boot: Fix the early OPAL console wrappers 2016-11-24 17:34:01 +11:00
Makefile powerpc/boot: Fix 64-bit boot wrapper build with non-biarch compiler 2017-07-28 19:35:46 +10:00
mktree.c
motload-head.S powerpc/86xx: Add support for Emerson/Artesyn MVME7100 2016-07-08 20:01:27 -05:00
mpc8xx.c
mpc8xx.h
mpc52xx-psc.c
mpsc.c
mv64x60_i2c.c
mv64x60.c
mv64x60.h
mvme5100.c powerpc/embedded6xx: Add support for Motorola/Emerson MVME5100 2014-01-09 17:52:20 -06:00
mvme7100.c powerpc/86xx: Add support for Emerson/Artesyn MVME7100 2016-07-08 20:01:27 -05:00
ns16550.c
of.c powerpc/boot: Rework of_claim() to make it 64bit friendly 2014-04-28 17:35:43 +10:00
of.h libfdt: add fdt type definitions 2015-04-29 17:17:17 -05:00
ofconsole.c powerpc/boot: Add byteswapping routines in oflib 2014-04-28 17:35:35 +10:00
oflib.c powerpc/boot: Define a routine to enter prom 2014-04-28 17:36:08 +10:00
opal-calls.S powerpc/boot: Fix the early OPAL console wrappers 2016-11-24 17:34:01 +11:00
opal.c powerpc/boot: Fix build failure in 32-bit boot wrapper 2016-11-28 22:58:13 +11:00
ops.h powerpc/boot: Fix the early OPAL console wrappers 2016-11-24 17:34:01 +11:00
page.h powerpc: Fix _ALIGN_* errors due to type difference. 2015-10-09 08:02:25 +11:00
planetcore.c powerpc/boot: drop planetcore_set_serial_speed 2015-03-16 18:50:17 +11:00
planetcore.h powerpc/boot: drop planetcore_set_serial_speed 2015-03-16 18:50:17 +11:00
ppc_asm.h powerpc/64s: Fix FIXUP_ENDIAN non-maskable interrupt reentrancy 2017-05-30 14:59:51 +10:00
ppcboot-hotfoot.h
ppcboot.h powerpc/86xx: Add support for Emerson/Artesyn MVME7100 2016-07-08 20:01:27 -05:00
pq2.c
pq2.h
ps3-head.S powerpc/ps3: Fix system hang with GCC 5 builds 2016-11-30 23:19:59 +11:00
ps3-hvcall.S
ps3.c powerpc/ps3: Fix system hang with GCC 5 builds 2016-11-30 23:19:59 +11:00
pseries-head.S powerpc/boot: Add support for 64bit little endian wrapper 2014-04-28 17:36:21 +10:00
README
redboot-8xx.c
redboot-83xx.c
redboot.h
reg.h
rs6000.h powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
serial.c powerpc/boot: Add OPAL console to epapr wrappers 2016-07-05 23:58:54 +10:00
simple_alloc.c
simpleboot.c powerpc/simpleboot: fix comment 2014-08-26 09:35:57 +02:00
stdbool.h powerpc/boot: Add support for XZ compression 2016-09-28 14:35:14 +10:00
stdint.h powerpc/boot: Add support for XZ compression 2016-09-28 14:35:14 +10:00
stdio.c powerpc/boot: Fix do_div for 64bit wrapper 2014-04-28 17:35:22 +10:00
stdio.h
stdlib.c
stdlib.h
string.h
string.S
swab.h powerpc/boot: Define byteswapping routines for little endian 2014-04-28 17:35:56 +10:00
treeboot-akebono.c powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
treeboot-bamboo.c
treeboot-currituck.c powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
treeboot-ebony.c
treeboot-iss4xx.c powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
treeboot-walnut.c
types.h powerpc/boot: Add support for XZ compression 2016-09-28 14:35:14 +10:00
uartlite.c
ugecon.c
ugecon.h
util.S powerpc: No need to use dot symbols when branching to a function 2014-04-23 10:05:16 +10:00
virtex405-head.S
virtex.c
wii-head.S
wii.c
wrapper powerpc/boot: Request no dynamic linker for boot wrapper 2016-12-05 13:02:25 +11:00
xz_config.h powerpc/boot: Add support for XZ compression 2016-09-28 14:35:14 +10:00
zImage.coff.lds.S
zImage.lds.S powerpc/boot: Fix zImage TOC alignment 2017-03-08 10:39:32 +11:00
zImage.ps3.lds.S

To extract the kernel vmlinux, System.map, .config or initrd from the zImage binary:

objcopy -j .kernel:vmlinux -O binary zImage vmlinux.gz
objcopy -j .kernel:System.map -O binary zImage System.map.gz
objcopy -j .kernel:.config -O binary zImage config.gz
objcopy -j .kernel:initrd -O binary zImage.initrd initrd.gz


	Peter