Snap for 9550733 from eb0d26b5d9f59abe522bcd0e4ffe43187fab7ac9 to mainline-tzdata5-release

Change-Id: I114262ce9e7783ce4990e356faa262196f8a5dfd
diff --git a/Android.bp b/Android.bp
index cbc59cb..4189f30 100644
--- a/Android.bp
+++ b/Android.bp
@@ -53,6 +53,11 @@
     sanitize: {
         hwaddress: false, // code size b/112437884
     },
+    arch: {
+        riscv64: {
+            enabled: false,
+        },
+    },
 }
 
 // This module defines all of the defaults used to compiled llvm, except for
diff --git a/include/llvm/ADT/STLExtras.h b/include/llvm/ADT/STLExtras.h
index abd39da..a032efa 100644
--- a/include/llvm/ADT/STLExtras.h
+++ b/include/llvm/ADT/STLExtras.h
@@ -36,7 +36,11 @@
 //===----------------------------------------------------------------------===//
 
 template<class Ty>
-struct identity : public std::unary_function<Ty, Ty> {
+struct identity {
+  // Android: In upstream LLVM, identity used to inherit from
+  // std::unary_function<Ty, Ty>, so use Ty here instead of Ty&.
+  using argument_type = Ty;
+  using result_type = Ty;
   Ty &operator()(Ty &self) const {
     return self;
   }
@@ -46,14 +50,24 @@
 };
 
 template<class Ty>
-struct less_ptr : public std::binary_function<Ty, Ty, bool> {
+struct less_ptr {
+  // Android: In upstream LLVM, less_ptr used to inherit from
+  // std::binary_function<Ty, Ty, bool>, so use Ty here instead of const Ty*.
+  using first_argument_type = Ty;
+  using second_argument_type = Ty;
+  using result_type = bool;
   bool operator()(const Ty* left, const Ty* right) const {
     return *left < *right;
   }
 };
 
 template<class Ty>
-struct greater_ptr : public std::binary_function<Ty, Ty, bool> {
+struct greater_ptr {
+  // Android: In upstream LLVM, greater_ptr used to inherit from
+  // std::binary_function<Ty, Ty, bool>, so use Ty here instead of const Ty*.
+  using first_argument_type = Ty;
+  using second_argument_type = Ty;
+  using result_type = bool;
   bool operator()(const Ty* left, const Ty* right) const {
     return *right < *left;
   }
diff --git a/lib/Transforms/Vectorize/Android.bp b/lib/Transforms/Vectorize/Android.bp
index 5241822..6f0fc09 100644
--- a/lib/Transforms/Vectorize/Android.bp
+++ b/lib/Transforms/Vectorize/Android.bp
@@ -13,7 +13,7 @@
         "llvm-lib-defaults",
     ],
     srcs: ["*.cpp"],
-    clang_cflags: [
+    cflags: [
         "-Wno-user-defined-warnings",
     ],
 }
diff --git a/soong/llvm.go b/soong/llvm.go
index 6a38fb5..38e2f20 100644
--- a/soong/llvm.go
+++ b/soong/llvm.go
@@ -98,12 +98,16 @@
 				Linux_bionic_arm64 struct {
 					Enabled *bool
 				}
+				Linux_musl struct {
+					Enabled *bool
+				}
 			}
 		}
 		p := &props{}
 		p.Target.Darwin_arm64.Enabled = proptools.BoolPtr(true)
 		p.Target.Host.Enabled = proptools.BoolPtr(false)
 		p.Target.Linux_bionic_arm64.Enabled = proptools.BoolPtr(true)
+		p.Target.Linux_musl.Enabled = proptools.BoolPtr(true)
 		ctx.AppendProperties(p)
 	}
 }
diff --git a/utils/TableGen/Android.bp b/utils/TableGen/Android.bp
index 337e3e7..734ad8f 100644
--- a/utils/TableGen/Android.bp
+++ b/utils/TableGen/Android.bp
@@ -16,7 +16,7 @@
         "libLLVMSupport",
         "libLLVMTableGen",
     ],
-    clang_cflags: [
+    cflags: [
         "-Wno-user-defined-warnings",
     ],
     target: {