diff options
author | Kees Cook <keescook@chromium.org> | 2013-04-12 22:13:45 +0200 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2013-04-17 00:22:01 +0200 |
commit | 17c961f7702ff6037b66bb2e5f3ddd58de4ce7e5 (patch) | |
tree | d6f5b5fb22ef8e49242917129e40ceb97775370a /arch/x86/tools | |
parent | x86, relocs: Add 64-bit ELF support to relocs tool (diff) | |
download | linux-17c961f7702ff6037b66bb2e5f3ddd58de4ce7e5.tar.xz linux-17c961f7702ff6037b66bb2e5f3ddd58de4ce7e5.zip |
x86, relocs: Build separate 32/64-bit tools
Since the ELF structures and access macros change size based on 32 vs
64 bits, build a separate 32-bit relocs tool (for handling realmode
and 32-bit relocations), and a 64-bit relocs tool (for handling 64-bit
kernel relocations).
Signed-off-by: Kees Cook <keescook@chromium.org>
Link: http://lkml.kernel.org/r/1365797627-20874-5-git-send-email-keescook@chromium.org
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86/tools')
-rw-r--r-- | arch/x86/tools/.gitignore | 3 | ||||
-rw-r--r-- | arch/x86/tools/Makefile | 20 |
2 files changed, 20 insertions, 3 deletions
diff --git a/arch/x86/tools/.gitignore b/arch/x86/tools/.gitignore index be0ed065249b..2b45d5f063ba 100644 --- a/arch/x86/tools/.gitignore +++ b/arch/x86/tools/.gitignore @@ -1 +1,2 @@ -relocs +relocs_32* +relocs_64* diff --git a/arch/x86/tools/Makefile b/arch/x86/tools/Makefile index bae601f900ef..a8cb70c6b8a1 100644 --- a/arch/x86/tools/Makefile +++ b/arch/x86/tools/Makefile @@ -37,6 +37,22 @@ $(obj)/test_get_len.o: $(srctree)/arch/x86/lib/insn.c $(srctree)/arch/x86/lib/in $(obj)/insn_sanity.o: $(srctree)/arch/x86/lib/insn.c $(srctree)/arch/x86/lib/inat.c $(srctree)/arch/x86/include/asm/inat_types.h $(srctree)/arch/x86/include/asm/inat.h $(srctree)/arch/x86/include/asm/insn.h $(objtree)/arch/x86/lib/inat-tables.c +HOSTCFLAGS_relocs_32.o += -DELF_BITS=32 +HOSTCFLAGS_relocs_64.o += -DELF_BITS=64 + +quiet_cmd_cp_reloc = GEN $@ + cmd_cp_reloc = cp $< $@ + +$(obj)/relocs_%.c: $(srctree)/arch/x86/tools/relocs.c + $(call cmd,cp_reloc) + HOST_EXTRACFLAGS += -I$(srctree)/tools/include -hostprogs-y += relocs -relocs: $(obj)/relocs +hostprogs-y += relocs_$(BITS) +relocs_binaries = relocs_$(BITS) +ifeq ($(CONFIG_64BIT),y) + hostprogs-y += relocs_32 + relocs_binaries += relocs_32 +endif +relocs: $(relocs_binaries) +relocs_32: $(obj)/relocs_32 +relocs_64: $(obj)/relocs_64 |