diff --git a/libavcodec/ppc/asm.S b/libavcodec/ppc/asm.S index bbbf8a4a66..a3edeed202 100644 --- a/libavcodec/ppc/asm.S +++ b/libavcodec/ppc/asm.S @@ -36,12 +36,20 @@ .macro extfunc name .global X(\name) +#if _CALL_ELF == 2 + .text +X(\name): + addis %r2, %r12, .TOC.-X(\name)@ha + addi %r2, %r2, .TOC.-X(\name)@l + .localentry X(\name), .-X(\name) +#else .section .opd, "aw" X(\name): .quad L(\name), .TOC.@tocbase, 0 .previous .type X(\name), STT_FUNC L(\name): +#endif .endm .macro movrel rd, sym, gp diff --git a/libavutil/aarch64/asm.S b/libavutil/aarch64/asm.S index 51850ec7ba..1f9e784cea 100644 --- a/libavutil/aarch64/asm.S +++ b/libavutil/aarch64/asm.S @@ -58,8 +58,8 @@ ELF .size \name, . - \name .macro movrel rd, val #if CONFIG_PIC - adrp \rd, #:pg_hi21:\val - add \rd, \rd, #:lo12:\val + adrp \rd, :pg_hi21:\val + add \rd, \rd, :lo12:\val #else ldr \rd, =\val #endif