Roll libjpeg-turbo to latest in Chromium
This indirectly addresses an use-of-uninitialized value error discovered by MSAN fuzzer. We are updating libjpeg-turbo to 3.1.0 and this CL is based off of these rolls into chromium:
- Compiling some source sets multiple times with different precision symbols [1]
- jsimd_none.c was removed so now we control WITH_SIMD via defines [2]
[1] https://chromium-review.googlesource.com/c/chromium/deps/libjpeg_turbo/+/6264683
[2] https://chromium-review.googlesource.com/c/chromium/deps/libjpeg_turbo/+/6318439
Bug: 388319486
Bug: 398911117
Change-Id: I4c12ee6416789d6be334ee38540beb6d55a562b1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/959936
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Daniel Dilan <danieldilan@google.com>
diff --git a/DEPS b/DEPS
index b13dda6..5704aad 100644
--- a/DEPS
+++ b/DEPS
@@ -54,7 +54,7 @@
"third_party/externals/libavif" : "https://skia.googlesource.com/external/github.com/AOMediaCodec/libavif.git@55aab4ac0607ab651055d354d64c4615cf3d8000",
"third_party/externals/libgav1" : "https://chromium.googlesource.com/codecs/libgav1.git@5cf722e659014ebaf2f573a6dd935116d36eadf1",
"third_party/externals/libgrapheme" : "https://skia.googlesource.com/external/github.com/FRIGN/libgrapheme/@c0cab63c5300fa12284194fbef57aa2ed62a94c0",
- "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@ccfbe1c82a3b6dbe8647ceb36a3f9ee711fba3cf",
+ "third_party/externals/libjpeg-turbo" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@e14cbfaa85529d47f9f55b0f104a579c1061f9ad",
"third_party/externals/libjxl" : "https://chromium.googlesource.com/external/gitlab.com/wg1/jpeg-xl.git@a205468bc5d3a353fb15dae2398a101dff52f2d3",
"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",
diff --git a/bazel/deps.bzl b/bazel/deps.bzl
index b51e50e..54f145f 100644
--- a/bazel/deps.bzl
+++ b/bazel/deps.bzl
@@ -129,7 +129,7 @@
new_git_repository(
name = "libjpeg_turbo",
build_file = ws + "//bazel/external/libjpeg_turbo:BUILD.bazel",
- commit = "ccfbe1c82a3b6dbe8647ceb36a3f9ee711fba3cf",
+ commit = "e14cbfaa85529d47f9f55b0f104a579c1061f9ad",
remote = "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git",
)
diff --git a/bazel/external/libjpeg_turbo/BUILD.bazel b/bazel/external/libjpeg_turbo/BUILD.bazel
index c7abc01..a5d48a2 100644
--- a/bazel/external/libjpeg_turbo/BUILD.bazel
+++ b/bazel/external/libjpeg_turbo/BUILD.bazel
@@ -18,110 +18,117 @@
],
)
-JPEGTURBO_SRCS = [
- "jaricom.c",
- "jcapimin.c",
- "jcapistd.c",
- "jcarith.c",
- "jccoefct.c",
- "jccolor.c",
- "jcdctmgr.c",
- "jchuff.c",
- "jchuff.h",
- "jcinit.c",
- "jcmainct.c",
- "jcmarker.c",
- "jcmaster.c",
- "jcomapi.c",
- "jconfigint.h",
- "jcparam.c",
- "jcphuff.c",
- "jcprepct.c",
- "jcsample.c",
- "jdapimin.c",
- "jdapistd.c",
- "jdarith.c",
- "jdcoefct.c",
- "jdcoefct.h",
- "jdcolor.c",
- "jdct.h",
- "jddctmgr.c",
- "jdhuff.c",
- "jdhuff.h",
- "jdinput.c",
- "jdmainct.c",
- "jdmainct.h",
- "jdmarker.c",
- "jdmaster.c",
- "jdmaster.h",
- "jdmerge.c",
- "jdmerge.h",
- "jdphuff.c",
- "jdpostct.c",
- "jdsample.c",
- "jdsample.h",
- "jerror.c",
- "jfdctflt.c",
- "jfdctfst.c",
- "jfdctint.c",
- "jidctflt.c",
- "jidctfst.c",
- "jidctint.c",
- "jidctred.c",
- "jinclude.h",
- "jmemmgr.c",
- "jmemnobs.c",
- "jmemsys.h",
- "jpeg_nbits_table.c",
- "jpeg_nbits_table.h",
- "jpegcomp.h",
- "jpegint.h",
- "jquant1.c",
- "jquant2.c",
- "jsimd.h",
- "jsimddct.h",
- "jutils.c",
- "jversion.h",
-] + select({
- ":arm_or_arm64": [
- "simd/arm/jccolor-neon.c",
- "simd/arm/jcgray-neon.c",
- "simd/arm/jchuff.h",
- "simd/arm/jcphuff-neon.c",
- "simd/arm/jcsample-neon.c",
- "simd/arm/jdcolor-neon.c",
- "simd/arm/jdmerge-neon.c",
- "simd/arm/jdsample-neon.c",
- "simd/arm/jfdctfst-neon.c",
- "simd/arm/jfdctint-neon.c",
- "simd/arm/jidctfst-neon.c",
- "simd/arm/jidctint-neon.c",
- "simd/arm/jidctred-neon.c",
- "simd/arm/jquanti-neon.c",
- "simd/arm/neon-compat.h",
- "simd/jsimd.h",
- ],
- "//conditions:default": ["jsimd_none.c"],
-}) + select({
- "@platforms//cpu:arm": [
- "simd/arm/aarch32/jchuff-neon.c",
- "simd/arm/aarch32/jsimd.c",
- ],
- "@platforms//cpu:arm64": [
- "simd/arm/aarch64/jchuff-neon.c",
- "simd/arm/aarch64/jsimd.c",
- "simd/arm/align.h",
- ],
- "//conditions:default": [],
-})
+LIBJPEG_HEADERS = [
+ "src/jconfig.h",
+ "src/jerror.h",
+ "src/jdct.h",
+ "src/jinclude.h",
+ "src/jpeglib.h",
+ "src/jpeglibmangler.h",
+ "src/jmorecfg.h",
+ "src/jconfigint.h",
+ "src/jpegint.h",
+ "src/jpegapicomp.h",
+ "src/jpeg_nbits.h",
+ "src/jsimddct.h",
+ "src/jversion.h",
+ "src/jdhuff.h",
+]
+
+# Based on
+# https://github.com/libjpeg-turbo/libjpeg-turbo/blob/20ade4de/CMakeLists.txt#L605
+#
+# Starting in 3.x, libjpeg-turbo supports runtime-selectable precision.
+# This requires compiling some source sets multiple times, with different
+# BITS_IN_JSAMPLE defines (16, 12, and the default 8), to generate precision-
+# specific symbols (e.g. jpeg16_read_scanlines vs jpeg12_read_scanlines vs
+# jpeg_read_scanlines).
+
+JPEG16_SRCS = [
+ "src/jcapistd.c",
+ "src/jccolor.c",
+ "src/jcdiffct.c",
+ "src/jclossls.c",
+ "src/jcmainct.c",
+ "src/jcprepct.c",
+ "src/jcsample.c",
+ "src/jdapistd.c",
+ "src/jdcolor.c",
+ "src/jddiffct.c",
+ "src/jdlossls.c",
+ "src/jdmainct.c",
+ "src/jdmainct.h",
+ "src/jdpostct.c",
+ "src/jdsample.c",
+ "src/jdsample.h",
+ "src/jutils.c",
+ "src/jsimd.h",
+ "src/jlossls.h",
+ "src/jdmaster.c",
+ "src/jdmaster.h",
+ "src/jdmerge.h",
+ "src/jmemsys.h",
+]
+
+JPEG12_SRCS = JPEG16_SRCS + [
+ "src/jccoefct.c",
+ "src/jcdctmgr.c",
+ "src/jdcoefct.c",
+ "src/jddctmgr.c",
+ "src/jdmerge.c",
+ "src/jfdctfst.c",
+ "src/jfdctint.c",
+ "src/jidctflt.c",
+ "src/jidctfst.c",
+ "src/jidctint.c",
+ "src/jidctred.c",
+ "src/jquant1.c",
+ "src/jquant2.c",
+ "src/jdcoefct.h",
+]
+
+JPEGTURBO_SRCS = JPEG12_SRCS + [
+ "src/jchuff.c",
+ "src/jchuff.h",
+ "src/jaricom.c",
+ "src/jcapimin.c",
+ "src/jcarith.c",
+ "src/jcicc.c",
+ "src/jcinit.c",
+ "src/jclhuff.c",
+ "src/jcmarker.c",
+ "src/jcmaster.c",
+ "src/jcmaster.h",
+ "src/jcomapi.c",
+ "src/jcparam.c",
+ "src/jcphuff.c",
+ "src/jctrans.c",
+ "src/jdapimin.c",
+ "src/jdarith.c",
+ "src/jdatadst.c",
+ "src/jdatasrc.c",
+ "src/jdhuff.c",
+ "src/jdicc.c",
+ "src/jdinput.c",
+ "src/jdlhuff.c",
+ "src/jdmarker.c",
+ "src/jdphuff.c",
+ "src/jdtrans.c",
+ "src/jerror.c",
+ "src/jfdctflt.c",
+ "src/jmemmgr.c",
+ "src/jmemnobs.c",
+ "src/jpeg_nbits.c",
+]
JPEGTURBO_TEXT_HDRS = [
- "jccolext.c",
- "jdmrgext.c",
- "jdcolext.c",
- "jdcol565.c",
- "jdmrg565.c",
- "jstdhuff.c",
+ "src/jccolext.c",
+ "src/jdmrgext.c",
+ "src/jdcolext.c",
+ "src/jdcol565.c",
+ "src/jdmrg565.c",
+ "src/jstdhuff.c",
+ "src/jsamplecomp.h",
] + select({
":arm_or_arm64": [
"simd/arm/jdmrgext-neon.c",
@@ -146,7 +153,10 @@
"C_ARITH_CODING_SUPPORTED=1",
"D_ARITH_CODING_SUPPORTED=1",
] + select({
- ":arm_or_arm64": ["NEON_INTRINSICS"],
+ ":arm_or_arm64": [
+ "NEON_INTRINSICS",
+ "WITH_SIMD",
+ ],
"//conditions:default": [],
}) + select({
# Cuts a 64K table.
@@ -156,20 +166,80 @@
})
cc_library(
- name = "libjpeg_turbo",
- srcs = JPEGTURBO_SRCS,
- hdrs = [
- "jconfig.h",
- "jerror.h",
- "jmorecfg.h",
- "jpeglib.h",
- "jpeglibmangler.h",
+ name = "libjpeg16",
+ srcs = JPEG16_SRCS,
+ hdrs = LIBJPEG_HEADERS,
+ includes = ["src"],
+ local_defines = [
+ "NO_GETENV",
+ "NO_PUTENV",
+ "BITS_IN_JSAMPLE=16",
+ "C_ARITH_CODING_SUPPORTED=1",
+ "D_ARITH_CODING_SUPPORTED=1",
],
+ textual_hdrs = JPEGTURBO_TEXT_HDRS,
+)
+
+cc_library(
+ name = "libjpeg12",
+ srcs = JPEG12_SRCS,
+ hdrs = LIBJPEG_HEADERS,
+ includes = ["src"],
+ local_defines = [
+ "NO_GETENV",
+ "NO_PUTENV",
+ "BITS_IN_JSAMPLE=12",
+ "C_ARITH_CODING_SUPPORTED=1",
+ "D_ARITH_CODING_SUPPORTED=1",
+ ],
+ textual_hdrs = JPEGTURBO_TEXT_HDRS,
+)
+
+cc_library(
+ name = "libjpeg_turbo",
+ srcs = JPEGTURBO_SRCS + select({
+ ":arm_or_arm64": [
+ "simd/arm/jccolor-neon.c",
+ "simd/arm/jcgray-neon.c",
+ "simd/arm/jchuff.h",
+ "simd/arm/jcphuff-neon.c",
+ "simd/arm/jcsample-neon.c",
+ "simd/arm/jdcolor-neon.c",
+ "simd/arm/jdmerge-neon.c",
+ "simd/arm/jdsample-neon.c",
+ "simd/arm/jfdctfst-neon.c",
+ "simd/arm/jfdctint-neon.c",
+ "simd/arm/jidctfst-neon.c",
+ "simd/arm/jidctint-neon.c",
+ "simd/arm/jidctred-neon.c",
+ "simd/arm/jquanti-neon.c",
+ "simd/arm/neon-compat.h",
+ "simd/jsimd.h",
+ ],
+ "//conditions:default": [],
+ }) + select({
+ "@platforms//cpu:arm": [
+ "simd/arm/aarch32/jchuff-neon.c",
+ "simd/arm/aarch32/jsimd.c",
+ ],
+ "@platforms//cpu:arm64": [
+ "simd/arm/aarch64/jchuff-neon.c",
+ "simd/arm/aarch64/jsimd.c",
+ "simd/arm/align.h",
+ ],
+ "//conditions:default": [],
+ }),
+ hdrs = LIBJPEG_HEADERS,
copts = [
# There are some #include "neon-compat.h" etc that need this search path
"-Iexternal/libjpeg_turbo/simd/arm/",
],
+ includes = ["src"],
local_defines = JPEGTURBO_DEFINES,
textual_hdrs = JPEGTURBO_TEXT_HDRS,
visibility = ["//visibility:public"],
+ deps = [
+ ":libjpeg12",
+ ":libjpeg16",
+ ],
)
diff --git a/infra/bots/deps/deps_gen.go b/infra/bots/deps/deps_gen.go
index cd7cf65..5ab53f3 100644
--- a/infra/bots/deps/deps_gen.go
+++ b/infra/bots/deps/deps_gen.go
@@ -34,7 +34,7 @@
},
"chromium.googlesource.com/chromium/deps/libjpeg_turbo": {
Id: "chromium.googlesource.com/chromium/deps/libjpeg_turbo",
- Version: "ccfbe1c82a3b6dbe8647ceb36a3f9ee711fba3cf",
+ Version: "e14cbfaa85529d47f9f55b0f104a579c1061f9ad",
Path: "third_party/externals/libjpeg-turbo",
},
"chromium.googlesource.com/chromium/src/base/allocator/partition_allocator": {
diff --git a/src/codec/SkJpegDecoderMgr.cpp b/src/codec/SkJpegDecoderMgr.cpp
index 5ae9573..817f039 100644
--- a/src/codec/SkJpegDecoderMgr.cpp
+++ b/src/codec/SkJpegDecoderMgr.cpp
@@ -15,6 +15,7 @@
#include "include/android/SkAndroidFrameworkUtils.h"
#endif
+#include <jpeglib.h>
#include <cstddef>
#include <utility>
diff --git a/third_party/libjpeg-turbo/BUILD.gn b/third_party/libjpeg-turbo/BUILD.gn
index a997082..569ec0b 100644
--- a/third_party/libjpeg-turbo/BUILD.gn
+++ b/third_party/libjpeg-turbo/BUILD.gn
@@ -14,10 +14,122 @@
libs = [ "jpeg" ]
}
} else {
+ source_set("libjpeg_headers") {
+ sources = [
+ "../externals/libjpeg-turbo/src/jconfig.h",
+ "../externals/libjpeg-turbo/src/jdct.h",
+ "../externals/libjpeg-turbo/src/jinclude.h",
+ "../externals/libjpeg-turbo/src/jmorecfg.h",
+ "../externals/libjpeg-turbo/src/jpeglib.h",
+ "../externals/libjpeg-turbo/src/jpeglibmangler.h",
+ ]
+ }
+
+ # Based on
+ # https://github.com/libjpeg-turbo/libjpeg-turbo/blob/20ade4de/CMakeLists.txt#L605
+ #
+ # Starting in 3.x, libjpeg-turbo supports runtime-selectable precision.
+ # This requires compiling some source sets multiple times, with different
+ # BITS_IN_JSAMPLE defines (16, 12, and the default 8), to generate precision-
+ # specific symbols (e.g. jpeg16_read_scanlines vs jpeg12_read_scanlines vs
+ # jpeg_read_scanlines).
+
+ libjpeg16_sources = [
+ "../externals/libjpeg-turbo/src/jcapistd.c",
+ "../externals/libjpeg-turbo/src/jccolor.c",
+ "../externals/libjpeg-turbo/src/jcdiffct.c",
+ "../externals/libjpeg-turbo/src/jclossls.c",
+ "../externals/libjpeg-turbo/src/jcmainct.c",
+ "../externals/libjpeg-turbo/src/jcprepct.c",
+ "../externals/libjpeg-turbo/src/jcsample.c",
+ "../externals/libjpeg-turbo/src/jdapistd.c",
+ "../externals/libjpeg-turbo/src/jdcolor.c",
+ "../externals/libjpeg-turbo/src/jddiffct.c",
+ "../externals/libjpeg-turbo/src/jdlossls.c",
+ "../externals/libjpeg-turbo/src/jdmainct.c",
+ "../externals/libjpeg-turbo/src/jdpostct.c",
+ "../externals/libjpeg-turbo/src/jdsample.c",
+ "../externals/libjpeg-turbo/src/jutils.c",
+ ]
+
+ libjpeg12_sources = libjpeg16_sources + [
+ "../externals/libjpeg-turbo/src/jccoefct.c",
+ "../externals/libjpeg-turbo/src/jcdctmgr.c",
+ "../externals/libjpeg-turbo/src/jdcoefct.c",
+ "../externals/libjpeg-turbo/src/jddctmgr.c",
+ "../externals/libjpeg-turbo/src/jdmerge.c",
+ "../externals/libjpeg-turbo/src/jfdctfst.c",
+ "../externals/libjpeg-turbo/src/jfdctint.c",
+ "../externals/libjpeg-turbo/src/jidctflt.c",
+ "../externals/libjpeg-turbo/src/jidctfst.c",
+ "../externals/libjpeg-turbo/src/jidctint.c",
+ "../externals/libjpeg-turbo/src/jidctred.c",
+ "../externals/libjpeg-turbo/src/jquant1.c",
+ "../externals/libjpeg-turbo/src/jquant2.c",
+ ]
+
+ libjpeg_sources = libjpeg12_sources + [
+ "../externals/libjpeg-turbo/src/jaricom.c",
+ "../externals/libjpeg-turbo/src/jcapimin.c",
+ "../externals/libjpeg-turbo/src/jcarith.c",
+ "../externals/libjpeg-turbo/src/jchuff.c",
+ "../externals/libjpeg-turbo/src/jcicc.c",
+ "../externals/libjpeg-turbo/src/jcinit.c",
+ "../externals/libjpeg-turbo/src/jclhuff.c",
+ "../externals/libjpeg-turbo/src/jcmarker.c",
+ "../externals/libjpeg-turbo/src/jcmaster.c",
+ "../externals/libjpeg-turbo/src/jcomapi.c",
+ "../externals/libjpeg-turbo/src/jcparam.c",
+ "../externals/libjpeg-turbo/src/jcphuff.c",
+ "../externals/libjpeg-turbo/src/jctrans.c",
+ "../externals/libjpeg-turbo/src/jdapimin.c",
+ "../externals/libjpeg-turbo/src/jdarith.c",
+ "../externals/libjpeg-turbo/src/jdatadst.c",
+ "../externals/libjpeg-turbo/src/jdatasrc.c",
+ "../externals/libjpeg-turbo/src/jdhuff.c",
+ "../externals/libjpeg-turbo/src/jdicc.c",
+ "../externals/libjpeg-turbo/src/jdinput.c",
+ "../externals/libjpeg-turbo/src/jdlhuff.c",
+ "../externals/libjpeg-turbo/src/jdmarker.c",
+ "../externals/libjpeg-turbo/src/jdmaster.c",
+ "../externals/libjpeg-turbo/src/jdphuff.c",
+ "../externals/libjpeg-turbo/src/jdtrans.c",
+ "../externals/libjpeg-turbo/src/jerror.c",
+ "../externals/libjpeg-turbo/src/jfdctflt.c",
+ "../externals/libjpeg-turbo/src/jmemmgr.c",
+ "../externals/libjpeg-turbo/src/jmemnobs.c",
+ "../externals/libjpeg-turbo/src/jpeg_nbits.c",
+ ]
+
+ static_library("libjpeg16") {
+ sources = libjpeg16_sources
+
+ defines = [
+ "NO_GETENV",
+ "NO_PUTENV",
+ "BITS_IN_JSAMPLE=16",
+ ]
+
+ public_deps = [ ":libjpeg_headers" ]
+ }
+
+ static_library("libjpeg12") {
+ sources = libjpeg12_sources
+
+ defines = [
+ "NO_GETENV",
+ "NO_PUTENV",
+ "BITS_IN_JSAMPLE=12",
+ ]
+
+ public_deps = [ ":libjpeg_headers" ]
+ }
+
third_party("libjpeg") {
public_include_dirs = [
".",
"../externals/libjpeg-turbo",
+ "../externals/libjpeg-turbo/src",
]
defines = [
@@ -34,57 +146,19 @@
defines += [ "USE_CLZ_INTRINSIC" ] # Cuts a 64K table.
}
- sources = [
- "../externals/libjpeg-turbo/jaricom.c",
- "../externals/libjpeg-turbo/jcapimin.c",
- "../externals/libjpeg-turbo/jcapistd.c",
- "../externals/libjpeg-turbo/jcarith.c",
- "../externals/libjpeg-turbo/jccoefct.c",
- "../externals/libjpeg-turbo/jccolor.c",
- "../externals/libjpeg-turbo/jcdctmgr.c",
- "../externals/libjpeg-turbo/jchuff.c",
- "../externals/libjpeg-turbo/jcinit.c",
- "../externals/libjpeg-turbo/jcmainct.c",
- "../externals/libjpeg-turbo/jcmarker.c",
- "../externals/libjpeg-turbo/jcmaster.c",
- "../externals/libjpeg-turbo/jcomapi.c",
- "../externals/libjpeg-turbo/jcparam.c",
- "../externals/libjpeg-turbo/jcphuff.c",
- "../externals/libjpeg-turbo/jcprepct.c",
- "../externals/libjpeg-turbo/jcsample.c",
- "../externals/libjpeg-turbo/jdapimin.c",
- "../externals/libjpeg-turbo/jdapistd.c",
- "../externals/libjpeg-turbo/jdarith.c",
- "../externals/libjpeg-turbo/jdcoefct.c",
- "../externals/libjpeg-turbo/jdcolor.c",
- "../externals/libjpeg-turbo/jddctmgr.c",
- "../externals/libjpeg-turbo/jdhuff.c",
- "../externals/libjpeg-turbo/jdinput.c",
- "../externals/libjpeg-turbo/jdmainct.c",
- "../externals/libjpeg-turbo/jdmarker.c",
- "../externals/libjpeg-turbo/jdmaster.c",
- "../externals/libjpeg-turbo/jdmerge.c",
- "../externals/libjpeg-turbo/jdphuff.c",
- "../externals/libjpeg-turbo/jdpostct.c",
- "../externals/libjpeg-turbo/jdsample.c",
- "../externals/libjpeg-turbo/jerror.c",
- "../externals/libjpeg-turbo/jfdctflt.c",
- "../externals/libjpeg-turbo/jfdctfst.c",
- "../externals/libjpeg-turbo/jfdctint.c",
- "../externals/libjpeg-turbo/jidctflt.c",
- "../externals/libjpeg-turbo/jidctfst.c",
- "../externals/libjpeg-turbo/jidctint.c",
- "../externals/libjpeg-turbo/jidctred.c",
- "../externals/libjpeg-turbo/jmemmgr.c",
- "../externals/libjpeg-turbo/jmemnobs.c",
- "../externals/libjpeg-turbo/jpeg_nbits_table.c",
- "../externals/libjpeg-turbo/jquant1.c",
- "../externals/libjpeg-turbo/jquant2.c",
- "../externals/libjpeg-turbo/jutils.c",
+ sources = libjpeg_sources
+
+ public_deps = [
+ ":libjpeg12",
+ ":libjpeg16",
+ ":libjpeg_headers",
]
if (!is_win && (current_cpu == "arm" || current_cpu == "arm64")) {
- defines += [ "NEON_INTRINSICS" ]
+ defines += [
+ "NEON_INTRINSICS",
+ "WITH_SIMD",
+ ]
sources += [
"../externals/libjpeg-turbo/simd/arm/jccolor-neon.c",
"../externals/libjpeg-turbo/simd/arm/jcgray-neon.c",
@@ -112,8 +186,6 @@
"../externals/libjpeg-turbo/simd/arm/aarch64/jsimd.c",
]
}
- } else {
- sources += [ "../externals/libjpeg-turbo/jsimd_none.c" ]
}
}
}
diff --git a/toolchain/linux_trampolines/IWYU_mapping.imp b/toolchain/linux_trampolines/IWYU_mapping.imp
index dca1b9d..060af94 100644
--- a/toolchain/linux_trampolines/IWYU_mapping.imp
+++ b/toolchain/linux_trampolines/IWYU_mapping.imp
@@ -636,6 +636,7 @@
{ include: ["\"modules/skcms/src/skcms_public.h\"", "private", "\"modules/skcms/skcms.h\"", "public"] },
{ include: ["\"jmorecfg.h\"", "private", "\"jpeglib.h\"", "public"] },
+ { include: ["<jmorecfg.h>", "private", "\"jpeglib.h\"", "public"] },
{ include: ["\"chromeconf.h\"", "private", "\"zlib.h\"", "public"] },
]