Add libyarn static library to Android build

- Had to rename .c of .c/.s pair to avoid Android's build system
  producing name clashes
- Rename .s to .S to get assembler-with-cpp behavior

Bug: b/139010488
Change-Id: Ib5ee9355e60fe52b1caedfc6ec1b456296d519f5
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/35188
Tested-by: Ben Clayton <bclayton@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 57f624d..80371e7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1768,7 +1768,7 @@
     )
 
     if (NOT MSVC)
-        file(GLOB YARN_ASSEMBLY_LIST ${YARN_DIR}/*.s)
+        file(GLOB YARN_ASSEMBLY_LIST ${YARN_DIR}/*.S)
         list(APPEND YARN_FULL_LIST ${YARN_ASSEMBLY_LIST})
     endif(NOT MSVC)
 
diff --git a/src/Android.bp b/src/Android.bp
index 0d6f584..73b7463 100644
--- a/src/Android.bp
+++ b/src/Android.bp
@@ -579,6 +579,34 @@
     static_libs: [ "libswiftshader_compiler_debug" ],
 }
 
+// Yarn, fibers + scheduler library
+
+cc_library_static {
+    name: "libyarn",
+    vendor: true,
+
+    srcs: [
+        "Yarn/Debug.cpp",
+        "Yarn/Scheduler.cpp",
+        "Yarn/Thread.cpp",
+        "Yarn/Trace.cpp",
+    ],
+
+    arch: {
+        arm: { srcs: ["Yarn/OSFiber_arm.c", "Yarn/OSFiber_asm_arm.S"], },
+        arm64: { srcs: ["Yarn/OSFiber_aarch64.c", "Yarn/OSFiber_asm_aarch64.S"], },
+        x86: { srcs: ["Yarn/OSFiber_x86.c", "Yarn/OSFiber_asm_x86.S"], },
+        x86_64: { srcs: ["Yarn/OSFiber_x64.c", "Yarn/OSFiber_asm_x64.S"], },
+    },
+
+    cflags: [
+        "-Wno-unused-parameter",
+    ],
+
+    asflags: [
+        "-DBUILD_ASM",
+    ],
+}
 
 
 // Vulkan
@@ -673,6 +701,7 @@
     static_libs: [
         "libswiftshadervk_llvm_debug",
         "libLLVM7_swiftshader",
+        "libyarn",
     ],
 
     host_supported: false,
@@ -689,6 +718,7 @@
     static_libs: [
         "libswiftshadervk_llvm_debug",
         "libLLVM7_swiftshader",
+        "libyarn",
     ],
 
     host_supported: false,
diff --git a/src/Yarn/OSFiber_asm_aarch64.c b/src/Yarn/OSFiber_aarch64.c
similarity index 100%
rename from src/Yarn/OSFiber_asm_aarch64.c
rename to src/Yarn/OSFiber_aarch64.c
diff --git a/src/Yarn/OSFiber_asm_arm.c b/src/Yarn/OSFiber_arm.c
similarity index 100%
rename from src/Yarn/OSFiber_asm_arm.c
rename to src/Yarn/OSFiber_arm.c
diff --git a/src/Yarn/OSFiber_asm_aarch64.s b/src/Yarn/OSFiber_asm_aarch64.S
similarity index 100%
rename from src/Yarn/OSFiber_asm_aarch64.s
rename to src/Yarn/OSFiber_asm_aarch64.S
diff --git a/src/Yarn/OSFiber_asm_arm.s b/src/Yarn/OSFiber_asm_arm.S
similarity index 100%
rename from src/Yarn/OSFiber_asm_arm.s
rename to src/Yarn/OSFiber_asm_arm.S
diff --git a/src/Yarn/OSFiber_asm_x64.s b/src/Yarn/OSFiber_asm_x64.S
similarity index 100%
rename from src/Yarn/OSFiber_asm_x64.s
rename to src/Yarn/OSFiber_asm_x64.S
diff --git a/src/Yarn/OSFiber_asm_x86.s b/src/Yarn/OSFiber_asm_x86.S
similarity index 100%
rename from src/Yarn/OSFiber_asm_x86.s
rename to src/Yarn/OSFiber_asm_x86.S
diff --git a/src/Yarn/OSFiber_asm_x64.c b/src/Yarn/OSFiber_x64.c
similarity index 100%
rename from src/Yarn/OSFiber_asm_x64.c
rename to src/Yarn/OSFiber_x64.c
diff --git a/src/Yarn/OSFiber_asm_x86.c b/src/Yarn/OSFiber_x86.c
similarity index 100%
rename from src/Yarn/OSFiber_asm_x86.c
rename to src/Yarn/OSFiber_x86.c