From: Johann Date: Tue, 28 Jul 2015 21:40:44 +0000 (-0700) Subject: Catch all elf formats X-Git-Tag: v1.5.0~293^2~6 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5d8f9f53d190dd54720a404612cc628ea54ad603;p=libvpx Catch all elf formats Make sure all variants get correct visibility and SECTION notes. libvpx only pass elf32 and elf64 to the assembler, never just elf. Change-Id: I7c36c115bf52436c9afe61985c859a2081948271 --- diff --git a/third_party/x86inc/README.libvpx b/third_party/x86inc/README.libvpx index eb5211583..629cecea7 100644 --- a/third_party/x86inc/README.libvpx +++ b/third_party/x86inc/README.libvpx @@ -13,3 +13,4 @@ Prefix functions with vpx by default. Manage name mangling (prefixing with '_') manually because 'PREFIX' does not exist in libvpx. Expand PIC default to macho64 and respect CONFIG_PIC from libvpx +Catch all elf formats for 'hidden' status and SECTION notes. diff --git a/third_party/x86inc/x86inc.asm.new b/third_party/x86inc/x86inc.asm.new index 0c7e5b4ce..b38ae9ef0 100644 --- a/third_party/x86inc/x86inc.asm.new +++ b/third_party/x86inc/x86inc.asm.new @@ -687,7 +687,9 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae, CAT_XDEFINE cglobaled_, %2, 1 %endif %xdefine current_function %2 - %ifidn __OUTPUT_FORMAT__,elf + %ifidn __OUTPUT_FORMAT__,elf32 + global %2:function %%VISIBILITY + %elifidn __OUTPUT_FORMAT__,elf64 global %2:function %%VISIBILITY %else global %2 @@ -720,7 +722,9 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae, %macro const 1-2+ %xdefine %1 mangle(private_prefix %+ _ %+ %1) - %ifidn __OUTPUT_FORMAT__,elf + %ifidn __OUTPUT_FORMAT__,elf32 + global %1:data hidden + %elifidn __OUTPUT_FORMAT__,elf64 global %1:data hidden %else global %1 @@ -730,7 +734,9 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg, jge, jng, jnge, ja, jae, ; This is needed for ELF, otherwise the GNU linker assumes the stack is ; executable by default. -%ifidn __OUTPUT_FORMAT__,elf +%ifidn __OUTPUT_FORMAT__,elf32 +SECTION .note.GNU-stack noalloc noexec nowrite progbits +%elifidn __OUTPUT_FORMAT__,elf64 SECTION .note.GNU-stack noalloc noexec nowrite progbits %endif