Upgrade xz-embedded to 1b6defd544914bfb4065e343296e5db64ef400e6 am: e6dca0f520 am: 360051f068

Original change: https://android-review.googlesource.com/c/platform/external/xz-embedded/+/2976973

Change-Id: I531fa8d8d66f053727d1373a28c8187a6488392e
Signed-off-by: Automerger Merge Worker <[email protected]>
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..de2f316
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,2 @@
+.gitignore export-ignore
+.gitattributes export-ignore
diff --git a/METADATA b/METADATA
index 46bfe82..2c96734 100644
--- a/METADATA
+++ b/METADATA
@@ -1,19 +1,19 @@
 # This project was upgraded with external_updater.
-# Usage: tools/external_updater/updater.sh update xz-embedded
-# For more info, check https://cs.android.com/android/platform/superproject/+/master:tools/external_updater/README.md
+# Usage: tools/external_updater/updater.sh update external/xz-embedded
+# For more info, check https://cs.android.com/android/platform/superproject/+/main:tools/external_updater/README.md
 
 name: "xz-embedded"
 description: "XZ Embedded"
 third_party {
-  url {
-    type: GIT
-    value: "https://git.tukaani.org/xz-embedded.git"
-  }
-  version: "d89ad8130128d71c773f5e50e356562a506f843e"
   license_type: UNENCUMBERED
   last_upgrade_date {
-    year: 2023
-    month: 6
-    day: 30
+    year: 2024
+    month: 2
+    day: 26
+  }
+  identifier {
+    type: "Git"
+    value: "https://git.tukaani.org/xz-embedded.git"
+    version: "1b6defd544914bfb4065e343296e5db64ef400e6"
   }
 }
diff --git a/README b/README
index 32c4625..8c7eada 100644
--- a/README
+++ b/README
@@ -90,7 +90,7 @@
     Regular .xz files can be concatenated as is and the xz command line
     tool will decompress all streams from a concatenated file (a few
     other popular formats and tools support this too). This kind of .xz
-    files aren't as uncommon as one might think because pxz, an early
+    files are more common than one might think because pxz, an early
     threaded XZ compressor, created this kind of .xz files.
 
     The xz_dec_run() function will stop after decompressing one stream.
@@ -138,7 +138,7 @@
 
 BCJ filter support
 
-    If you want support for one or more BCJ filters, you need to copy also
+    If you want support for one or more BCJ filters, you need to copy
     linux/lib/xz/xz_dec_bcj.c into your application, and use appropriate
     #defines in xz_config.h or in compiler flags. You don't need these
     #defines in the code that just uses XZ Embedded via xz.h, but having
@@ -148,28 +148,24 @@
         XZ_DEC_X86          x86-32 or x86-64    Little endian only
         XZ_DEC_POWERPC      PowerPC             Big endian only
         XZ_DEC_IA64         Itanium (IA-64)     Big or little endian
-        XZ_DEC_ARM          ARM                 Little endian only
-        XZ_DEC_ARMTHUMB     ARM-Thumb           Little endian only
+        XZ_DEC_ARM          ARM                 Little endian instructions
+        XZ_DEC_ARMTHUMB     ARM-Thumb           Big or little endian
+        XZ_DEC_ARM64        ARM64               Big or little endian
         XZ_DEC_SPARC        SPARC               Big or little endian
 
     While some architectures are (partially) bi-endian, the endianness
     setting doesn't change the endianness of the instructions on all
-    architectures. That's why Itanium and SPARC filters work for both big
-    and little endian executables (Itanium has little endian instructions
-    and SPARC has big endian instructions).
-
-    There currently is no filter for little endian PowerPC or big endian
-    ARM or ARM-Thumb. Implementing filters for them can be considered if
-    there is a need for such filters in real-world applications.
+    architectures. That's why many filters work for both big and little
+    endian executables (Itanium and ARM based architectures have little
+    endian instructions and SPARC has big endian instructions).
 
 Notes about shared libraries
 
-    If you are including XZ Embedded into a shared library, you very
-    probably should rename the xz_* functions to prevent symbol
-    conflicts in case your library is linked against some other library
-    or application that also has XZ Embedded in it (which may even be
-    a different version of XZ Embedded). TODO: Provide an easy way
-    to do this.
+    If you are including XZ Embedded into a shared library, you should
+    rename the xz_* functions to prevent symbol conflicts in case your
+    library is linked against some other library or application that
+    also has XZ Embedded in it (which may even be a different version
+    of XZ Embedded).
 
     Please don't create a shared library of XZ Embedded itself unless
     it is fine to rebuild everything depending on that shared library
diff --git a/linux/Documentation/xz.txt b/linux/Documentation/xz.txt
index 1e1a915..b1a743e 100644
--- a/linux/Documentation/xz.txt
+++ b/linux/Documentation/xz.txt
@@ -13,13 +13,13 @@
     The XZ decompressor in Linux is called XZ Embedded. It supports
     the LZMA2 filter and optionally also BCJ filters. CRC32 is supported
     for integrity checking. The home page of XZ Embedded is at
-    <https://tukaani.org/xz/embedded.html>, where you can find the
+    <https://xz.tukaani.org/xz-embedded/>, where you can find the
     latest version and also information about using the code outside
     the Linux kernel.
 
     For userspace, XZ Utils provide a zlib-like compression library
     and a gzip-like command line tool. XZ Utils can be downloaded from
-    <https://tukaani.org/xz/>.
+    <https://xz.tukaani.org/xz-utils/>.
 
 XZ related components in the kernel
 
@@ -107,13 +107,13 @@
 Reporting bugs
 
     Before reporting a bug, please check that it's not fixed already
-    at upstream. See <https://tukaani.org/xz/embedded.html> to get the
+    at upstream. See <https://xz.tukaani.org/xz-embedded/> to get the
     latest code.
 
-    Report bugs to <[email protected]> or visit #tukaani on
-    Freenode and talk to Larhzu. I don't actively read LKML or other
-    kernel-related mailing lists, so if there's something I should know,
-    you should email to me personally or use IRC.
+    Report bugs to <[email protected]> or visit #tukaani on
+    Libera Chat and talk to the maintainers. We don't actively read LKML or
+    other kernel-related mailing lists, so if there's something we should
+    know, please use email or IRC.
 
     Don't bother Igor Pavlov with questions about the XZ implementation
     in the kernel or about XZ Utils. While these two implementations
diff --git a/linux/lib/xz/xz_private.h b/linux/lib/xz/xz_private.h
index e3bba7b..3acc208 100644
--- a/linux/lib/xz/xz_private.h
+++ b/linux/lib/xz/xz_private.h
@@ -101,9 +101,9 @@
  */
 #ifndef XZ_DEC_BCJ
 #	if defined(XZ_DEC_X86) || defined(XZ_DEC_POWERPC) \
-			|| defined(XZ_DEC_IA64) || defined(XZ_DEC_ARM) \
+			|| defined(XZ_DEC_IA64) \
 			|| defined(XZ_DEC_ARM) || defined(XZ_DEC_ARMTHUMB) \
-			|| defined(XZ_DEC_SPARC)
+			|| defined(XZ_DEC_SPARC) || defined(XZ_DEC_ARM64)
 #		define XZ_DEC_BCJ
 #	endif
 #endif
diff --git a/linux/lib/xz/xz_stream.h b/linux/lib/xz/xz_stream.h
index 430bb3a..e5d3188 100644
--- a/linux/lib/xz/xz_stream.h
+++ b/linux/lib/xz/xz_stream.h
@@ -19,7 +19,7 @@
 
 /*
  * See the .xz file format specification at
- * https://tukaani.org/xz/xz-file-format.txt
+ * https://xz.tukaani.org/format/xz-file-format.txt
  * to understand the container format.
  */