mirror of
				https://gitlab.alpinelinux.org/alpine/aports.git
				synced 2025-11-04 10:21:36 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			834 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			834 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
upstream status: https://github.com/dart-lang/sdk/issues/51535
 | 
						|
diff --git a/third_party/zlib/BUILD.gn b/third_party/zlib/BUILD.gn
 | 
						|
index 3a71693..ce9fb5c 100644
 | 
						|
--- a/third_party/zlib/BUILD.gn
 | 
						|
+++ b/third_party/zlib/BUILD.gn
 | 
						|
@@ -1,8 +1,9 @@
 | 
						|
-# Copyright (c) 2013 The Chromium Authors. All rights reserved.
 | 
						|
+# Copyright 2013 The Chromium Authors
 | 
						|
 # Use of this source code is governed by a BSD-style license that can be
 | 
						|
 # found in the LICENSE file.
 | 
						|
 
 | 
						|
 import("//build/config/compiler/compiler.gni")
 | 
						|
+import("system.gni")
 | 
						|
 
 | 
						|
 if (build_with_chromium) {
 | 
						|
   import("//testing/test.gni")
 | 
						|
@@ -12,417 +13,471 @@ if (current_cpu == "arm" || current_cpu == "arm64") {
 | 
						|
   import("//build/config/arm.gni")
 | 
						|
 }
 | 
						|
 
 | 
						|
-config("zlib_config") {
 | 
						|
-  include_dirs = [ "." ]
 | 
						|
+if (use_system_zlib) {
 | 
						|
+  import("//build/shim_headers.gni")
 | 
						|
 }
 | 
						|
 
 | 
						|
-config("zlib_internal_config") {
 | 
						|
-  defines = [ "ZLIB_IMPLEMENTATION" ]
 | 
						|
-
 | 
						|
-  if (!is_debug) {
 | 
						|
-    # Build code using -O3, see: crbug.com/1084371.
 | 
						|
-    configs = [ "//build/config/compiler:optimize_speed" ]
 | 
						|
-  }
 | 
						|
-  if (is_debug || use_libfuzzer) {
 | 
						|
-    # Enable zlib's asserts in debug and fuzzer builds.
 | 
						|
-    defines += [ "ZLIB_DEBUG" ]
 | 
						|
-  }
 | 
						|
-
 | 
						|
-  if (is_win && !is_clang) {
 | 
						|
-    # V8 supports building with msvc, these silence some warnings that
 | 
						|
-    # causes compilation to fail (https://crbug.com/1255096).
 | 
						|
-    cflags = [
 | 
						|
-      "/wd4244",
 | 
						|
-      "/wd4100",
 | 
						|
-      "/wd4702",
 | 
						|
-      "/wd4127",
 | 
						|
-    ]
 | 
						|
-  }
 | 
						|
-}
 | 
						|
-
 | 
						|
-source_set("zlib_common_headers") {
 | 
						|
-  sources = [
 | 
						|
-    "chromeconf.h",
 | 
						|
-    "deflate.h",
 | 
						|
-    "inffast.h",
 | 
						|
-    "inffixed.h",
 | 
						|
-    "inflate.h",
 | 
						|
-    "inftrees.h",
 | 
						|
-    "zconf.h",
 | 
						|
-    "zlib.h",
 | 
						|
-    "zutil.h",
 | 
						|
-  ]
 | 
						|
+config("system_zlib") {
 | 
						|
+  defines = [ "USE_SYSTEM_ZLIB=1" ]
 | 
						|
 }
 | 
						|
 
 | 
						|
-use_arm_neon_optimizations = false
 | 
						|
-if ((current_cpu == "arm" || current_cpu == "arm64") &&
 | 
						|
-    !(is_win && !is_clang)) {
 | 
						|
-  # TODO(richard.townsend@arm.com): Optimizations temporarily disabled for
 | 
						|
-  # Windows on Arm MSVC builds, see http://crbug.com/v8/10012.
 | 
						|
-  if (arm_use_neon) {
 | 
						|
-    use_arm_neon_optimizations = true
 | 
						|
+config("zlib_config") {
 | 
						|
+  if (use_system_zlib) {
 | 
						|
+    configs = [ ":system_zlib" ]
 | 
						|
+  } else {
 | 
						|
+    include_dirs = [ "." ]
 | 
						|
   }
 | 
						|
 }
 | 
						|
 
 | 
						|
-use_x86_x64_optimizations =
 | 
						|
-    (current_cpu == "x86" || current_cpu == "x64") && !is_ios
 | 
						|
+if (!use_system_zlib) {
 | 
						|
+  config("zlib_internal_config") {
 | 
						|
+    defines = [ "ZLIB_IMPLEMENTATION" ]
 | 
						|
 
 | 
						|
-config("zlib_adler32_simd_config") {
 | 
						|
-  if (use_x86_x64_optimizations) {
 | 
						|
-    defines = [ "ADLER32_SIMD_SSSE3" ]
 | 
						|
-    if (is_win) {
 | 
						|
-      defines += [ "X86_WINDOWS" ]
 | 
						|
-    } else {
 | 
						|
-      defines += [ "X86_NOT_WINDOWS" ]
 | 
						|
+    if (!is_debug) {
 | 
						|
+      # Build code using -O3, see: crbug.com/1084371.
 | 
						|
+      configs = [ "//build/config/compiler:optimize_speed" ]
 | 
						|
+    }
 | 
						|
+    if (is_debug || use_libfuzzer) {
 | 
						|
+      # Enable zlib's asserts in debug and fuzzer builds.
 | 
						|
+      defines += [ "ZLIB_DEBUG" ]
 | 
						|
     }
 | 
						|
-  }
 | 
						|
 
 | 
						|
-  if (use_arm_neon_optimizations) {
 | 
						|
-    defines = [ "ADLER32_SIMD_NEON" ]
 | 
						|
+    if (is_win && !is_clang) {
 | 
						|
+      # V8 supports building with msvc, these silence some warnings that
 | 
						|
+      # causes compilation to fail (https://crbug.com/1255096).
 | 
						|
+      cflags = [
 | 
						|
+        "/wd4244",
 | 
						|
+        "/wd4100",
 | 
						|
+        "/wd4702",
 | 
						|
+        "/wd4127",
 | 
						|
+      ]
 | 
						|
+    }
 | 
						|
   }
 | 
						|
-}
 | 
						|
 
 | 
						|
-source_set("zlib_adler32_simd") {
 | 
						|
-  visibility = [ ":*" ]
 | 
						|
+  source_set("zlib_common_headers") {
 | 
						|
+    visibility = [ ":*" ]
 | 
						|
 
 | 
						|
-  if (use_x86_x64_optimizations) {
 | 
						|
     sources = [
 | 
						|
-      "adler32_simd.c",
 | 
						|
-      "adler32_simd.h",
 | 
						|
+      "chromeconf.h",
 | 
						|
+      "deflate.h",
 | 
						|
+      "inffast.h",
 | 
						|
+      "inffixed.h",
 | 
						|
+      "inflate.h",
 | 
						|
+      "inftrees.h",
 | 
						|
+      "zconf.h",
 | 
						|
+      "zlib.h",
 | 
						|
+      "zutil.h",
 | 
						|
     ]
 | 
						|
-
 | 
						|
-    if (!is_win || is_clang) {
 | 
						|
-      cflags = [ "-mssse3" ]
 | 
						|
-    }
 | 
						|
   }
 | 
						|
 
 | 
						|
-  if (use_arm_neon_optimizations) {
 | 
						|
-    sources = [
 | 
						|
-      "adler32_simd.c",
 | 
						|
-      "adler32_simd.h",
 | 
						|
-    ]
 | 
						|
+  use_arm_neon_optimizations = false
 | 
						|
+  if ((current_cpu == "arm" || current_cpu == "arm64") &&
 | 
						|
+      !(is_win && !is_clang)) {
 | 
						|
+    # TODO(richard.townsend@arm.com): Optimizations temporarily disabled for
 | 
						|
+    # Windows on Arm MSVC builds, see http://crbug.com/v8/10012.
 | 
						|
+    if (arm_use_neon) {
 | 
						|
+      use_arm_neon_optimizations = true
 | 
						|
+    }
 | 
						|
   }
 | 
						|
 
 | 
						|
-  configs += [ ":zlib_internal_config" ]
 | 
						|
+  use_x86_x64_optimizations =
 | 
						|
+      (current_cpu == "x86" || current_cpu == "x64") && !is_ios
 | 
						|
 
 | 
						|
-  public_configs = [ ":zlib_adler32_simd_config" ]
 | 
						|
-
 | 
						|
-  public_deps = [ ":zlib_common_headers" ]
 | 
						|
-}
 | 
						|
-
 | 
						|
-if (use_arm_neon_optimizations) {
 | 
						|
-  config("zlib_arm_crc32_config") {
 | 
						|
-    # Disabled for iPhone, as described in DDI0487C_a_armv8_arm:
 | 
						|
-    #  "All implementations of the ARMv8.1 architecture are required to
 | 
						|
-    #   implement the CRC32* instructions. These are optional in ARMv8.0."
 | 
						|
-    if (!is_ios) {
 | 
						|
-      defines = [ "CRC32_ARMV8_CRC32" ]
 | 
						|
-      if (is_android) {
 | 
						|
-        defines += [ "ARMV8_OS_ANDROID" ]
 | 
						|
-      } else if (is_linux || is_chromeos) {
 | 
						|
-        defines += [ "ARMV8_OS_LINUX" ]
 | 
						|
-      } else if (is_mac) {
 | 
						|
-        defines += [ "ARMV8_OS_MACOS" ]
 | 
						|
-      } else if (is_fuchsia) {
 | 
						|
-        defines += [ "ARMV8_OS_FUCHSIA" ]
 | 
						|
-      } else if (is_win) {
 | 
						|
-        defines += [ "ARMV8_OS_WINDOWS" ]
 | 
						|
+  config("zlib_adler32_simd_config") {
 | 
						|
+    if (use_x86_x64_optimizations) {
 | 
						|
+      defines = [ "ADLER32_SIMD_SSSE3" ]
 | 
						|
+      if (is_win) {
 | 
						|
+        defines += [ "X86_WINDOWS" ]
 | 
						|
       } else {
 | 
						|
-        assert(false, "Unsupported ARM OS")
 | 
						|
+        defines += [ "X86_NOT_WINDOWS" ]
 | 
						|
       }
 | 
						|
     }
 | 
						|
+
 | 
						|
+    if (use_arm_neon_optimizations) {
 | 
						|
+      defines = [ "ADLER32_SIMD_NEON" ]
 | 
						|
+    }
 | 
						|
   }
 | 
						|
 
 | 
						|
-  source_set("zlib_arm_crc32") {
 | 
						|
+  source_set("zlib_adler32_simd") {
 | 
						|
     visibility = [ ":*" ]
 | 
						|
 
 | 
						|
-    if (!is_ios) {
 | 
						|
-      include_dirs = [ "." ]
 | 
						|
+    if (use_x86_x64_optimizations) {
 | 
						|
+      sources = [
 | 
						|
+        "adler32_simd.c",
 | 
						|
+        "adler32_simd.h",
 | 
						|
+      ]
 | 
						|
 
 | 
						|
-      if (!is_win && !is_clang) {
 | 
						|
-        assert(!use_thin_lto,
 | 
						|
-               "ThinLTO fails mixing different module-level targets")
 | 
						|
-        cflags_c = [ "-march=armv8-a+crc" ]
 | 
						|
+      if (!is_win || is_clang) {
 | 
						|
+        cflags = [ "-mssse3" ]
 | 
						|
       }
 | 
						|
+    }
 | 
						|
 
 | 
						|
+    if (use_arm_neon_optimizations) {
 | 
						|
       sources = [
 | 
						|
-        "crc32_simd.c",
 | 
						|
-        "crc32_simd.h",
 | 
						|
+        "adler32_simd.c",
 | 
						|
+        "adler32_simd.h",
 | 
						|
       ]
 | 
						|
     }
 | 
						|
 
 | 
						|
     configs += [ ":zlib_internal_config" ]
 | 
						|
 
 | 
						|
-    public_configs = [ ":zlib_arm_crc32_config" ]
 | 
						|
+    public_configs = [ ":zlib_adler32_simd_config" ]
 | 
						|
 
 | 
						|
     public_deps = [ ":zlib_common_headers" ]
 | 
						|
   }
 | 
						|
-}
 | 
						|
-
 | 
						|
-config("zlib_inflate_chunk_simd_config") {
 | 
						|
-  if (use_x86_x64_optimizations) {
 | 
						|
-    defines = [ "INFLATE_CHUNK_SIMD_SSE2" ]
 | 
						|
 
 | 
						|
-    if (current_cpu == "x64") {
 | 
						|
-      defines += [ "INFLATE_CHUNK_READ_64LE" ]
 | 
						|
+  if (use_arm_neon_optimizations) {
 | 
						|
+    config("zlib_arm_crc32_config") {
 | 
						|
+      # Disabled for iPhone, as described in DDI0487C_a_armv8_arm:
 | 
						|
+      #  "All implementations of the ARMv8.1 architecture are required to
 | 
						|
+      #   implement the CRC32* instructions. These are optional in ARMv8.0."
 | 
						|
+      if (!is_ios) {
 | 
						|
+        defines = [ "CRC32_ARMV8_CRC32" ]
 | 
						|
+        if (is_android) {
 | 
						|
+          defines += [ "ARMV8_OS_ANDROID" ]
 | 
						|
+        } else if (is_linux || is_chromeos) {
 | 
						|
+          defines += [ "ARMV8_OS_LINUX" ]
 | 
						|
+        } else if (is_mac) {
 | 
						|
+          defines += [ "ARMV8_OS_MACOS" ]
 | 
						|
+        } else if (is_fuchsia) {
 | 
						|
+          defines += [ "ARMV8_OS_FUCHSIA" ]
 | 
						|
+        } else if (is_win) {
 | 
						|
+          defines += [ "ARMV8_OS_WINDOWS" ]
 | 
						|
+        } else {
 | 
						|
+          assert(false, "Unsupported ARM OS")
 | 
						|
+        }
 | 
						|
+      }
 | 
						|
     }
 | 
						|
-  }
 | 
						|
 
 | 
						|
-  if (use_arm_neon_optimizations) {
 | 
						|
-    defines = [ "INFLATE_CHUNK_SIMD_NEON" ]
 | 
						|
+    source_set("zlib_arm_crc32") {
 | 
						|
+      visibility = [ ":*" ]
 | 
						|
 
 | 
						|
-    if (current_cpu == "arm64") {
 | 
						|
-      defines += [ "INFLATE_CHUNK_READ_64LE" ]
 | 
						|
-    }
 | 
						|
-  }
 | 
						|
-}
 | 
						|
+      if (!is_ios) {
 | 
						|
+        include_dirs = [ "." ]
 | 
						|
 
 | 
						|
-source_set("zlib_inflate_chunk_simd") {
 | 
						|
-  visibility = [ ":*" ]
 | 
						|
+        if (!is_win && !is_clang) {
 | 
						|
+          assert(!use_thin_lto,
 | 
						|
+                 "ThinLTO fails mixing different module-level targets")
 | 
						|
+          cflags_c = [ "-march=armv8-a+aes+crc" ]
 | 
						|
+        }
 | 
						|
 
 | 
						|
-  if (use_x86_x64_optimizations || use_arm_neon_optimizations) {
 | 
						|
-    include_dirs = [ "." ]
 | 
						|
+        sources = [
 | 
						|
+          "crc32_simd.c",
 | 
						|
+          "crc32_simd.h",
 | 
						|
+        ]
 | 
						|
+      }
 | 
						|
 
 | 
						|
-    sources = [
 | 
						|
-      "contrib/optimizations/chunkcopy.h",
 | 
						|
-      "contrib/optimizations/inffast_chunk.c",
 | 
						|
-      "contrib/optimizations/inffast_chunk.h",
 | 
						|
-      "contrib/optimizations/inflate.c",
 | 
						|
-    ]
 | 
						|
-  }
 | 
						|
+      configs += [ ":zlib_internal_config" ]
 | 
						|
 
 | 
						|
-  configs += [ ":zlib_internal_config" ]
 | 
						|
+      public_configs = [ ":zlib_arm_crc32_config" ]
 | 
						|
 
 | 
						|
-  # Needed for MSVC, which is still supported by V8 and PDFium. zlib uses K&R C
 | 
						|
-  # style function declarations, which triggers warning C4131.
 | 
						|
-  configs -= [ "//build/config/compiler:chromium_code" ]
 | 
						|
-  configs += [ "//build/config/compiler:no_chromium_code" ]
 | 
						|
+      public_deps = [ ":zlib_common_headers" ]
 | 
						|
+    }
 | 
						|
+  }
 | 
						|
 
 | 
						|
-  public_configs = [ ":zlib_inflate_chunk_simd_config" ]
 | 
						|
+  config("zlib_inflate_chunk_simd_config") {
 | 
						|
+    if (use_x86_x64_optimizations) {
 | 
						|
+      defines = [ "INFLATE_CHUNK_SIMD_SSE2" ]
 | 
						|
 
 | 
						|
-  public_deps = [ ":zlib_common_headers" ]
 | 
						|
-}
 | 
						|
+      if (current_cpu == "x64") {
 | 
						|
+        defines += [ "INFLATE_CHUNK_READ_64LE" ]
 | 
						|
+      }
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    if (use_arm_neon_optimizations) {
 | 
						|
+      defines = [ "INFLATE_CHUNK_SIMD_NEON" ]
 | 
						|
 
 | 
						|
-config("zlib_crc32_simd_config") {
 | 
						|
-  if (use_x86_x64_optimizations) {
 | 
						|
-    defines = [ "CRC32_SIMD_SSE42_PCLMUL" ]
 | 
						|
+      if (current_cpu == "arm64") {
 | 
						|
+        defines += [ "INFLATE_CHUNK_READ_64LE" ]
 | 
						|
+      }
 | 
						|
+    }
 | 
						|
   }
 | 
						|
-}
 | 
						|
 
 | 
						|
-source_set("zlib_crc32_simd") {
 | 
						|
-  visibility = [ ":*" ]
 | 
						|
+  source_set("zlib_inflate_chunk_simd") {
 | 
						|
+    visibility = [ ":*" ]
 | 
						|
 
 | 
						|
-  if (use_x86_x64_optimizations) {
 | 
						|
-    sources = [
 | 
						|
-      "crc32_simd.c",
 | 
						|
-      "crc32_simd.h",
 | 
						|
-      "crc_folding.c",
 | 
						|
-    ]
 | 
						|
+    if (use_x86_x64_optimizations || use_arm_neon_optimizations) {
 | 
						|
+      include_dirs = [ "." ]
 | 
						|
 
 | 
						|
-    if (!is_win || is_clang) {
 | 
						|
-      cflags = [
 | 
						|
-        "-msse4.2",
 | 
						|
-        "-mpclmul",
 | 
						|
+      sources = [
 | 
						|
+        "contrib/optimizations/chunkcopy.h",
 | 
						|
+        "contrib/optimizations/inffast_chunk.c",
 | 
						|
+        "contrib/optimizations/inffast_chunk.h",
 | 
						|
+        "contrib/optimizations/inflate.c",
 | 
						|
       ]
 | 
						|
     }
 | 
						|
-  }
 | 
						|
 
 | 
						|
-  configs += [ ":zlib_internal_config" ]
 | 
						|
+    configs += [ ":zlib_internal_config" ]
 | 
						|
 
 | 
						|
-  public_configs = [ ":zlib_crc32_simd_config" ]
 | 
						|
+    # Needed for MSVC, which is still supported by V8 and PDFium. zlib uses K&R C
 | 
						|
+    # style function declarations, which triggers warning C4131.
 | 
						|
+    configs -= [ "//build/config/compiler:chromium_code" ]
 | 
						|
+    configs += [ "//build/config/compiler:no_chromium_code" ]
 | 
						|
+    configs += [ ":zlib_warnings" ]
 | 
						|
 
 | 
						|
-  public_deps = [ ":zlib_common_headers" ]
 | 
						|
-}
 | 
						|
+    public_configs = [ ":zlib_inflate_chunk_simd_config" ]
 | 
						|
 
 | 
						|
-config("zlib_slide_hash_simd_config") {
 | 
						|
-  if (use_x86_x64_optimizations) {
 | 
						|
-    defines = [ "DEFLATE_SLIDE_HASH_SSE2" ]
 | 
						|
+    public_deps = [ ":zlib_common_headers" ]
 | 
						|
   }
 | 
						|
 
 | 
						|
-  if (use_arm_neon_optimizations) {
 | 
						|
-    defines = [ "DEFLATE_SLIDE_HASH_NEON" ]
 | 
						|
+  config("zlib_crc32_simd_config") {
 | 
						|
+    if (use_x86_x64_optimizations) {
 | 
						|
+      defines = [ "CRC32_SIMD_SSE42_PCLMUL" ]
 | 
						|
+    }
 | 
						|
   }
 | 
						|
-}
 | 
						|
 
 | 
						|
-source_set("zlib_slide_hash_simd") {
 | 
						|
-  visibility = [ ":*" ]
 | 
						|
+  source_set("zlib_crc32_simd") {
 | 
						|
+    visibility = [ ":*" ]
 | 
						|
 
 | 
						|
-  if (use_x86_x64_optimizations) {
 | 
						|
-    sources = [ "slide_hash_simd.h" ]
 | 
						|
+    if (use_x86_x64_optimizations) {
 | 
						|
+      sources = [
 | 
						|
+        "crc32_simd.c",
 | 
						|
+        "crc32_simd.h",
 | 
						|
+        "crc_folding.c",
 | 
						|
+      ]
 | 
						|
+
 | 
						|
+      if (!is_win || is_clang) {
 | 
						|
+        cflags = [
 | 
						|
+          "-msse4.2",
 | 
						|
+          "-mpclmul",
 | 
						|
+        ]
 | 
						|
+      }
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    configs += [ ":zlib_internal_config" ]
 | 
						|
+
 | 
						|
+    public_configs = [ ":zlib_crc32_simd_config" ]
 | 
						|
+
 | 
						|
+    public_deps = [ ":zlib_common_headers" ]
 | 
						|
   }
 | 
						|
 
 | 
						|
-  if (use_arm_neon_optimizations) {
 | 
						|
-    sources = [ "slide_hash_simd.h" ]
 | 
						|
+  config("zlib_slide_hash_simd_config") {
 | 
						|
+    if (use_x86_x64_optimizations) {
 | 
						|
+      defines = [ "DEFLATE_SLIDE_HASH_SSE2" ]
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    if (use_arm_neon_optimizations) {
 | 
						|
+      defines = [ "DEFLATE_SLIDE_HASH_NEON" ]
 | 
						|
+    }
 | 
						|
   }
 | 
						|
 
 | 
						|
-  configs += [ ":zlib_internal_config" ]
 | 
						|
+  source_set("zlib_slide_hash_simd") {
 | 
						|
+    visibility = [ ":*" ]
 | 
						|
 
 | 
						|
-  public_configs = [ ":zlib_slide_hash_simd_config" ]
 | 
						|
+    if (use_x86_x64_optimizations) {
 | 
						|
+      sources = [ "slide_hash_simd.h" ]
 | 
						|
+    }
 | 
						|
 
 | 
						|
-  public_deps = [ ":zlib_common_headers" ]
 | 
						|
-}
 | 
						|
+    if (use_arm_neon_optimizations) {
 | 
						|
+      sources = [ "slide_hash_simd.h" ]
 | 
						|
+    }
 | 
						|
 
 | 
						|
-config("zlib_warnings") {
 | 
						|
-  if (is_clang && use_x86_x64_optimizations) {
 | 
						|
-    cflags = [ "-Wno-incompatible-pointer-types" ]
 | 
						|
-  }
 | 
						|
-}
 | 
						|
+    configs += [ ":zlib_internal_config" ]
 | 
						|
 
 | 
						|
-component("zlib") {
 | 
						|
-  if (!is_win) {
 | 
						|
-    # Don't stomp on "libzlib" on other platforms.
 | 
						|
-    output_name = "chrome_zlib"
 | 
						|
-  }
 | 
						|
+    public_configs = [ ":zlib_slide_hash_simd_config" ]
 | 
						|
 
 | 
						|
-  sources = [
 | 
						|
-    "adler32.c",
 | 
						|
-    "chromeconf.h",
 | 
						|
-    "compress.c",
 | 
						|
-    "contrib/optimizations/insert_string.h",
 | 
						|
-    "cpu_features.c",
 | 
						|
-    "cpu_features.h",
 | 
						|
-    "crc32.c",
 | 
						|
-    "crc32.h",
 | 
						|
-    "deflate.c",
 | 
						|
-    "deflate.h",
 | 
						|
-    "gzclose.c",
 | 
						|
-    "gzguts.h",
 | 
						|
-    "gzlib.c",
 | 
						|
-    "gzread.c",
 | 
						|
-    "gzwrite.c",
 | 
						|
-    "infback.c",
 | 
						|
-    "inffast.c",
 | 
						|
-    "inffast.h",
 | 
						|
-    "inffixed.h",
 | 
						|
-    "inflate.h",
 | 
						|
-    "inftrees.c",
 | 
						|
-    "inftrees.h",
 | 
						|
-    "trees.c",
 | 
						|
-    "trees.h",
 | 
						|
-    "uncompr.c",
 | 
						|
-    "zconf.h",
 | 
						|
-    "zlib.h",
 | 
						|
-    "zutil.c",
 | 
						|
-    "zutil.h",
 | 
						|
-  ]
 | 
						|
-
 | 
						|
-  defines = []
 | 
						|
-  deps = []
 | 
						|
-
 | 
						|
-  if (!use_x86_x64_optimizations && !use_arm_neon_optimizations) {
 | 
						|
-    # Apparently android_cronet bot builds with NEON disabled and
 | 
						|
-    # we also should disable optimizations for iOS@x86 (a.k.a. simulator).
 | 
						|
-    defines += [ "CPU_NO_SIMD" ]
 | 
						|
+    public_deps = [ ":zlib_common_headers" ]
 | 
						|
   }
 | 
						|
 
 | 
						|
-  if (is_ios) {
 | 
						|
-    # iOS@ARM is a special case where we always have NEON but don't check
 | 
						|
-    # for crypto extensions.
 | 
						|
-    # TODO(cavalcantii): verify what is the current state of CPU features
 | 
						|
-    # shipped on latest iOS devices.
 | 
						|
-    defines += [ "ARM_OS_IOS" ]
 | 
						|
+  config("zlib_warnings") {
 | 
						|
+    if (is_clang) {
 | 
						|
+      cflags = [
 | 
						|
+        "-Wno-deprecated-non-prototype",
 | 
						|
+        "-Wno-incompatible-pointer-types",
 | 
						|
+        "-Wunused-variable",
 | 
						|
+      ]
 | 
						|
+    }
 | 
						|
   }
 | 
						|
 
 | 
						|
-  if (use_x86_x64_optimizations || use_arm_neon_optimizations) {
 | 
						|
-    deps += [
 | 
						|
-      ":zlib_adler32_simd",
 | 
						|
-      ":zlib_inflate_chunk_simd",
 | 
						|
-      ":zlib_slide_hash_simd",
 | 
						|
+  component("zlib") {
 | 
						|
+    if (!is_win) {
 | 
						|
+      # Don't stomp on "libzlib" on other platforms.
 | 
						|
+      output_name = "chrome_zlib"
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    sources = [
 | 
						|
+      "adler32.c",
 | 
						|
+      "chromeconf.h",
 | 
						|
+      "compress.c",
 | 
						|
+      "contrib/optimizations/insert_string.h",
 | 
						|
+      "cpu_features.c",
 | 
						|
+      "cpu_features.h",
 | 
						|
+      "crc32.c",
 | 
						|
+      "crc32.h",
 | 
						|
+      "deflate.c",
 | 
						|
+      "deflate.h",
 | 
						|
+      "gzclose.c",
 | 
						|
+      "gzguts.h",
 | 
						|
+      "gzlib.c",
 | 
						|
+      "gzread.c",
 | 
						|
+      "gzwrite.c",
 | 
						|
+      "infback.c",
 | 
						|
+      "inffast.c",
 | 
						|
+      "inffast.h",
 | 
						|
+      "inffixed.h",
 | 
						|
+      "inflate.h",
 | 
						|
+      "inftrees.c",
 | 
						|
+      "inftrees.h",
 | 
						|
+      "trees.c",
 | 
						|
+      "trees.h",
 | 
						|
+      "uncompr.c",
 | 
						|
+      "zconf.h",
 | 
						|
+      "zlib.h",
 | 
						|
+      "zutil.c",
 | 
						|
+      "zutil.h",
 | 
						|
     ]
 | 
						|
 
 | 
						|
-    if (use_x86_x64_optimizations) {
 | 
						|
-      deps += [ ":zlib_crc32_simd" ]
 | 
						|
-    } else if (use_arm_neon_optimizations) {
 | 
						|
-      deps += [ ":zlib_arm_crc32" ]
 | 
						|
+    defines = []
 | 
						|
+    deps = []
 | 
						|
+
 | 
						|
+    if (!use_x86_x64_optimizations && !use_arm_neon_optimizations) {
 | 
						|
+      # Apparently android_cronet bot builds with NEON disabled and
 | 
						|
+      # we also should disable optimizations for iOS@x86 (a.k.a. simulator).
 | 
						|
+      defines += [ "CPU_NO_SIMD" ]
 | 
						|
     }
 | 
						|
-  } else {
 | 
						|
-    sources += [ "inflate.c" ]
 | 
						|
-  }
 | 
						|
 
 | 
						|
-  if (is_android) {
 | 
						|
-    import("//build/config/android/config.gni")
 | 
						|
-    if (defined(android_ndk_root) && android_ndk_root != "") {
 | 
						|
-      deps += [ "//third_party/android_ndk:cpu_features" ]
 | 
						|
+    if (is_ios) {
 | 
						|
+      # iOS@ARM is a special case where we always have NEON but don't check
 | 
						|
+      # for crypto extensions.
 | 
						|
+      # TODO(cavalcantii): verify what is the current state of CPU features
 | 
						|
+      # shipped on latest iOS devices.
 | 
						|
+      defines += [ "ARM_OS_IOS" ]
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    if (use_x86_x64_optimizations || use_arm_neon_optimizations) {
 | 
						|
+      deps += [
 | 
						|
+        ":zlib_adler32_simd",
 | 
						|
+        ":zlib_inflate_chunk_simd",
 | 
						|
+        ":zlib_slide_hash_simd",
 | 
						|
+      ]
 | 
						|
+
 | 
						|
+      if (use_x86_x64_optimizations) {
 | 
						|
+        deps += [ ":zlib_crc32_simd" ]
 | 
						|
+      } else if (use_arm_neon_optimizations) {
 | 
						|
+        deps += [ ":zlib_arm_crc32" ]
 | 
						|
+      }
 | 
						|
     } else {
 | 
						|
-      assert(false, "CPU detection requires the Android NDK")
 | 
						|
+      sources += [ "inflate.c" ]
 | 
						|
     }
 | 
						|
-  }
 | 
						|
 
 | 
						|
-  configs -= [ "//build/config/compiler:chromium_code" ]
 | 
						|
-  configs += [ "//build/config/compiler:no_chromium_code" ]
 | 
						|
+    if (is_android) {
 | 
						|
+      import("//build/config/android/config.gni")
 | 
						|
+      if (defined(android_ndk_root) && android_ndk_root != "") {
 | 
						|
+        deps += [ "//third_party/android_ndk:cpu_features" ]
 | 
						|
+      } else {
 | 
						|
+        assert(false, "CPU detection requires the Android NDK")
 | 
						|
+      }
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    configs -= [ "//build/config/compiler:chromium_code" ]
 | 
						|
+    configs += [ "//build/config/compiler:no_chromium_code" ]
 | 
						|
 
 | 
						|
-  public_configs = [ ":zlib_config" ]
 | 
						|
+    public_configs = [ ":zlib_config" ]
 | 
						|
 
 | 
						|
-  configs += [
 | 
						|
-    ":zlib_internal_config",
 | 
						|
+    configs += [
 | 
						|
+      ":zlib_internal_config",
 | 
						|
 
 | 
						|
-    # Must be after no_chromium_code for warning flags to be ordered correctly.
 | 
						|
-    ":zlib_warnings",
 | 
						|
-  ]
 | 
						|
+      # Must be after no_chromium_code for warning flags to be ordered correctly.
 | 
						|
+      ":zlib_warnings",
 | 
						|
+    ]
 | 
						|
 
 | 
						|
-  allow_circular_includes_from = deps
 | 
						|
+    allow_circular_includes_from = deps
 | 
						|
+  }
 | 
						|
+} else {
 | 
						|
+  shim_headers("zlib_shim") {
 | 
						|
+    root_path = "//zlib"
 | 
						|
+    headers = [ "zlib.h" ]
 | 
						|
+  }
 | 
						|
+  source_set("zlib") {
 | 
						|
+    deps = [ ":zlib_shim" ]
 | 
						|
+    libs = [ "z" ]
 | 
						|
+    public_configs = [ ":system_zlib" ]
 | 
						|
+  }
 | 
						|
 }
 | 
						|
 
 | 
						|
-config("minizip_warnings") {
 | 
						|
-  visibility = [ ":*" ]
 | 
						|
+if (!use_system_zlib) {
 | 
						|
+  config("minizip_warnings") {
 | 
						|
+    visibility = [ ":*" ]
 | 
						|
 
 | 
						|
-  if (is_clang) {
 | 
						|
-    # zlib uses `if ((a == b))` for some reason.
 | 
						|
-    cflags = [ "-Wno-parentheses-equality" ]
 | 
						|
+    if (is_clang) {
 | 
						|
+      cflags = [
 | 
						|
+        # zlib uses `if ((a == b))` for some reason.
 | 
						|
+        "-Wno-parentheses-equality",
 | 
						|
+        "-Wno-deprecated-non-prototype",
 | 
						|
+      ]
 | 
						|
+    }
 | 
						|
   }
 | 
						|
-}
 | 
						|
 
 | 
						|
-static_library("minizip") {
 | 
						|
-  sources = [
 | 
						|
-    "contrib/minizip/ioapi.c",
 | 
						|
-    "contrib/minizip/ioapi.h",
 | 
						|
-    "contrib/minizip/iowin32.c",
 | 
						|
-    "contrib/minizip/iowin32.h",
 | 
						|
-    "contrib/minizip/unzip.c",
 | 
						|
-    "contrib/minizip/unzip.h",
 | 
						|
-    "contrib/minizip/zip.c",
 | 
						|
-    "contrib/minizip/zip.h",
 | 
						|
-  ]
 | 
						|
-
 | 
						|
-  if (!is_win) {
 | 
						|
-    sources -= [
 | 
						|
+  static_library("minizip") {
 | 
						|
+    sources = [
 | 
						|
+      "contrib/minizip/ioapi.c",
 | 
						|
+      "contrib/minizip/ioapi.h",
 | 
						|
       "contrib/minizip/iowin32.c",
 | 
						|
       "contrib/minizip/iowin32.h",
 | 
						|
+      "contrib/minizip/unzip.c",
 | 
						|
+      "contrib/minizip/unzip.h",
 | 
						|
+      "contrib/minizip/zip.c",
 | 
						|
+      "contrib/minizip/zip.h",
 | 
						|
     ]
 | 
						|
-  }
 | 
						|
 
 | 
						|
-  if (is_apple || is_android || is_nacl) {
 | 
						|
-    # Mac, Android and the BSDs don't have fopen64, ftello64, or fseeko64. We
 | 
						|
-    # use fopen, ftell, and fseek instead on these systems.
 | 
						|
-    defines = [ "USE_FILE32API" ]
 | 
						|
-  }
 | 
						|
+    if (!is_win) {
 | 
						|
+      sources -= [
 | 
						|
+        "contrib/minizip/iowin32.c",
 | 
						|
+        "contrib/minizip/iowin32.h",
 | 
						|
+      ]
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    if (is_apple || is_android || is_nacl) {
 | 
						|
+      # Mac, Android and the BSDs don't have fopen64, ftello64, or fseeko64. We
 | 
						|
+      # use fopen, ftell, and fseek instead on these systems.
 | 
						|
+      defines = [ "USE_FILE32API" ]
 | 
						|
+    }
 | 
						|
 
 | 
						|
-  deps = [ ":zlib" ]
 | 
						|
+    deps = [ ":zlib" ]
 | 
						|
 
 | 
						|
-  configs -= [ "//build/config/compiler:chromium_code" ]
 | 
						|
-  configs += [ "//build/config/compiler:no_chromium_code" ]
 | 
						|
+    configs -= [ "//build/config/compiler:chromium_code" ]
 | 
						|
+    configs += [ "//build/config/compiler:no_chromium_code" ]
 | 
						|
 
 | 
						|
-  public_configs = [ ":zlib_config" ]
 | 
						|
+    public_configs = [ ":zlib_config" ]
 | 
						|
 
 | 
						|
-  configs += [
 | 
						|
-    # Must be after no_chromium_code for warning flags to be ordered correctly.
 | 
						|
-    ":minizip_warnings",
 | 
						|
-  ]
 | 
						|
+    configs += [
 | 
						|
+      # Must be after no_chromium_code for warning flags to be ordered correctly.
 | 
						|
+      ":minizip_warnings",
 | 
						|
+    ]
 | 
						|
+  }
 | 
						|
+} else {
 | 
						|
+  shim_headers("minizip_shim") {
 | 
						|
+    root_path = "contrib"
 | 
						|
+    headers = [
 | 
						|
+      "minizip/crypt.h",
 | 
						|
+      "minizip/ioapi.h",
 | 
						|
+      "minizip/iowin32.h",
 | 
						|
+      "minizip/mztools.h",
 | 
						|
+      "minizip/unzip.h",
 | 
						|
+      "minizip/zip.h",
 | 
						|
+    ]
 | 
						|
+  }
 | 
						|
+  source_set("minizip") {
 | 
						|
+    deps = [ ":minizip_shim" ]
 | 
						|
+    libs = [ "minizip" ]
 | 
						|
+  }
 | 
						|
 }
 | 
						|
 
 | 
						|
-executable("zlib_bench") {
 | 
						|
-  include_dirs = [ "." ]
 | 
						|
+if (!use_system_zlib) {
 | 
						|
+  executable("zlib_bench") {
 | 
						|
+    include_dirs = [ "." ]
 | 
						|
 
 | 
						|
-  sources = [ "contrib/bench/zlib_bench.cc" ]
 | 
						|
-  if (!is_debug) {
 | 
						|
-    configs -= [ "//build/config/compiler:default_optimization" ]
 | 
						|
-    configs += [ "//build/config/compiler:optimize_speed" ]
 | 
						|
-  }
 | 
						|
+    sources = [ "contrib/bench/zlib_bench.cc" ]
 | 
						|
+    if (!is_debug) {
 | 
						|
+      configs -= [ "//build/config/compiler:default_optimization" ]
 | 
						|
+      configs += [ "//build/config/compiler:optimize_speed" ]
 | 
						|
+    }
 | 
						|
 
 | 
						|
-  deps = [ ":zlib" ]
 | 
						|
+    deps = [ ":zlib" ]
 | 
						|
 
 | 
						|
-  configs -= [ "//build/config/compiler:chromium_code" ]
 | 
						|
-  configs += [ "//build/config/compiler:no_chromium_code" ]
 | 
						|
+    configs -= [ "//build/config/compiler:chromium_code" ]
 | 
						|
+    configs += [ "//build/config/compiler:no_chromium_code" ]
 | 
						|
+  }
 | 
						|
 }
 | 
						|
 
 | 
						|
 if (!is_win || target_os != "winuwp") {
 | 
						|
@@ -432,7 +487,11 @@ if (!is_win || target_os != "winuwp") {
 | 
						|
     sources = [ "contrib/minizip/minizip.c" ]
 | 
						|
 
 | 
						|
     if (is_clang) {
 | 
						|
-      cflags = [ "-Wno-incompatible-pointer-types-discards-qualifiers" ]
 | 
						|
+      cflags = [
 | 
						|
+        "-Wno-incompatible-pointer-types-discards-qualifiers",
 | 
						|
+
 | 
						|
+        "-Wno-deprecated-non-prototype",
 | 
						|
+      ]
 | 
						|
     }
 | 
						|
 
 | 
						|
     if (!is_debug) {
 | 
						|
@@ -452,7 +511,10 @@ if (!is_win || target_os != "winuwp") {
 | 
						|
     sources = [ "contrib/minizip/miniunz.c" ]
 | 
						|
 
 | 
						|
     if (is_clang) {
 | 
						|
-      cflags = [ "-Wno-incompatible-pointer-types-discards-qualifiers" ]
 | 
						|
+      cflags = [
 | 
						|
+        "-Wno-incompatible-pointer-types-discards-qualifiers",
 | 
						|
+        "-Wno-deprecated-non-prototype",
 | 
						|
+      ]
 | 
						|
     }
 | 
						|
 
 | 
						|
     if (!is_debug) {
 | 
						|
diff --git a/third_party/zlib/system.gni b/third_party/zlib/system.gni
 | 
						|
new file mode 100644
 | 
						|
index 0000000..74604f9
 | 
						|
--- /dev/null
 | 
						|
+++ b/third_party/zlib/system.gni
 | 
						|
@@ -0,0 +1,11 @@
 | 
						|
+# Copyright 2023 The Chromium Authors
 | 
						|
+# Use of this source code is governed by a BSD-style license that can be
 | 
						|
+# found in the LICENSE file.
 | 
						|
+
 | 
						|
+# Separate file, so unbundle toolchains that replace gn files
 | 
						|
+# can replace just this file and override the default
 | 
						|
+declare_args() {
 | 
						|
+  # If true, find zlib and use as shared libraries.
 | 
						|
+  # Useful for Linux distribution repository builds.
 | 
						|
+  use_system_zlib = false
 | 
						|
+}
 |