Bug 639204 - Fix link with xcode 4; r=tterribe

This commit is contained in:
Rafael Ávila de Espíndola 2011-03-14 11:50:00 -04:00
Родитель 9ca9c88072
Коммит 4869b6f1ce
3 изменённых файлов: 47 добавлений и 8 удалений

Просмотреть файл

@ -317,3 +317,6 @@ done
# Patch to compile with Sun Studio on Solaris
patch -p3 < solaris.patch
# Patch to fix link with xcode4
patch -p1 < xcode4.patch

Просмотреть файл

@ -168,15 +168,10 @@
%macro GET_GOT 1
push %1
call %%get_got
%%sub_offset:
jmp %%exitGG
%%get_got:
mov %1, [esp]
add %1, fake_got - %%sub_offset
ret
%%exitGG:
pop %1
%undef GLOBAL
%define GLOBAL(x) x + %1 - fake_got
%define GLOBAL(x) x + %1 - %%get_got
%undef RESTORE_GOT
%define RESTORE_GOT pop %1
%endmacro
@ -289,7 +284,6 @@
%elifidn __OUTPUT_FORMAT__,macho32
%macro SECTION_RODATA 0
section .text
fake_got:
%endmacro
%else
%define SECTION_RODATA section .rodata

42
media/libvpx/xcode4.patch Normal file
Просмотреть файл

@ -0,0 +1,42 @@
commit 52f6e28e9e5e176424c1c65ff13aa57abf9c00e6
Author: Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
Date: Sat Mar 5 15:36:40 2011 -0500
Fix build with xcode4 and simplify GLOBAL.
Without this change I get link errors in firefox's libxul. It looks
like the linker expect a particular pattern for getting the GOT. This
patch changes webm to use the same pattern used by the compiler.
Change-Id: Iea8c2e134ad45c1dc7d221ff885a8429bfa4e057
diff --git a/vpx_ports/x86_abi_support.asm b/vpx_ports/x86_abi_support.asm
index a872b28..be64cd7 100644
--- a/vpx_ports/x86_abi_support.asm
+++ b/vpx_ports/x86_abi_support.asm
@@ -168,15 +168,10 @@
%macro GET_GOT 1
push %1
call %%get_got
- %%sub_offset:
- jmp %%exitGG
%%get_got:
- mov %1, [esp]
- add %1, fake_got - %%sub_offset
- ret
- %%exitGG:
+ pop %1
%undef GLOBAL
- %define GLOBAL(x) x + %1 - fake_got
+ %define GLOBAL(x) x + %1 - %%get_got
%undef RESTORE_GOT
%define RESTORE_GOT pop %1
%endmacro
@@ -289,7 +284,6 @@
%elifidn __OUTPUT_FORMAT__,macho32
%macro SECTION_RODATA 0
section .text
-fake_got:
%endmacro
%else
%define SECTION_RODATA section .rodata