fix building for and on ARM add arm performance improvement patches from archlinux OBS-URL: https://build.opensuse.org/request/show/246969 OBS-URL: https://build.opensuse.org/package/show/network:chromium/chromium?expand=0&rev=672
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
--- third_party/webrtc/system_wrappers/source/cpu_features.cc.orig	2014-01-15 18:38:50.331954791 -0700
 | 
						|
+++ third_party/webrtc/system_wrappers/source/cpu_features.cc	2014-01-15 18:38:37.902004379 -0700
 | 
						|
@@ -18,6 +18,47 @@
 | 
						|
 
 | 
						|
 #include "webrtc/typedefs.h"
 | 
						|
 
 | 
						|
+#include <elf.h>
 | 
						|
+#ifdef __arm__
 | 
						|
+#include <fcntl.h>
 | 
						|
+#include <unistd.h>
 | 
						|
+#include <linux/auxvec.h>
 | 
						|
+#include <asm/hwcap.h>
 | 
						|
+#endif
 | 
						|
+
 | 
						|
+#ifdef __arm__
 | 
						|
+uint64_t WebRtc_GetCPUFeaturesARM() {
 | 
						|
+	static bool detected = false;
 | 
						|
+	static uint64_t have_neon = 0;
 | 
						|
+
 | 
						|
+	int fd;
 | 
						|
+	Elf32_auxv_t auxv;
 | 
						|
+	unsigned int hwcaps;
 | 
						|
+
 | 
						|
+	if (!detected) {
 | 
						|
+		int fd;
 | 
						|
+		Elf32_auxv_t auxv;
 | 
						|
+		unsigned int hwcaps;
 | 
						|
+
 | 
						|
+		fd = open("/proc/self/auxv", O_RDONLY);
 | 
						|
+		if (fd >= 0) {
 | 
						|
+			while (read(fd, &auxv, sizeof(Elf32_auxv_t)) == sizeof(Elf32_auxv_t)) {
 | 
						|
+				if (auxv.a_type == AT_HWCAP) {
 | 
						|
+					have_neon = (auxv.a_un.a_val & HWCAP_NEON) ? kCPUFeatureNEON : 0;
 | 
						|
+					break;
 | 
						|
+				}
 | 
						|
+			}
 | 
						|
+			close (fd);
 | 
						|
+		} else {
 | 
						|
+			have_neon = 0;
 | 
						|
+		}
 | 
						|
+		detected = true;
 | 
						|
+	}
 | 
						|
+
 | 
						|
+	return 0 | have_neon; // others here as we need them
 | 
						|
+}
 | 
						|
+#endif
 | 
						|
+
 | 
						|
 // No CPU feature is available => straight C path.
 | 
						|
 int GetCPUInfoNoASM(CPUFeature feature) {
 | 
						|
   (void)feature;
 |