guix/gnu/packages/patches/libtgvoip-disable-sse2.patch
Brett Gilio 1792a70655
gnu: libtgvoip: Fix failing build on i686-linux.
* gnu/local.mk (libtgvoip): Add patches for libtgvoip-disable-sse2.patch
and libtgvoip-disable-webrtc.patch

* gnu/packages/patches/libtgvoip-disable-sse2.patch: New file.

* gnu/packages/patches/libtgvoip-disable-webrtc.patch: New file.

* gnu/packages/telephony.scm (libtgvoip): Fix building on i686-linux.
[source]: Reference patches for correcting failing build on i686-linux
architecture.

Reported-by: Diego Nicola Barbato <dnbarbato@posteo.de>
Fixes <bugs.gnu.org/38944>.
2020-01-05 19:31:07 -06:00

52 lines
1.7 KiB
Diff

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