Use .text instead of .rodata on macho
The read only sections are getting stripped on some OS X builds. As a result, random data is used in place of the intended tables. Change-Id: I4629c90d9e0ae4d4efc193a93be6fb93809ae895
This commit is contained in:
parent
7e065cd573
commit
9679be4bc0
1
third_party/x86inc/README.libvpx
vendored
1
third_party/x86inc/README.libvpx
vendored
@ -15,3 +15,4 @@ Manage name mangling (prefixing with '_') manually because 'PREFIX' does not
|
||||
Expand PIC default to macho64 and respect CONFIG_PIC from libvpx
|
||||
Set 'private_extern' visibility for macho targets.
|
||||
Copy PIC 'GLOBAL' macros from x86_abi_support.asm
|
||||
Use .text instead of .rodata on macho to avoid broken tables in PIC mode.
|
||||
|
12
third_party/x86inc/x86inc.asm
vendored
12
third_party/x86inc/x86inc.asm
vendored
@ -97,8 +97,18 @@
|
||||
%define mangle(x) x
|
||||
%endif
|
||||
|
||||
; In some instances macho32 tables get misaligned when using .rodata.
|
||||
; When looking at the disassembly it appears that the offset is either
|
||||
; correct or consistently off by 90. Placing them in the .text section
|
||||
; works around the issue. It appears to be specific to the way libvpx
|
||||
; handles the tables.
|
||||
%macro SECTION_RODATA 0-1 16
|
||||
SECTION .rodata align=%1
|
||||
%ifidn __OUTPUT_FORMAT__,macho32
|
||||
SECTION .text align=%1
|
||||
fakegot:
|
||||
%else
|
||||
SECTION .rodata align=%1
|
||||
%endif
|
||||
%endmacro
|
||||
|
||||
; PIC macros are copied from vpx_ports/x86_abi_support.asm. The "define PIC"
|
||||
|
Loading…
x
Reference in New Issue
Block a user