* 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>.
		
			
				
	
	
		
			51 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			51 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
 |