aboutsummaryrefslogtreecommitdiff
dnl -*- Autoconf -*- fragme
Copied from Debian.

Description: Disable SSE2 code on i386
 This patch is not complete. A high-graded solution may use automatic switching
 between SSE2 and C++ implementations based on the results of runtime checks.
 The webrtc code already provides for one of them inside its GetCPUInfo function.
Bug-Debian: https://bugs.debian.org/892823
Author: Nicholas Guriev <guriev-ns@ya.ru>
Last-Update: Tue, 29 Jan 2019 23:26:38 +0300

--- a/libtgvoip.gyp
+++ b/libtgvoip.gyp
@@ -871,11 +871,7 @@
                 'WEBRTC_POSIX',
               ],
               'conditions': [
-                [ '"<!(uname -m)" == "i686"', {
-                  'cflags_cc': [
-                    '-msse2',
-                  ],
-                }], ['"<!(uname -s)" == "Linux"', {
+                [ '"<!(uname -s)" == "Linux"', {
                   'defines': [
                     'WEBRTC_LINUX',
                   ],
--- a/webrtc_dsp/rtc_base/system/arch.h
+++ b/webrtc_dsp/rtc_base/system/arch.h
@@ -28,7 +28,10 @@
 #define WEBRTC_ARCH_64_BITS
 #define WEBRTC_ARCH_LITTLE_ENDIAN
 #elif defined(_M_IX86) || defined(__i386__)
+#if defined(__SSE2__)
+// This macro is mostly used to detect SSE2 extension.
 #define WEBRTC_ARCH_X86_FAMILY
+#endif
 #define WEBRTC_ARCH_X86
 #define WEBRTC_ARCH_32_BITS
 #define WEBRTC_ARCH_LITTLE_ENDIAN
--- a/webrtc_dsp/typedefs.h
+++ b/webrtc_dsp/typedefs.h
@@ -28,7 +28,10 @@
 #define WEBRTC_ARCH_64_BITS
 #define WEBRTC_ARCH_LITTLE_ENDIAN
 #elif defined(_M_IX86) || defined(__i386__)
+#if defined(__SSE2__)
+// This macro is mostly used to detect SSE2 extension.
 #define WEBRTC_ARCH_X86_FAMILY
+#endif
 #define WEBRTC_ARCH_X86
 #define WEBRTC_ARCH_32_BITS
 #define WEBRTC_ARCH_LITTLE_ENDIAN
S="$save_LDFLAGS" LIBS="$save_LIBS" dnl Chroot support. AC_CHECK_FUNCS([chroot unshare]) AC_CHECK_HEADERS([sched.h sys/param.h sys/mount.h sys/syscall.h]) if test "x$ac_cv_func_chroot" != "xyes"; then AC_MSG_ERROR(['chroot' function missing, bailing out]) fi dnl lutimes and lchown: used when canonicalizing store items. dnl posix_fallocate: used when extracting archives. dnl vfork: to speed up spawning of helper programs. dnl `--> now disabled because of unpredictable behavior: dnl see <http://lists.gnu.org/archive/html/guix-devel/2014-05/msg00036.html> dnl and Nix commit f794465c (Nov. 2012). dnl sched_setaffinity: to improve RPC locality. dnl statvfs: to detect disk-full conditions. dnl strsignal: for error reporting. dnl statx: fine-grain 'stat' call, new in glibc 2.28. AC_CHECK_FUNCS([lutimes lchown posix_fallocate sched_setaffinity \ statvfs nanosleep strsignal statx]) dnl Check for <locale>. AC_LANG_PUSH(C++) AC_CHECK_HEADERS([locale]) AC_LANG_POP(C++) dnl Check whether we have the `personality' syscall, which allows us dnl to do i686-linux builds on x86_64-linux machines. AC_CHECK_HEADERS([sys/personality.h]) dnl Determine the appropriate default list of substitute URLs (GnuTLS dnl is required so we can default to 'https'.) GUIX_SUBSTITUTE_URLS="https://bordeaux.guix.gnu.org https://ci.guix.gnu.org" AC_MSG_CHECKING([for default substitute URLs]) AC_MSG_RESULT([$GUIX_SUBSTITUTE_URLS]) AC_SUBST([GUIX_SUBSTITUTE_URLS]) AC_DEFINE_UNQUOTED([GUIX_SUBSTITUTE_URLS], ["$GUIX_SUBSTITUTE_URLS"], [Default list of substitute URLs used by 'guix-daemon'.]) dnl Check for Guile-SSH, which is required by 'guix offload'. GUIX_CHECK_GUILE_SSH case "x$guix_cv_have_recent_guile_ssh" in xyes) guix_build_daemon_offload="yes" AC_DEFINE([HAVE_DAEMON_OFFLOAD_HOOK], [1], [Define if the daemon's 'offload' build hook is being built (requires Guile-SSH).]) ;; *) guix_build_daemon_offload="no" ;; esac dnl Temporary directory used to store the daemon's data. GUIX_TEST_ROOT_DIRECTORY GUIX_TEST_ROOT="$ac_cv_guix_test_root" AC_SUBST([GUIX_TEST_ROOT]) GUIX_CHECK_LOCALSTATEDIR fi AM_CONDITIONAL([HAVE_LIBBZ2], [test "x$HAVE_LIBBZ2" = "xyes"]) AM_CONDITIONAL([BUILD_DAEMON], [test "x$guix_build_daemon" = "xyes"]) AM_CONDITIONAL([BUILD_DAEMON_OFFLOAD], \ [test "x$guix_build_daemon" = "xyes" \ && test "x$guix_build_daemon_offload" = "xyes"])