Package: release.debian.org
Severity: normal
Tags: jessie
User: release.debian....@packages.debian.org
Usertags: pu

I'd like to fix #783082 in jessie.

Unfortunately just passing the correct value to --cpu is not enough as this
causes the build to fail due gcc stumbling over some assembler code. So we also
need to disable some assembler code and use the generic C implementation
instead.

The changelog is:

libav (6:11.3-1+deb8u1) jessie; urgency=medium

  * Fix use of illegal instruction on i586. (Closes: #783082)
    - debian/confflags: Pass correct value to --cpu. Thanks to Bernhard
      Übelacker for the patch.
    - debian/patches:
      + 01-configure-disable-i686-for-i586.patch: Upstream patch to disable
        i686 instructions on i586.
      + 02-configure-disable-ebx-gcc-4.9.patch: Workaround build failure with
        gcc 4.9 and newer by disabling the use of ebx in handwritten assembler
        code. Thanks to Bernhard Übelacker for the initial patch.

 -- Sebastian Ramacher <sramac...@debian.org>  Tue, 05 May 2015 21:59:47 +0200

Full debdiff is attached.

Cheers
-- 
Sebastian Ramacher
diff -Nru libav-11.3/debian/changelog libav-11.3/debian/changelog
--- libav-11.3/debian/changelog 2015-03-13 23:27:29.000000000 +0100
+++ libav-11.3/debian/changelog 2015-05-05 22:05:20.000000000 +0200
@@ -1,3 +1,17 @@
+libav (6:11.3-1+deb8u1) jessie; urgency=medium
+
+  * Fix use of illegal instruction on i586. (Closes: #783082)
+    - debian/confflags: Pass correct value to --cpu. Thanks to Bernhard
+      Übelacker for the patch.
+    - debian/patches:
+      + 01-configure-disable-i686-for-i586.patch: Upstream patch to disable
+        i686 instructions on i586.
+      + 02-configure-disable-ebx-gcc-4.9.patch: Workaround build failure with
+        gcc 4.9 and newer by disabling the use of ebx in handwritten assembler
+        code. Thanks to Bernhard Übelacker for the initial patch.
+
+ -- Sebastian Ramacher <sramac...@debian.org>  Tue, 05 May 2015 21:59:47 +0200
+
 libav (6:11.3-1) unstable; urgency=medium
 
   * New upstream release fixing multiple security issues.
diff -Nru libav-11.3/debian/confflags libav-11.3/debian/confflags
--- libav-11.3/debian/confflags 2015-01-17 19:25:07.000000000 +0100
+++ libav-11.3/debian/confflags 2015-05-05 21:55:15.000000000 +0200
@@ -180,7 +180,7 @@
 shared_build_confflags += --disable-static
 # i386 shared builds must be optimized for 586, cf. #728928, #688384
 ifeq      ($(DEB_HOST_ARCH),i386)
-shared_build_confflags += --cpu=586
+shared_build_confflags += --cpu='i586'
 endif
 
 ## specific to arm architectures
diff -Nru libav-11.3/debian/gbp.conf libav-11.3/debian/gbp.conf
--- libav-11.3/debian/gbp.conf  2015-01-17 19:25:07.000000000 +0100
+++ libav-11.3/debian/gbp.conf  2015-05-05 21:55:01.000000000 +0200
@@ -1,6 +1,6 @@
 [DEFAULT]
-upstream-branch = upstream
-debian-branch = master
+upstream-branch = upstream.jessie
+debian-branch = jessie
 upstream-tag = upstream/%(version)s
 debian-tag = debian/%(version)s
 pristine-tar = True
diff -Nru libav-11.3/debian/patches/01-configure-disable-i686-for-i586.patch 
libav-11.3/debian/patches/01-configure-disable-i686-for-i586.patch
--- libav-11.3/debian/patches/01-configure-disable-i686-for-i586.patch  
1970-01-01 01:00:00.000000000 +0100
+++ libav-11.3/debian/patches/01-configure-disable-i686-for-i586.patch  
2015-05-05 21:55:38.000000000 +0200
@@ -0,0 +1,19 @@
+Description: configure: Disable i686 for i586 and lower CPUs
+Origin: upstream,
+ 
https://git.libav.org/?p=libav.git;a=commit;h=9030c58a780a02fb8256cb75cd39275eaad786d1
+Last-Update: 2015-05-05
+
+---
+ configure |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/configure
++++ b/configure
+@@ -3282,6 +3282,7 @@
+     case $cpu in
+         i[345]86|pentium)
+             cpuflags="-march=$cpu"
++            disable i686
+             disable mmx
+         ;;
+         # targets that do NOT support nopl and conditional mov (cmov)
diff -Nru libav-11.3/debian/patches/02-configure-disable-ebx-gcc-4.9.patch 
libav-11.3/debian/patches/02-configure-disable-ebx-gcc-4.9.patch
--- libav-11.3/debian/patches/02-configure-disable-ebx-gcc-4.9.patch    
1970-01-01 01:00:00.000000000 +0100
+++ libav-11.3/debian/patches/02-configure-disable-ebx-gcc-4.9.patch    
2015-05-05 21:55:49.000000000 +0200
@@ -0,0 +1,25 @@
+Description: Disable ebx_available on i586
+Author: Sebastian Ramacher <sramac...@debian.org>,
+ Bernhard Übelacker <bernha...@vr-web.de>
+Bug: https://bugzilla.libav.org/show_bug.cgi?id=850
+Bug-Debian: https://bugs.debian.org/783082
+Last-Update: 2015-05-05
+
+--- a/configure
++++ b/configure
+@@ -3941,6 +3941,15 @@
+     check_inline_asm ebx_available '""::"b"(0)' &&
+         check_inline_asm ebx_available '"":::"%ebx"'
+ 
++    # workaround for debian#783082 / libav#850
++    if enabled gcc; then
++      case $($cc -dumpversion) in
++        4.9.*|5.*)
++          disable ebx_available
++        ;;
++      esac
++    fi
++
+     # check whether xmm clobbers are supported
+     check_inline_asm xmm_clobbers '"":::"%xmm0"'
+ 
diff -Nru libav-11.3/debian/patches/series libav-11.3/debian/patches/series
--- libav-11.3/debian/patches/series    2015-01-17 19:25:07.000000000 +0100
+++ libav-11.3/debian/patches/series    2015-05-05 21:55:49.000000000 +0200
@@ -1 +1,3 @@
+01-configure-disable-i686-for-i586.patch
+02-configure-disable-ebx-gcc-4.9.patch
 03-disable-configuration-warnings.patch

Attachment: signature.asc
Description: Digital signature

Reply via email to