From: Guillaume Poirier Date: Wed, 21 Nov 2007 18:30:49 +0000 (+0000) Subject: add support for x86_64 on Darwin9.0 (Mac OS X 10.5, aka Leopard) X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=e5479d7c58110a219b875889449bb3dc027735ea;p=x264 add support for x86_64 on Darwin9.0 (Mac OS X 10.5, aka Leopard) Patch by Antoine Gerschenfeld %gerschen A clipper P ens P fr% git-svn-id: svn://svn.videolan.org/x264/trunk@700 df754926-b1dd-0310-bc7b-ec298dee348c --- diff --git a/common/amd64/amd64inc.asm b/common/amd64/amd64inc.asm index b928652b..819bbdb9 100644 --- a/common/amd64/amd64inc.asm +++ b/common/amd64/amd64inc.asm @@ -50,6 +50,17 @@ BITS 64 %endif %endmacro +; Name of the .rodata section. On OS X we cannot use .rodata because YASM +; is unable to compute address offsets outside of .text so we use the .text +; section instead until YASM is fixed. +%macro SECTION_RODATA 0 + %ifidn __OUTPUT_FORMAT__,macho64 + SECTION .text align=16 + %else + SECTION .rodata align=16 + %endif +%endmacro + %macro pad 1 %undef %1 %ifdef PREFIX diff --git a/common/amd64/dct-a.asm b/common/amd64/dct-a.asm index 5c859d2c..805afea9 100644 --- a/common/amd64/dct-a.asm +++ b/common/amd64/dct-a.asm @@ -148,7 +148,7 @@ BITS 64 ; Constants ;============================================================================= -SECTION .rodata align=16 +SECTION_RODATA pw_1: times 8 dw 1 pw_32: times 8 dw 32 diff --git a/common/amd64/deblock-a.asm b/common/amd64/deblock-a.asm index 8af8cd0c..3e9d5938 100644 --- a/common/amd64/deblock-a.asm +++ b/common/amd64/deblock-a.asm @@ -24,7 +24,7 @@ BITS 64 %include "amd64inc.asm" -SECTION .rodata align=16 +SECTION_RODATA pb_01: times 16 db 0x01 pb_03: times 16 db 0x03 pb_a1: times 16 db 0xa1 diff --git a/common/amd64/mc-a.asm b/common/amd64/mc-a.asm index bd533291..4a66c81a 100644 --- a/common/amd64/mc-a.asm +++ b/common/amd64/mc-a.asm @@ -42,9 +42,8 @@ BITS 64 ; Constants ;============================================================================= -SECTION .rodata +SECTION_RODATA -ALIGN 16 pw_4: times 4 dw 4 pw_8: times 4 dw 8 pw_32: times 4 dw 32 diff --git a/common/amd64/mc-a2.asm b/common/amd64/mc-a2.asm index 1152f5b8..5851eb3a 100644 --- a/common/amd64/mc-a2.asm +++ b/common/amd64/mc-a2.asm @@ -30,9 +30,8 @@ BITS 64 ; Read only data ;============================================================================= -SECTION .rodata align=16 +SECTION_RODATA -ALIGN 16 pw_1: times 4 dw 1 pw_16: times 4 dw 16 pw_32: times 4 dw 32 diff --git a/common/amd64/pixel-sse2.asm b/common/amd64/pixel-sse2.asm index 21dd10b4..7b817386 100644 --- a/common/amd64/pixel-sse2.asm +++ b/common/amd64/pixel-sse2.asm @@ -29,7 +29,7 @@ BITS 64 %include "amd64inc.asm" -SECTION .rodata align=16 +SECTION_RODATA pw_1: times 8 dw 1 ssim_c1: times 4 dd 416 ; .01*.01*255*255*64 diff --git a/common/amd64/predict-a.asm b/common/amd64/predict-a.asm index 96751a1e..91e6b8bc 100644 --- a/common/amd64/predict-a.asm +++ b/common/amd64/predict-a.asm @@ -58,9 +58,8 @@ ALIGN 4 %endmacro -SECTION .rodata align=16 +SECTION_RODATA -ALIGN 16 pw_2: times 4 dw 2 pw_4: times 4 dw 4 pw_8: times 4 dw 8 diff --git a/common/amd64/quant-a.asm b/common/amd64/quant-a.asm index 4077742b..162c70a4 100644 --- a/common/amd64/quant-a.asm +++ b/common/amd64/quant-a.asm @@ -24,7 +24,7 @@ BITS 64 %include "amd64inc.asm" -SECTION .rodata +SECTION_RODATA pd_1: times 2 dd 1 SECTION .text diff --git a/configure b/configure index dc4e411f..8d30b828 100755 --- a/configure +++ b/configure @@ -255,7 +255,13 @@ case $host_cpu in x86_64) ARCH="X86_64" AS="yasm" - ASFLAGS="-f elf -m amd64" + if [ "$SYS" = MACOSX ];then + ASFLAGS="-f macho64 -m amd64 -D__PIC__ -DPREFIX" + CFLAGS="$CFLAGS -arch x86_64" + LDFLAGS="$LDFLAGS -arch x86_64" + else + ASFLAGS="-f elf -m amd64" + fi ;; powerpc|powerpc64) ARCH="PPC"