[SCM] ffmpeg/master: Fix building with --disable-pic on gcc-4.8.
aca-guest at users.alioth.debian.org
aca-guest at users.alioth.debian.org
Sat Jan 21 23:05:11 UTC 2017
The following commit has been merged in the master branch:
commit c64661a812383edfe996c35bd422b86607dd36ef
Author: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
Date: Sat Jan 21 22:28:51 2017 +0100
Fix building with --disable-pic on gcc-4.8.
diff --git a/debian/patches/series b/debian/patches/series
index 3a50459..11370f2 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
lavf-chromaprint-Update-for-version-1.4.patch
+swscale-save-ebx-register-when-it-is-not-available.patch
diff --git a/debian/patches/swscale-save-ebx-register-when-it-is-not-available.patch b/debian/patches/swscale-save-ebx-register-when-it-is-not-available.patch
new file mode 100644
index 0000000..d6bab6c
--- /dev/null
+++ b/debian/patches/swscale-save-ebx-register-when-it-is-not-available.patch
@@ -0,0 +1,107 @@
+From: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
+Date: Fri, 16 Dec 2016 02:29:56 +0100
+Subject: swscale: save ebx register when it is not available
+
+Configure checks if the ebx register can be used for asm and it has to
+be saved if and only if this is not the case.
+Without this the build fails when configuring with --toolchain=hardened
+--disable-pic on i386 using gcc 4.8:
+error: PIC register clobbered by '%ebx' in 'asm'
+
+In that case gcc 4.8 reserves the ebx register for the GOT needed for
+PIE, so it can't be used in asm directly.
+
+Reviewed-by: Michael Niedermayer <michael at niedermayer.cc>
+Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
+---
+ libswscale/x86/hscale_fast_bilinear_simd.c | 20 ++++++++++----------
+ 1 file changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/libswscale/x86/hscale_fast_bilinear_simd.c b/libswscale/x86/hscale_fast_bilinear_simd.c
+index 2cba5f0a..60a2cbfc 100644
+--- a/libswscale/x86/hscale_fast_bilinear_simd.c
++++ b/libswscale/x86/hscale_fast_bilinear_simd.c
+@@ -199,7 +199,7 @@ void ff_hyscale_fast_mmxext(SwsContext *c, int16_t *dst,
+ #if ARCH_X86_64
+ uint64_t retsave;
+ #else
+-#if defined(PIC)
++#if !HAVE_EBX_AVAILABLE
+ uint64_t ebxsave;
+ #endif
+ #endif
+@@ -209,7 +209,7 @@ void ff_hyscale_fast_mmxext(SwsContext *c, int16_t *dst,
+ "mov -8(%%rsp), %%"FF_REG_a" \n\t"
+ "mov %%"FF_REG_a", %5 \n\t" // retsave
+ #else
+-#if defined(PIC)
++#if !HAVE_EBX_AVAILABLE
+ "mov %%"FF_REG_b", %5 \n\t" // ebxsave
+ #endif
+ #endif
+@@ -255,7 +255,7 @@ void ff_hyscale_fast_mmxext(SwsContext *c, int16_t *dst,
+ "mov %5, %%"FF_REG_a" \n\t"
+ "mov %%"FF_REG_a", -8(%%rsp) \n\t"
+ #else
+-#if defined(PIC)
++#if !HAVE_EBX_AVAILABLE
+ "mov %5, %%"FF_REG_b" \n\t"
+ #endif
+ #endif
+@@ -264,12 +264,12 @@ void ff_hyscale_fast_mmxext(SwsContext *c, int16_t *dst,
+ #if ARCH_X86_64
+ ,"m"(retsave)
+ #else
+-#if defined(PIC)
++#if !HAVE_EBX_AVAILABLE
+ ,"m" (ebxsave)
+ #endif
+ #endif
+ : "%"FF_REG_a, "%"FF_REG_c, "%"FF_REG_d, "%"FF_REG_S, "%"FF_REG_D
+-#if ARCH_X86_64 || !defined(PIC)
++#if ARCH_X86_64 || HAVE_EBX_AVAILABLE
+ ,"%"FF_REG_b
+ #endif
+ );
+@@ -289,7 +289,7 @@ void ff_hcscale_fast_mmxext(SwsContext *c, int16_t *dst1, int16_t *dst2,
+ #if ARCH_X86_64
+ DECLARE_ALIGNED(8, uint64_t, retsave);
+ #else
+-#if defined(PIC)
++#if !HAVE_EBX_AVAILABLE
+ DECLARE_ALIGNED(8, uint64_t, ebxsave);
+ #endif
+ #endif
+@@ -298,7 +298,7 @@ void ff_hcscale_fast_mmxext(SwsContext *c, int16_t *dst1, int16_t *dst2,
+ "mov -8(%%rsp), %%"FF_REG_a" \n\t"
+ "mov %%"FF_REG_a", %7 \n\t" // retsave
+ #else
+-#if defined(PIC)
++#if !HAVE_EBX_AVAILABLE
+ "mov %%"FF_REG_b", %7 \n\t" // ebxsave
+ #endif
+ #endif
+@@ -332,7 +332,7 @@ void ff_hcscale_fast_mmxext(SwsContext *c, int16_t *dst1, int16_t *dst2,
+ "mov %7, %%"FF_REG_a" \n\t"
+ "mov %%"FF_REG_a", -8(%%rsp) \n\t"
+ #else
+-#if defined(PIC)
++#if !HAVE_EBX_AVAILABLE
+ "mov %7, %%"FF_REG_b" \n\t"
+ #endif
+ #endif
+@@ -341,12 +341,12 @@ void ff_hcscale_fast_mmxext(SwsContext *c, int16_t *dst1, int16_t *dst2,
+ #if ARCH_X86_64
+ ,"m"(retsave)
+ #else
+-#if defined(PIC)
++#if !HAVE_EBX_AVAILABLE
+ ,"m" (ebxsave)
+ #endif
+ #endif
+ : "%"FF_REG_a, "%"FF_REG_c, "%"FF_REG_d, "%"FF_REG_S, "%"FF_REG_D
+-#if ARCH_X86_64 || !defined(PIC)
++#if ARCH_X86_64 || HAVE_EBX_AVAILABLE
+ ,"%"FF_REG_b
+ #endif
+ );
--
ffmpeg packaging
More information about the pkg-multimedia-commits
mailing list