OSDN Git Service

Update BUILD.gn configs to support ARM[64] builds.
authorStephen Lanham <slan@google.com>
Fri, 7 Sep 2018 18:59:54 +0000 (11:59 -0700)
committerStephen Lanham <slan@google.com>
Tue, 11 Sep 2018 18:44:22 +0000 (18:44 +0000)
Bug: b/114402930
Change-Id: Id7eedc6b01f40d24188d514755d5c89689b24abb
Reviewed-on: https://swiftshader-review.googlesource.com/20568
Tested-by: Stephen Lanham <slan@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
BUILD.gn
src/Common/BUILD.gn
src/Common/Thread.hpp
src/Main/BUILD.gn
src/OpenGL/libEGL/BUILD.gn
src/Reactor/BUILD.gn
src/Reactor/SubzeroReactor.cpp
src/Renderer/BUILD.gn
third_party/LLVM/BUILD.gn

index 7af9f6a..d218425 100644 (file)
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -88,7 +88,7 @@ config("swiftshader_config") {
         "-march=x86-64",
         "-mtune=generic",
       ]
-    } else {  # 32 bit version
+    } else if (target_cpu == "x86") {  # 32 bit version
       cflags += [
         "-m32",
         "-msse2",
index 6b23321..87b7005 100644 (file)
@@ -21,7 +21,7 @@ config("swiftshader_common_private_config") {
       "/wd4201",  # nameless struct/union
       "/wd5030",  # attribute is not recognized
     ]
-  } else {
+  } else if (target_cpu == "x86" || target_cpu == "x64") {
     cflags = [ "-msse2" ]
   }
 }
index 14ccfd5..b8280f1 100644 (file)
@@ -241,7 +241,7 @@ namespace sw
                        return InterlockedExchange64(target, value);
                #else
                        int ret;
-                       __asm__ __volatile__("lock; xchg8 %0,(%1)" : "=r" (ret) :"r" (target), "0" (value) : "memory" );
+                       __asm__ __volatile__("lock; xchg8 %x0,(%x1)" : "=r" (ret) :"r" (target), "0" (value) : "memory" );
                        return ret;
                #endif
        }
@@ -252,7 +252,7 @@ namespace sw
                        return InterlockedExchange((volatile long*)target, (long)value);
                #else
                        int ret;
-                       __asm__ __volatile__("lock; xchgl %0,(%1)" : "=r" (ret) :"r" (target), "0" (value) : "memory" );
+                       __asm__ __volatile__("lock; xchgl %x0,(%x1)" : "=r" (ret) :"r" (target), "0" (value) : "memory" );
                        return ret;
                #endif
        }
index ee76067..61054d4 100644 (file)
@@ -29,7 +29,7 @@ config("swiftshader_main_private_config") {
         "-Wno-sign-compare",
       ]
     }
-  } else {
+  } else if (target_cpu == "x86" || target_cpu == "x64") {
     cflags = [ "-msse2" ]
     defines =
         [ "NO_SANITIZE_FUNCTION=__attribute__((no_sanitize(\"function\")))" ]
index bbbd2eb..3184f9b 100644 (file)
@@ -28,7 +28,10 @@ config("swiftshader_libEGL_private_config") {
 
     defines += [ "EGLAPI=" ]
   } else {
-    cflags = [ "-Wno-sign-compare" ]
+    cflags = [
+      "-Wno-sign-compare",
+      "-Wno-unused-function",
+    ]
     if (!is_clang) {
       cflags += [ "-Wno-unused-but-set-variable" ]
     }
index 97446fc..1084f27 100644 (file)
@@ -152,7 +152,7 @@ config("swiftshader_reactor_private_config") {
       "/wd4201",  # nameless struct/union
       "/wd4245",  # conversion from int to unsigned int (llvm)
     ]
-  } else {
+  } else if (target_cpu == "x86" || target_cpu == "x64") {
     cflags = [
       "-Wno-unused-local-typedef",
       "-msse2",
index 3d49658..0103a25 100644 (file)
@@ -103,7 +103,7 @@ namespace
 
                static bool detectARM()
                {
-                       #if defined(__arm__)
+                       #if defined(__arm__) || defined(__aarch64__)
                                return true;
                        #elif defined(__i386__) || defined(__x86_64__)
                                return false;
@@ -372,6 +372,8 @@ namespace sw
                        assert(sizeof(void*) == 8 && elfHeader->e_machine == EM_X86_64);
                #elif defined(__arm__)
                        assert(sizeof(void*) == 4 && elfHeader->e_machine == EM_ARM);
+               #elif defined(__aarch64__)
+                       assert(sizeof(void*) == 8 && elfHeader->e_machine == EM_AARCH64);
                #else
                        #error "Unsupported platform"
                #endif
index 04ccd2e..6b95b11 100644 (file)
@@ -22,7 +22,7 @@ config("swiftshader_renderer_private_config") {
       "/wd4324",  # structure was padded due to alignment specifier
       "/wd5030",  # attribute is not recognized
     ]
-  } else {
+  } else if (target_cpu == "x86" || target_cpu == "x64") {
     cflags = [
       "-msse2",
       "-Wno-sign-compare",
index 9883df3..c09a83e 100644 (file)
@@ -54,7 +54,7 @@ config("swiftshader_llvm_private_config") {
     cflags += [ "-Wno-error" ]
   }
 
-  if (is_clang) {
+  if (is_clang && (target_cpu == "x86" || target_cpu == "x64")) {
     cflags += [
       "-msse2",
       "-Wno-header-hygiene",