Fri Feb 29 16:58:14 2008 UTC ()
Patches for upstream commit c77faaaa2fc48586902878ba33bd01286654dcb6:
- Add workaround for older versions of gas that don't have SSE3 support
Reported in PR pkg/38126.
(tnn)
diff -r1.10 -r1.11 pkgsrc/devel/liboil/distinfo
diff -r0 -r1.8 pkgsrc/devel/liboil/patches/patch-aa
diff -r0 -r1.1 pkgsrc/devel/liboil/patches/patch-af
--- pkgsrc/devel/liboil/distinfo 2008/02/28 19:28:24 1.10
+++ pkgsrc/devel/liboil/distinfo 2008/02/29 16:58:14 1.11
| @@ -1,9 +1,11 @@ | | | @@ -1,9 +1,11 @@ |
1 | $NetBSD: distinfo,v 1.10 2008/02/28 19:28:24 drochner Exp $ | | 1 | $NetBSD: distinfo,v 1.11 2008/02/29 16:58:14 tnn Exp $ |
2 | | | 2 | |
3 | SHA1 (liboil-0.3.13.tar.gz) = 1c08d92810a76afce7a2cba2b5f969a096ecf8a0 | | 3 | SHA1 (liboil-0.3.13.tar.gz) = 1c08d92810a76afce7a2cba2b5f969a096ecf8a0 |
4 | RMD160 (liboil-0.3.13.tar.gz) = aefcf9c7a100b5faff3449573bff6238db0bdb34 | | 4 | RMD160 (liboil-0.3.13.tar.gz) = aefcf9c7a100b5faff3449573bff6238db0bdb34 |
5 | Size (liboil-0.3.13.tar.gz) = 813995 bytes | | 5 | Size (liboil-0.3.13.tar.gz) = 813995 bytes |
| | | 6 | SHA1 (patch-aa) = d0adb03ef3a1eb5daf059cbfd53bba0ce8338fb1 |
6 | SHA1 (patch-ab) = 36a06f38f34f43ab6d181f4e9028f7b9adf5332b | | 7 | SHA1 (patch-ab) = 36a06f38f34f43ab6d181f4e9028f7b9adf5332b |
7 | SHA1 (patch-ac) = 8ccb2b0323b337902c384f4bdda856ca1cc2b023 | | 8 | SHA1 (patch-ac) = 8ccb2b0323b337902c384f4bdda856ca1cc2b023 |
8 | SHA1 (patch-ad) = 9d38917949c5f7b06229587f2338de7d1745147f | | 9 | SHA1 (patch-ad) = 9d38917949c5f7b06229587f2338de7d1745147f |
9 | SHA1 (patch-ae) = ca873368c23a5e3bd7475e9aeb64ffb74e7e2ea7 | | 10 | SHA1 (patch-ae) = ca873368c23a5e3bd7475e9aeb64ffb74e7e2ea7 |
| | | 11 | SHA1 (patch-af) = 9a6a42eb98f0c41d2a9fc5da91eb084864d3f16e |
$NetBSD: patch-aa,v 1.8 2008/02/29 16:58:14 tnn Exp $
--- configure.orig 2008-02-29 17:53:58.000000000 +0100
+++ configure
@@ -16369,6 +16369,79 @@ fi
+ { echo "$as_me:$LINENO: checking if compiler supports 'pmaddubsw %%mm0, %%mm0' asm instruction" >&5
+echo $ECHO_N "checking if compiler supports 'pmaddubsw %%mm0, %%mm0' asm instruction... $ECHO_C" >&6; }
+
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+#ifndef __GNUC__
+#error Not GCC
+#endif
+#ifdef __GNUC_MINOR__
+#if (__GNUC__ * 1000 + __GNUC_MINOR__) < 3004
+#error GCC before 3.4 has critical bugs compiling inline assembly
+#endif
+#endif
+__asm__ ("pmaddubsw %%mm0, %%mm0"::)
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ flag_ok=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ flag_ok=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+ if test "X$flag_ok" = Xyes ; then
+ HAVE_SSSE3_ASM=yes
+ true
+ else
+ HAVE_SSSE3_ASM=no
+ true
+ fi
+ { echo "$as_me:$LINENO: result: $flag_ok" >&5
+echo "${ECHO_T}$flag_ok" >&6; }
+
+if test "x$HAVE_SSSE3_ASM" = xyes ; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SSSE3_ASM 1
+_ACEOF
+
+fi
+
+
cat >>confdefs.h <<\_ACEOF
#define OIL_EXPORTS 1
_ACEOF
$NetBSD: patch-af,v 1.1 2008/02/29 16:58:14 tnn Exp $
--- liboil/i386_amd64/mas.c.orig 2008-02-22 20:59:17.000000000 +0100
+++ liboil/i386_amd64/mas.c
@@ -735,6 +735,7 @@ mas8_u8_sym_mmx_5 (uint8_t *d, const uin
}
OIL_DEFINE_IMPL_FULL (mas8_u8_sym_mmx_5, mas8_u8_sym_l15, OIL_IMPL_FLAG_MMX|OIL_IMPL_FLAG_MMXEXT);
+#ifdef HAVE_SSSE3_ASM
void
mas8_u8_sym_mmx_6 (uint8_t *d, const uint8_t *s1_np7, const int16_t *s2_8,
const int16_t *s3_2, int n)
@@ -798,6 +799,7 @@ mas8_u8_sym_mmx_6 (uint8_t *d, const uin
: "ecx");
}
OIL_DEFINE_IMPL_FULL (mas8_u8_sym_mmx_6, mas8_u8_sym_l15, OIL_IMPL_FLAG_MMX|OIL_IMPL_FLAG_MMXEXT|OIL_IMPL_FLAG_SSSE3);
+#endif
#ifdef ENABLE_BROKEN_IMPLS
/* This only works for the taps array: -1, 3, -7, 21, 21, -7, 3, -1 */