Skip to content

Commit

Permalink
Downgrade zlib
Browse files Browse the repository at this point in the history
  • Loading branch information
rodlie committed Dec 27, 2024
1 parent 1858ae5 commit 835261b
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 281 deletions.
2 changes: 1 addition & 1 deletion DEPS
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ deps = {
"third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@ccfbe1c82a3b6dbe8647ceb36a3f9ee711fba3cf",
"third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@ed217e3e601d8e462f7fd1e04bed43ac42212429",
"third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@845d5476a866141ba35ac133f856fa62f0b7445f",
"third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@646b7f569718921d7d4b5b8e22572ff6c76f2596",
"third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@47af7c547f8551bd25424e56354a2ae1e9062859",

"../src": {
"url": "https://chromium.googlesource.com/chromium/src.git@c0b367bf9cab0b8a8a05ac0e39f88407a0c290c9",
Expand Down
298 changes: 18 additions & 280 deletions third_party/zlib/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -14,307 +14,45 @@ if (skia_use_system_zlib) {
libs = [ "z" ]
}
} else {
config("zlib_internal_config") {
defines = [ "ZLIB_IMPLEMENTATION" ]
}
source_set("zlib_common_headers") {
visibility = [ ":*" ]
sources = [
"../externals/zlib/chromeconf.h",
"../externals/zlib/deflate.h",
"../externals/zlib/inffast.h",
"../externals/zlib/inffixed.h",
"../externals/zlib/inflate.h",
"../externals/zlib/inftrees.h",
"../externals/zlib/zconf.h",
"../externals/zlib/zlib.h",
"../externals/zlib/zutil.h",
]
}

use_arm_neon_optimizations =
(current_cpu == "arm" || current_cpu == "arm64") && (is_clang || !is_win)
use_x86_x64_optimizations =
(current_cpu == "x86" || current_cpu == "x64") && !is_ios

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 (use_arm_neon_optimizations) {
defines = [ "ADLER32_SIMD_NEON" ]
}
}

source_set("zlib_adler32_simd") {
visibility = [ ":*" ]

if (use_x86_x64_optimizations) {
sources = [
"../externals/zlib/adler32_simd.c",
"../externals/zlib/adler32_simd.h",
]

if (!is_win || is_clang) {
cflags = [ "-mssse3" ]
}
}

if (use_arm_neon_optimizations) {
sources = [
"../externals/zlib/adler32_simd.c",
"../externals/zlib/adler32_simd.h",
]
}

configs += [ ":zlib_internal_config" ]

public_configs = [ ":zlib_adler32_simd_config" ]

public_deps = [ ":zlib_common_headers" ]
}

if (use_arm_neon_optimizations) {
config("zlib_arm_crc32_config") {
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_ios) {
defines += [ "ARMV8_OS_IOS" ]
} else if (is_fuchsia) {
defines += [ "ARMV8_OS_FUCHSIA" ]
} else if (is_win) {
defines += [ "ARMV8_OS_WINDOWS" ]
} else {
assert(false, "Unsupported ARM OS")
}
}

source_set("zlib_arm_crc32") {
visibility = [ ":*" ]

include_dirs = [
"../externals/zlib/",
"../externals/zlib/contrib/optimizations/",
]

if (!is_win && !is_clang) {
cflags_c = [ "-march=armv8-a+aes+crc" ]
}

sources = [
"../externals/zlib/crc32_simd.c",
"../externals/zlib/crc32_simd.h",
]

configs += [ ":zlib_internal_config" ]

public_configs = [ ":zlib_arm_crc32_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) {
defines = [ "INFLATE_CHUNK_SIMD_NEON" ]

if (current_cpu == "arm64") {
defines += [ "INFLATE_CHUNK_READ_64LE" ]
}
}
}

source_set("zlib_inflate_chunk_simd") {
visibility = [ ":*" ]

if (use_x86_x64_optimizations || use_arm_neon_optimizations) {
include_dirs = [
"../externals/zlib/",
"../externals/zlib/contrib/optimizations/",
]
sources = [
"../externals/zlib/contrib/optimizations/chunkcopy.h",
"../externals/zlib/contrib/optimizations/inffast_chunk.c",
"../externals/zlib/contrib/optimizations/inffast_chunk.h",
"../externals/zlib/contrib/optimizations/inflate.c",
]
}

configs += [ ":zlib_internal_config" ]
configs += [ ":zlib_warnings" ]

public_configs = [ ":zlib_inflate_chunk_simd_config" ]

public_deps = [ ":zlib_common_headers" ]
}

config("zlib_crc32_simd_config") {
if (use_x86_x64_optimizations) {
defines = [ "CRC32_SIMD_SSE42_PCLMUL" ]
}
}

source_set("zlib_crc32_simd") {
visibility = [ ":*" ]

if (use_x86_x64_optimizations) {
sources = [
"../externals/zlib/crc32_simd.c",
"../externals/zlib/crc32_simd.h",
"../externals/zlib/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" ]
}

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" ]
}
}

source_set("zlib_slide_hash_simd") {
visibility = [ ":*" ]

if (use_x86_x64_optimizations) {
sources = [ "../externals/zlib/slide_hash_simd.h" ]
}

if (use_arm_neon_optimizations) {
sources = [ "../externals/zlib/slide_hash_simd.h" ]
}

configs += [ ":zlib_internal_config" ]

public_configs = [ ":zlib_slide_hash_simd_config" ]

public_deps = [ ":zlib_common_headers" ]
}

config("zlib_warnings") {
if (is_clang) {
cflags = [
"-Wno-incompatible-pointer-types",
"-Wunused-variable",
]
}
}

third_party("zlib") {
public_include_dirs = [ "../externals/zlib" ]
defines = []
deps = []
configs = []

deps = [ ":zlib_x86" ]
sources = [
"../externals/zlib/adler32.c",
"../externals/zlib/chromeconf.h",
"../externals/zlib/compress.c",
"../externals/zlib/contrib/optimizations/insert_string.h",
"../externals/zlib/cpu_features.c",
"../externals/zlib/cpu_features.h",
"../externals/zlib/crc32.c",
"../externals/zlib/crc32.h",
"../externals/zlib/deflate.c",
"../externals/zlib/deflate.h",
"../externals/zlib/gzclose.c",
"../externals/zlib/gzguts.h",
"../externals/zlib/gzlib.c",
"../externals/zlib/gzread.c",
"../externals/zlib/gzwrite.c",
"../externals/zlib/infback.c",
"../externals/zlib/inffast.c",
"../externals/zlib/inffast.h",
"../externals/zlib/inffixed.h",
"../externals/zlib/inflate.h",
"../externals/zlib/inflate.c",
"../externals/zlib/inftrees.c",
"../externals/zlib/inftrees.h",
"../externals/zlib/trees.c",
"../externals/zlib/trees.h",
"../externals/zlib/uncompr.c",
"../externals/zlib/zconf.h",
"../externals/zlib/zlib.h",
"../externals/zlib/zutil.c",
"../externals/zlib/zutil.h",
]
}
}

if (is_android) {
deps += [ "//third_party/cpu-features" ]
}

if (!use_x86_x64_optimizations && !use_arm_neon_optimizations) {
defines += [ "CPU_NO_SIMD" ]
}

if (use_x86_x64_optimizations || use_arm_neon_optimizations) {
deps += [
":zlib_adler32_simd",
":zlib_inflate_chunk_simd",
":zlib_slide_hash_simd",
third_party("zlib_x86") {
public_include_dirs = []
if (target_cpu == "x86" || target_cpu == "x64") {
sources = [
"../externals/zlib/crc_folding.c",
"../externals/zlib/fill_window_sse.c",
"../externals/zlib/x86.c",
]
if (!is_win || is_clang) {
cflags_c = [
"-msse4.2",
"-mpclmul",
]

if (use_x86_x64_optimizations) {
deps += [ ":zlib_crc32_simd" ]
} else if (use_arm_neon_optimizations) {
deps += [ ":zlib_arm_crc32" ]
}
} else {
sources += [ "../externals/zlib/inflate.c" ]
}

configs += [
":zlib_internal_config",
":zlib_warnings",
]

allow_circular_includes_from = deps
} else {
sources = [ "../externals/zlib/simd_stub.c" ]
}
}

config("zlib_config") {
}

third_party("compression_utils_portable") {
visibility = [ "//third_party/externals/angle2:*" ]
public_include_dirs = [ "../externals/zlib/google" ]
sources = [
"../externals/zlib/google/compression_utils_portable.cc",
"../externals/zlib/google/compression_utils_portable.h",
]
public_deps = [ ":zlib" ] # either system or from source
}

0 comments on commit 835261b

Please sign in to comment.