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
This commit is contained in:
Johann 2015-07-28 14:40:44 -07:00
parent 89ba55ed1c
commit 5d8f9f53d1
2 changed files with 10 additions and 3 deletions

View File

@ -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.

View File

@ -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