diff options
author | Timo Teräs <timo.teras@iki.fi> | 2016-09-15 05:32:52 +0000 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2016-09-15 05:33:55 +0000 |
commit | fafe26db0feaa540b3e13a1e45253e4b6e1a8c50 (patch) | |
tree | 88af4483cec8d648cc4e06a45ae18c156a91a9f7 /main/libtheora/fix-mmx.patch | |
parent | ebee8376cadf635d062db76c49455ffcbd025c3e (diff) | |
download | aports-fafe26db0feaa540b3e13a1e45253e4b6e1a8c50.tar.bz2 aports-fafe26db0feaa540b3e13a1e45253e4b6e1a8c50.tar.xz |
main/libtheora: fix mmx/fpu usage
fixes #6132
Diffstat (limited to 'main/libtheora/fix-mmx.patch')
-rw-r--r-- | main/libtheora/fix-mmx.patch | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/main/libtheora/fix-mmx.patch b/main/libtheora/fix-mmx.patch new file mode 100644 index 0000000000..63fb9f76ec --- /dev/null +++ b/main/libtheora/fix-mmx.patch @@ -0,0 +1,31 @@ +http://bugs.alpinelinux.org/issues/6132 +https://trac.xiph.org/ticket/2287 + +patch rebased for libtheory 1.1.1 stable + +diff -ru libtheora-1.1.1.orig/lib/encode.c libtheora-1.1.1/lib/encode.c +--- libtheora-1.1.1.orig/lib/encode.c 2009-08-22 18:14:04.000000000 +0000 ++++ libtheora-1.1.1/lib/encode.c 2016-09-15 05:27:02.065785527 +0000 +@@ -864,6 +864,9 @@ + } + + static void oc_enc_frame_pack(oc_enc_ctx *_enc){ ++ /*musl libc malloc()/realloc() calls might use floating point, so make sure ++ we've cleared the MMX state for them.*/ ++ oc_restore_fpu(&_enc->state); + oggpackB_reset(&_enc->opb); + /*Only proceed if we have some coded blocks. + If there are no coded blocks, we can drop this frame simply by emitting a +diff -ru libtheora-1.1.1.orig/lib/decode.c libtheora-1.1.1/lib/decode.c +--- libtheora-1.1.1.orig/lib/decode.c 2009-09-26 20:55:21.000000000 +0000 ++++ libtheora-1.1.1/lib/decode.c 2016-09-15 05:29:45.912196850 +0000 +@@ -1181,6 +1181,9 @@ + + + static int oc_dec_postprocess_init(oc_dec_ctx *_dec){ ++ /*musl libc malloc()/realloc() calls might use floating point, so make sure ++ we've cleared the MMX state for them.*/ ++ oc_restore_fpu(&_dec->state); + /*pp_level 0: disabled; free any memory used and return*/ + if(_dec->pp_level<=OC_PP_LEVEL_DISABLED){ + if(_dec->dc_qis!=NULL){ |