Переглянути джерело

Merge pull request #18802 from bruvzg/fix_x11_arm_build

Fix X11 build on ARM Linux
Rémi Verschelde 7 роки тому
батько
коміт
9af5cab32e
2 змінених файлів з 3 додано та 4 видалено
  1. 1 1
      drivers/unix/os_unix.cpp
  2. 2 3
      modules/webm/libvpx/SCsub

+ 1 - 1
drivers/unix/os_unix.cpp

@@ -244,7 +244,7 @@ OS::TimeZoneInfo OS_Unix::get_time_zone_info() const {
 
 
 void OS_Unix::delay_usec(uint32_t p_usec) const {
 void OS_Unix::delay_usec(uint32_t p_usec) const {
 
 
-	struct timespec rem = { p_usec / 1000000, (p_usec % 1000000) * 1000 };
+	struct timespec rem = { static_cast<time_t>(p_usec / 1000000), static_cast<long>((p_usec % 1000000) * 1000) };
 	while (nanosleep(&rem, &rem) == EINTR) {
 	while (nanosleep(&rem, &rem) == EINTR) {
 	}
 	}
 }
 }

+ 2 - 3
modules/webm/libvpx/SCsub

@@ -263,7 +263,7 @@ if env["platform"] == 'uwp':
         webm_cpu_x86 = True
         webm_cpu_x86 = True
 else:
 else:
     import platform
     import platform
-    is_x11_or_server_arm = ((env["platform"] == 'x11' or env["platform"] == 'server') and platform.machine().startswith('arm'))
+    is_x11_or_server_arm = ((env["platform"] == 'x11' or env["platform"] == 'server') and (platform.machine().startswith('arm') or platform.machine().startswith('aarch')))
     is_ios_x86 = (env["platform"] == 'iphone' and env["ios_sim"])
     is_ios_x86 = (env["platform"] == 'iphone' and env["ios_sim"])
     is_android_x86 = (env["platform"] == 'android' and env["android_arch"] == 'x86')
     is_android_x86 = (env["platform"] == 'android' and env["android_arch"] == 'x86')
     if is_android_x86:
     if is_android_x86:
@@ -337,7 +337,6 @@ if webm_cpu_arm:
 if webm_simd_optimizations == False:
 if webm_simd_optimizations == False:
     print("WebM SIMD optimizations are disabled. Check if your CPU architecture, CPU bits or platform are supported!")
     print("WebM SIMD optimizations are disabled. Check if your CPU architecture, CPU bits or platform are supported!")
 
 
-
 env_libvpx.add_source_files(env.modules_sources, libvpx_sources)
 env_libvpx.add_source_files(env.modules_sources, libvpx_sources)
 if webm_cpu_x86:
 if webm_cpu_x86:
     is_clang_or_gcc = ('gcc' in env["CC"]) or ('clang' in env["CC"]) or ("OSXCROSS_ROOT" in os.environ)
     is_clang_or_gcc = ('gcc' in env["CC"]) or ('clang' in env["CC"]) or ("OSXCROSS_ROOT" in os.environ)
@@ -379,5 +378,5 @@ elif webm_cpu_arm:
         env_libvpx.add_source_files(env.modules_sources, libvpx_sources_arm_neon_armasm_ms)
         env_libvpx.add_source_files(env.modules_sources, libvpx_sources_arm_neon_armasm_ms)
     elif env["platform"] == 'iphone':
     elif env["platform"] == 'iphone':
         env_libvpx.add_source_files(env.modules_sources, libvpx_sources_arm_neon_gas_apple)
         env_libvpx.add_source_files(env.modules_sources, libvpx_sources_arm_neon_gas_apple)
-    elif not env["android_arch"] == 'arm64v8':
+    elif (is_x11_or_server_arm and cpu_bits == '32') or (env["platform"] == 'android' and not env["android_arch"] == 'arm64v8'):
         env_libvpx.add_source_files(env.modules_sources, libvpx_sources_arm_neon_gas)
         env_libvpx.add_source_files(env.modules_sources, libvpx_sources_arm_neon_gas)