From a75a9cf2fddefec93b7682d7698fb35138e7c8a6 Mon Sep 17 00:00:00 2001 From: Mike Frysinger <vapier@chromium.org> Date: Tue, 25 Sep 2012 00:37:11 -0400 Subject: [PATCH] check for x32 targets Add configure detection of the new x32 ABI as well as support in asm. Change-Id: Ic66a069599adeb81062090e3f11b71ee1fb97cb8 --- build/make/configure.sh | 5 +++++ vpx_ports/x86_abi_support.asm | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/build/make/configure.sh b/build/make/configure.sh index eeb959a29f..05bbabe777 100755 --- a/build/make/configure.sh +++ b/build/make/configure.sh @@ -989,6 +989,11 @@ process_common_toolchain() { x86*) bits=32 enabled x86_64 && bits=64 + check_cpp <<EOF && bits=x32 +#ifndef __ILP32__ +#error "not x32" +#endif +EOF soft_enable runtime_cpu_detect soft_enable mmx soft_enable sse diff --git a/vpx_ports/x86_abi_support.asm b/vpx_ports/x86_abi_support.asm index e1a540ce76..0c9fe37740 100644 --- a/vpx_ports/x86_abi_support.asm +++ b/vpx_ports/x86_abi_support.asm @@ -88,6 +88,8 @@ %define sym(x) x %elifidn __OUTPUT_FORMAT__,elf64 %define sym(x) x +%elifidn __OUTPUT_FORMAT__,elfx32 +%define sym(x) x %elifidn __OUTPUT_FORMAT__,x64 %define sym(x) x %else @@ -110,6 +112,8 @@ %define PRIVATE :hidden %elifidn __OUTPUT_FORMAT__,elf64 %define PRIVATE :hidden + %elifidn __OUTPUT_FORMAT__,elfx32 + %define PRIVATE :hidden %elifidn __OUTPUT_FORMAT__,x64 %define PRIVATE %else @@ -223,6 +227,9 @@ %ifidn __OUTPUT_FORMAT__,elf64 %define WRT_PLT wrt ..plt %define HIDDEN_DATA(x) x:data hidden + %elifidn __OUTPUT_FORMAT__,elfx32 + %define WRT_PLT wrt ..plt + %define HIDDEN_DATA(x) x:data hidden %else %define HIDDEN_DATA(x) x %endif @@ -364,5 +371,8 @@ section .text %elifidn __OUTPUT_FORMAT__,elf64 section .note.GNU-stack noalloc noexec nowrite progbits section .text +%elifidn __OUTPUT_FORMAT__,elfx32 +section .note.GNU-stack noalloc noexec nowrite progbits +section .text %endif -- GitLab