powerpc/boot: Add sed script
The powerpc boot wrapper is potentially compiled with a separate toolchain and/or toolchain flags than the rest of the kernel. The usual case is a 64-bit big endian kernel builds a 32-bit big endian wrapper. The main problem with this is that the wrapper does not have access to the kernel headers (without a lot of gross hacks). To get around this the required headers are copied into the build directory via several sed scripts which rewrite problematic includes. This patch moves these fixups out of the makefile into a separate .sed script file to clean up makefile slightly. Signed-off-by: Oliver O'Halloran <oohall@gmail.com> [mpe: Reword first paragraph of change log a little] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
96c447077c
commit
1a13de6df9
@ -125,23 +125,17 @@ obj-wlib := $(addsuffix .o, $(basename $(addprefix $(obj)/, $(src-wlib))))
|
||||
obj-plat := $(addsuffix .o, $(basename $(addprefix $(obj)/, $(src-plat))))
|
||||
obj-plat: $(libfdt)
|
||||
|
||||
quiet_cmd_copy_zlib = COPY $@
|
||||
cmd_copy_zlib = sed "s@__used@@;s@<linux/\([^>]*\).*@\"\1\"@" $< > $@
|
||||
|
||||
quiet_cmd_copy_zlibheader = COPY $@
|
||||
cmd_copy_zlibheader = sed "s@<linux/\([^>]*\).*@\"\1\"@" $< > $@
|
||||
# stddef.h for NULL
|
||||
quiet_cmd_copy_zliblinuxheader = COPY $@
|
||||
cmd_copy_zliblinuxheader = sed "s@<linux/string.h>@\"string.h\"@;s@<linux/kernel.h>@<stddef.h>@;s@<linux/\([^>]*\).*@\"\1\"@" $< > $@
|
||||
quiet_cmd_copy_kern_src = COPY $@
|
||||
cmd_copy_kern_src = sed -f $(srctree)/arch/powerpc/boot/fixup-headers.sed $< > $@
|
||||
|
||||
$(addprefix $(obj)/,$(zlib)): $(obj)/%: $(srctree)/lib/zlib_inflate/%
|
||||
$(call cmd,copy_zlib)
|
||||
$(call cmd,copy_kern_src)
|
||||
|
||||
$(addprefix $(obj)/,$(zlibheader)): $(obj)/%: $(srctree)/lib/zlib_inflate/%
|
||||
$(call cmd,copy_zlibheader)
|
||||
$(call cmd,copy_kern_src)
|
||||
|
||||
$(addprefix $(obj)/,$(zliblinuxheader)): $(obj)/%: $(srctree)/include/linux/%
|
||||
$(call cmd,copy_zliblinuxheader)
|
||||
$(call cmd,copy_kern_src)
|
||||
|
||||
quiet_cmd_copy_libfdt = COPY $@
|
||||
cmd_copy_libfdt = cp $< $@
|
||||
|
12
arch/powerpc/boot/fixup-headers.sed
Normal file
12
arch/powerpc/boot/fixup-headers.sed
Normal file
@ -0,0 +1,12 @@
|
||||
# Copyright 2016 IBM Corporation.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 or later as
|
||||
# published by the Free Software Foundation.
|
||||
|
||||
s@#include <linux/decompress/mm\.h>@@;
|
||||
s@\"zlib_inflate/\([^\"]*\).*@"\1"@;
|
||||
s@<linux/kernel.h>@<stddef.h>@;
|
||||
|
||||
s@__used@@;
|
||||
s@<linux/\([^>]*\).*@"\1"@;
|
Loading…
Reference in New Issue
Block a user