RepositoryExternal.mk                                   |    2 
 download.lst                                            |    4 
 external/libjpeg-turbo/StaticLibrary_libjpeg-turbo.mk   |  116 +++---
 external/libjpeg-turbo/UnpackedTarball_libjpeg-turbo.mk |    6 
 external/libjpeg-turbo/include.patch                    |   13 
 external/libjpeg-turbo/jconfig.h                        |    4 
 external/libjpeg-turbo/jconfigint.h                     |    2 
 external/libjpeg-turbo/undefined_references.patch       |  302 +++++++---------
 external/libtiff/ExternalProject_libtiff.mk             |    2 
 9 files changed, 220 insertions(+), 231 deletions(-)

New commits:
commit c9057566e3e5691011156f6332c228060c36ac89
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Wed Apr 2 11:56:10 2025 +0200
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Thu Apr 3 14:11:41 2025 +0200

    libjpeg-turbo: upgrade to 3.1.0
    
    Downloaded from 
https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/3.1.0/libjpeg-turbo-3.1.0.tar.gz
    
    Change-Id: Ic9e8c7e4520073da09abf27866aa3cff0b6a0c63
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183617
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index 6dddc1c92d38..8b420bb591b9 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -430,7 +430,7 @@ else
 
 define gb_LinkTarget__use_libjpeg
 $(call gb_LinkTarget_set_include,$(1),\
-       -I$(gb_UnpackedTarball_workdir)/libjpeg-turbo \
+       -I$(gb_UnpackedTarball_workdir)/libjpeg-turbo/src \
        $$(INCLUDE) \
 )
 $(call gb_LinkTarget_use_static_libraries,$(1),libjpeg-turbo)
diff --git a/download.lst b/download.lst
index 0a35370f565f..abc10457584f 100644
--- a/download.lst
+++ b/download.lst
@@ -389,8 +389,8 @@ JFREEREPORT_SAC_TARBALL := 
39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-LIBJPEG_TURBO_SHA256SUM := 
99130559e7d62e8d695f2c0eaeef912c5828d5b84a0537dcb24c9678c9d5b76b
-LIBJPEG_TURBO_TARBALL := libjpeg-turbo-3.0.4.tar.gz
+LIBJPEG_TURBO_SHA256SUM := 
9564c72b1dfd1d6fe6274c5f95a8d989b59854575d4bbee44ade7bc17aa9bc93
+LIBJPEG_TURBO_TARBALL := libjpeg-turbo-3.1.0.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
diff --git a/external/libjpeg-turbo/StaticLibrary_libjpeg-turbo.mk 
b/external/libjpeg-turbo/StaticLibrary_libjpeg-turbo.mk
index 8607a824ab23..f0482b6e9d7e 100644
--- a/external/libjpeg-turbo/StaticLibrary_libjpeg-turbo.mk
+++ b/external/libjpeg-turbo/StaticLibrary_libjpeg-turbo.mk
@@ -37,64 +37,64 @@ endif
 endif
 
 $(eval $(call gb_StaticLibrary_add_generated_cobjects,libjpeg-turbo,\
-    UnpackedTarball/libjpeg-turbo/jaricom \
-    UnpackedTarball/libjpeg-turbo/jcapimin \
-    UnpackedTarball/libjpeg-turbo/jcapistd \
-    UnpackedTarball/libjpeg-turbo/jcarith \
-    UnpackedTarball/libjpeg-turbo/jccoefct \
-    UnpackedTarball/libjpeg-turbo/jccolor \
-    UnpackedTarball/libjpeg-turbo/jcdctmgr \
-    UnpackedTarball/libjpeg-turbo/jcdiffct \
-    UnpackedTarball/libjpeg-turbo/jchuff \
-    UnpackedTarball/libjpeg-turbo/jcicc \
-    UnpackedTarball/libjpeg-turbo/jcinit \
-    UnpackedTarball/libjpeg-turbo/jclhuff \
-    UnpackedTarball/libjpeg-turbo/jclossls \
-    UnpackedTarball/libjpeg-turbo/jcmainct \
-    UnpackedTarball/libjpeg-turbo/jcmarker \
-    UnpackedTarball/libjpeg-turbo/jcmaster \
-    UnpackedTarball/libjpeg-turbo/jcomapi \
-    UnpackedTarball/libjpeg-turbo/jcparam \
-    UnpackedTarball/libjpeg-turbo/jcphuff \
-    UnpackedTarball/libjpeg-turbo/jcprepct \
-    UnpackedTarball/libjpeg-turbo/jcsample \
-    UnpackedTarball/libjpeg-turbo/jctrans \
-    UnpackedTarball/libjpeg-turbo/jdapimin \
-    UnpackedTarball/libjpeg-turbo/jdapistd \
-    UnpackedTarball/libjpeg-turbo/jdarith \
-    UnpackedTarball/libjpeg-turbo/jdatadst \
-    UnpackedTarball/libjpeg-turbo/jdatasrc \
-    UnpackedTarball/libjpeg-turbo/jdcoefct \
-    UnpackedTarball/libjpeg-turbo/jdcolor \
-    UnpackedTarball/libjpeg-turbo/jddctmgr \
-    UnpackedTarball/libjpeg-turbo/jddiffct \
-    UnpackedTarball/libjpeg-turbo/jdhuff \
-    UnpackedTarball/libjpeg-turbo/jdicc \
-    UnpackedTarball/libjpeg-turbo/jdinput \
-    UnpackedTarball/libjpeg-turbo/jdlhuff \
-    UnpackedTarball/libjpeg-turbo/jdlossls \
-    UnpackedTarball/libjpeg-turbo/jdmainct \
-    UnpackedTarball/libjpeg-turbo/jdmarker \
-    UnpackedTarball/libjpeg-turbo/jdmaster \
-    UnpackedTarball/libjpeg-turbo/jdmerge \
-    UnpackedTarball/libjpeg-turbo/jdphuff \
-    UnpackedTarball/libjpeg-turbo/jdpostct \
-    UnpackedTarball/libjpeg-turbo/jdsample \
-    UnpackedTarball/libjpeg-turbo/jdtrans \
-    UnpackedTarball/libjpeg-turbo/jerror \
-    UnpackedTarball/libjpeg-turbo/jfdctflt \
-    UnpackedTarball/libjpeg-turbo/jfdctfst \
-    UnpackedTarball/libjpeg-turbo/jfdctint \
-    UnpackedTarball/libjpeg-turbo/jidctflt \
-    UnpackedTarball/libjpeg-turbo/jidctfst \
-    UnpackedTarball/libjpeg-turbo/jidctint \
-    UnpackedTarball/libjpeg-turbo/jidctred \
-    UnpackedTarball/libjpeg-turbo/jmemmgr \
-    UnpackedTarball/libjpeg-turbo/jmemnobs \
-    UnpackedTarball/libjpeg-turbo/jpeg_nbits \
-    UnpackedTarball/libjpeg-turbo/jquant1 \
-    UnpackedTarball/libjpeg-turbo/jquant2 \
-    UnpackedTarball/libjpeg-turbo/jutils \
+    UnpackedTarball/libjpeg-turbo/src/jaricom \
+    UnpackedTarball/libjpeg-turbo/src/jcapimin \
+    UnpackedTarball/libjpeg-turbo/src/jcapistd \
+    UnpackedTarball/libjpeg-turbo/src/jcarith \
+    UnpackedTarball/libjpeg-turbo/src/jccoefct \
+    UnpackedTarball/libjpeg-turbo/src/jccolor \
+    UnpackedTarball/libjpeg-turbo/src/jcdctmgr \
+    UnpackedTarball/libjpeg-turbo/src/jcdiffct \
+    UnpackedTarball/libjpeg-turbo/src/jchuff \
+    UnpackedTarball/libjpeg-turbo/src/jcicc \
+    UnpackedTarball/libjpeg-turbo/src/jcinit \
+    UnpackedTarball/libjpeg-turbo/src/jclhuff \
+    UnpackedTarball/libjpeg-turbo/src/jclossls \
+    UnpackedTarball/libjpeg-turbo/src/jcmainct \
+    UnpackedTarball/libjpeg-turbo/src/jcmarker \
+    UnpackedTarball/libjpeg-turbo/src/jcmaster \
+    UnpackedTarball/libjpeg-turbo/src/jcomapi \
+    UnpackedTarball/libjpeg-turbo/src/jcparam \
+    UnpackedTarball/libjpeg-turbo/src/jcphuff \
+    UnpackedTarball/libjpeg-turbo/src/jcprepct \
+    UnpackedTarball/libjpeg-turbo/src/jcsample \
+    UnpackedTarball/libjpeg-turbo/src/jctrans \
+    UnpackedTarball/libjpeg-turbo/src/jdapimin \
+    UnpackedTarball/libjpeg-turbo/src/jdapistd \
+    UnpackedTarball/libjpeg-turbo/src/jdarith \
+    UnpackedTarball/libjpeg-turbo/src/jdatadst \
+    UnpackedTarball/libjpeg-turbo/src/jdatasrc \
+    UnpackedTarball/libjpeg-turbo/src/jdcoefct \
+    UnpackedTarball/libjpeg-turbo/src/jdcolor \
+    UnpackedTarball/libjpeg-turbo/src/jddctmgr \
+    UnpackedTarball/libjpeg-turbo/src/jddiffct \
+    UnpackedTarball/libjpeg-turbo/src/jdhuff \
+    UnpackedTarball/libjpeg-turbo/src/jdicc \
+    UnpackedTarball/libjpeg-turbo/src/jdinput \
+    UnpackedTarball/libjpeg-turbo/src/jdlhuff \
+    UnpackedTarball/libjpeg-turbo/src/jdlossls \
+    UnpackedTarball/libjpeg-turbo/src/jdmainct \
+    UnpackedTarball/libjpeg-turbo/src/jdmarker \
+    UnpackedTarball/libjpeg-turbo/src/jdmaster \
+    UnpackedTarball/libjpeg-turbo/src/jdmerge \
+    UnpackedTarball/libjpeg-turbo/src/jdphuff \
+    UnpackedTarball/libjpeg-turbo/src/jdpostct \
+    UnpackedTarball/libjpeg-turbo/src/jdsample \
+    UnpackedTarball/libjpeg-turbo/src/jdtrans \
+    UnpackedTarball/libjpeg-turbo/src/jerror \
+    UnpackedTarball/libjpeg-turbo/src/jfdctflt \
+    UnpackedTarball/libjpeg-turbo/src/jfdctfst \
+    UnpackedTarball/libjpeg-turbo/src/jfdctint \
+    UnpackedTarball/libjpeg-turbo/src/jidctflt \
+    UnpackedTarball/libjpeg-turbo/src/jidctfst \
+    UnpackedTarball/libjpeg-turbo/src/jidctint \
+    UnpackedTarball/libjpeg-turbo/src/jidctred \
+    UnpackedTarball/libjpeg-turbo/src/jmemmgr \
+    UnpackedTarball/libjpeg-turbo/src/jmemnobs \
+    UnpackedTarball/libjpeg-turbo/src/jpeg_nbits \
+    UnpackedTarball/libjpeg-turbo/src/jquant1 \
+    UnpackedTarball/libjpeg-turbo/src/jquant2 \
+    UnpackedTarball/libjpeg-turbo/src/jutils \
 ))
 
 ifneq ($(NASM),)
diff --git a/external/libjpeg-turbo/UnpackedTarball_libjpeg-turbo.mk 
b/external/libjpeg-turbo/UnpackedTarball_libjpeg-turbo.mk
index e24aaa58307f..ba814e476444 100644
--- a/external/libjpeg-turbo/UnpackedTarball_libjpeg-turbo.mk
+++ b/external/libjpeg-turbo/UnpackedTarball_libjpeg-turbo.mk
@@ -22,8 +22,8 @@ $(eval $(call gb_UnpackedTarball_add_patches,libjpeg-turbo, \
 # cmake -DENABLE_STATIC:BOOL=ON -DENABLE_SHARED:BOOL=NO -DWITH_JAVA:BOOL=OFF 
-DWITH_TURBOJPEG:BOOL=OFF -DWITH_SIMD:BOOL=ON
 # and then tweaking
 
-$(eval $(call 
gb_UnpackedTarball_add_file,libjpeg-turbo,jconfigint.h,external/libjpeg-turbo/jconfigint.h))
-$(eval $(call 
gb_UnpackedTarball_add_file,libjpeg-turbo,jconfig.h,external/libjpeg-turbo/jconfig.h))
-$(eval $(call 
gb_UnpackedTarball_add_file,libjpeg-turbo,jversion.h,external/libjpeg-turbo/jversion.h))
+$(eval $(call 
gb_UnpackedTarball_add_file,libjpeg-turbo,src/jconfigint.h,external/libjpeg-turbo/jconfigint.h))
+$(eval $(call 
gb_UnpackedTarball_add_file,libjpeg-turbo,src/jconfig.h,external/libjpeg-turbo/jconfig.h))
+$(eval $(call 
gb_UnpackedTarball_add_file,libjpeg-turbo,src/jversion.h,external/libjpeg-turbo/jversion.h))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libjpeg-turbo/include.patch 
b/external/libjpeg-turbo/include.patch
index 0a36075ee7fc..c66b56074bd7 100644
--- a/external/libjpeg-turbo/include.patch
+++ b/external/libjpeg-turbo/include.patch
@@ -1,12 +1,11 @@
---- jpeglib.h
-+++ jpeglib.h
-@@ -31,6 +31,9 @@
+--- src/jpeglib.h
++++ src/jpeglib.h
+@@ -43,6 +43,7 @@
+ #endif
  #include "jmorecfg.h"           /* seldom changed options */
  
- 
 +#include <stdio.h>
-+
-+
+ 
  #ifdef __cplusplus
  #ifndef DONT_USE_EXTERN_C
- extern "C" {
+
diff --git a/external/libjpeg-turbo/jconfig.h b/external/libjpeg-turbo/jconfig.h
index 3112fa0f9e5b..aa7e1607985e 100644
--- a/external/libjpeg-turbo/jconfig.h
+++ b/external/libjpeg-turbo/jconfig.h
@@ -4,10 +4,10 @@
 #define JPEG_LIB_VERSION  62
 
 /* libjpeg-turbo version */
-#define LIBJPEG_TURBO_VERSION  3.0.4
+#define LIBJPEG_TURBO_VERSION  3.1.0
 
 /* libjpeg-turbo version in integer form */
-#define LIBJPEG_TURBO_VERSION_NUMBER  3000004
+#define LIBJPEG_TURBO_VERSION_NUMBER 3001000
 
 /* Support arithmetic encoding */
 #define C_ARITH_CODING_SUPPORTED 1
diff --git a/external/libjpeg-turbo/jconfigint.h 
b/external/libjpeg-turbo/jconfigint.h
index 03370914d3bd..4450f0eaa44e 100644
--- a/external/libjpeg-turbo/jconfigint.h
+++ b/external/libjpeg-turbo/jconfigint.h
@@ -24,7 +24,7 @@
 #define PACKAGE_NAME  "libjpeg-turbo"
 
 /* Version number of package */
-#define VERSION  "3.0.4"
+#define VERSION  "3.1.0"
 
 /* The size of `size_t', as computed by sizeof. */
 /* #undef SIZEOF_SIZE_T */
diff --git a/external/libjpeg-turbo/undefined_references.patch 
b/external/libjpeg-turbo/undefined_references.patch
index e89653149e7f..a98b028148b6 100644
--- a/external/libjpeg-turbo/undefined_references.patch
+++ b/external/libjpeg-turbo/undefined_references.patch
@@ -1,46 +1,121 @@
---- jdtrans.c  2025-04-01 12:27:27.138349027 +0200
-+++ jdtrans.c  2025-04-01 12:27:31.470329353 +0200
-@@ -131,7 +131,7 @@
- 
-   /* Always get a full-image coefficient buffer. */
-   if (cinfo->data_precision == 12)
--    j12init_d_coef_controller(cinfo, TRUE);
-+    jinit_d_coef_controller(cinfo, TRUE);
+--- src/jcinit.c       2025-04-01 11:05:08.743205764 +0200
++++ src/jcinit.c       2025-04-01 11:05:43.475045983 +0200
+@@ -45,15 +45,15 @@
+       jinit_downsampler(cinfo);
+       jinit_c_prep_controller(cinfo, FALSE /* never need full buffer here */);
+     } else if (cinfo->data_precision <= 12) {
+-      j12init_color_converter(cinfo);
+-      j12init_downsampler(cinfo);
+-      j12init_c_prep_controller(cinfo,
++      jinit_color_converter(cinfo);
++      jinit_downsampler(cinfo);
++      jinit_c_prep_controller(cinfo,
+                                 FALSE /* never need full buffer here */);
+     } else {
+ #ifdef C_LOSSLESS_SUPPORTED
+-      j16init_color_converter(cinfo);
+-      j16init_downsampler(cinfo);
+-      j16init_c_prep_controller(cinfo,
++      jinit_color_converter(cinfo);
++      jinit_downsampler(cinfo);
++      jinit_c_prep_controller(cinfo,
+                                 FALSE /* never need full buffer here */);
+ #else
+       ERREXIT1(cinfo, JERR_BAD_PRECISION, cinfo->data_precision);
+@@ -67,9 +67,9 @@
+     if (cinfo->data_precision <= 8)
+       jinit_lossless_compressor(cinfo);
+     else if (cinfo->data_precision <= 12)
+-      j12init_lossless_compressor(cinfo);
++      jinit_lossless_compressor(cinfo);
+     else
+-      j16init_lossless_compressor(cinfo);
++      jinit_lossless_compressor(cinfo);
+     /* Entropy encoding: either Huffman or arithmetic coding. */
+     if (cinfo->arith_code) {
+       ERREXIT(cinfo, JERR_ARITH_NOTIMPL);
+@@ -82,10 +82,10 @@
+       jinit_c_diff_controller(cinfo, (boolean)(cinfo->num_scans > 1 ||
+                                                cinfo->optimize_coding));
+     else if (cinfo->data_precision <= 12)
+-      j12init_c_diff_controller(cinfo, (boolean)(cinfo->num_scans > 1 ||
++      jinit_c_diff_controller(cinfo, (boolean)(cinfo->num_scans > 1 ||
+                                                  cinfo->optimize_coding));
+     else
+-      j16init_c_diff_controller(cinfo, (boolean)(cinfo->num_scans > 1 ||
++      jinit_c_diff_controller(cinfo, (boolean)(cinfo->num_scans > 1 ||
+                                                  cinfo->optimize_coding));
+ #else
+     ERREXIT(cinfo, JERR_NOT_COMPILED);
+@@ -95,7 +95,7 @@
+     if (cinfo->data_precision == 8)
+       jinit_forward_dct(cinfo);
+     else if (cinfo->data_precision == 12)
+-      j12init_forward_dct(cinfo);
++      jinit_forward_dct(cinfo);
+     else
+       ERREXIT1(cinfo, JERR_BAD_PRECISION, cinfo->data_precision);
+     /* Entropy encoding: either Huffman or arithmetic coding. */
+@@ -118,7 +118,7 @@
+
+     /* Need a full-image coefficient buffer in any multi-pass mode. */
+     if (cinfo->data_precision == 12)
+-      j12init_c_coef_controller(cinfo, (boolean)(cinfo->num_scans > 1 ||
++      jinit_c_coef_controller(cinfo, (boolean)(cinfo->num_scans > 1 ||
+                                                  cinfo->optimize_coding));
+     else
+       jinit_c_coef_controller(cinfo, (boolean)(cinfo->num_scans > 1 ||
+@@ -128,10 +128,10 @@
+   if (cinfo->data_precision <= 8)
+     jinit_c_main_controller(cinfo, FALSE /* never need full buffer here */);
+   else if (cinfo->data_precision <= 12)
+-    j12init_c_main_controller(cinfo, FALSE /* never need full buffer here */);
++    jinit_c_main_controller(cinfo, FALSE /* never need full buffer here */);
    else
-     jinit_d_coef_controller(cinfo, TRUE);
- 
---- jdmaster.c 2025-04-01 12:22:54.075591612 +0200
-+++ jdmaster.c 2025-04-01 12:23:23.739456350 +0200
-@@ -573,7 +573,7 @@
-       if (cinfo->data_precision == 16)
-         ERREXIT1(cinfo, JERR_BAD_PRECISION, cinfo->data_precision);
+ #ifdef C_LOSSLESS_SUPPORTED
+-    j16init_c_main_controller(cinfo, FALSE /* never need full buffer here */);
++    jinit_c_main_controller(cinfo, FALSE /* never need full buffer here */);
+ #else
+     ERREXIT1(cinfo, JERR_BAD_PRECISION, cinfo->data_precision);
+ #endif
+--- src/jdmaster.c     2025-04-01 11:05:15.259175858 +0200
++++ src/jdmaster.c     2025-04-01 11:09:56.525858262 +0200
+@@ -575,7 +575,7 @@
+       if (cinfo->data_precision == 8)
+         jinit_1pass_quantizer(cinfo);
        else if (cinfo->data_precision == 12)
 -        j12init_1pass_quantizer(cinfo);
 +        jinit_1pass_quantizer(cinfo);
        else
-         jinit_1pass_quantizer(cinfo);
-       master->quantizer_1pass = cinfo->cquantize;
-@@ -588,7 +588,7 @@
-       if (cinfo->data_precision == 16)
          ERREXIT1(cinfo, JERR_BAD_PRECISION, cinfo->data_precision);
+       master->quantizer_1pass = cinfo->cquantize;
+@@ -590,7 +590,7 @@
+       if (cinfo->data_precision == 8)
+         jinit_2pass_quantizer(cinfo);
        else if (cinfo->data_precision == 12)
 -        j12init_2pass_quantizer(cinfo);
 +        jinit_2pass_quantizer(cinfo);
        else
-         jinit_2pass_quantizer(cinfo);
-       master->quantizer_2pass = cinfo->cquantize;
-@@ -608,7 +608,7 @@
-       if (cinfo->data_precision == 16)
          ERREXIT1(cinfo, JERR_BAD_PRECISION, cinfo->data_precision);
+       master->quantizer_2pass = cinfo->cquantize;
+@@ -610,7 +610,7 @@
+       if (cinfo->data_precision == 8)
+         jinit_merged_upsampler(cinfo); /* does color conversion too */
        else if (cinfo->data_precision == 12)
 -        j12init_merged_upsampler(cinfo); /* does color conversion too */
 +        jinit_merged_upsampler(cinfo); /* does color conversion too */
        else
-         jinit_merged_upsampler(cinfo); /* does color conversion too */
+         ERREXIT1(cinfo, JERR_BAD_PRECISION, cinfo->data_precision);
  #else
-@@ -617,14 +617,14 @@
-     } else {
-       if (cinfo->data_precision == 16) {
+@@ -621,12 +621,12 @@
+         jinit_color_deconverter(cinfo);
+         jinit_upsampler(cinfo);
+       } else if (cinfo->data_precision <= 12) {
+-        j12init_color_deconverter(cinfo);
+-        j12init_upsampler(cinfo);
++        jinit_color_deconverter(cinfo);
++        jinit_upsampler(cinfo);
+       } else {
  #ifdef D_LOSSLESS_SUPPORTED
 -        j16init_color_deconverter(cinfo);
 -        j16init_upsampler(cinfo);
@@ -49,63 +124,53 @@
  #else
          ERREXIT1(cinfo, JERR_BAD_PRECISION, cinfo->data_precision);
  #endif
-       } else if (cinfo->data_precision == 12) {
--        j12init_color_deconverter(cinfo);
--        j12init_upsampler(cinfo);
-+        jinit_color_deconverter(cinfo);
-+        jinit_upsampler(cinfo);
-       } else {
-         jinit_color_deconverter(cinfo);
-         jinit_upsampler(cinfo);
-@@ -632,12 +632,12 @@
-     }
-     if (cinfo->data_precision == 16)
+@@ -635,10 +635,10 @@
+     if (cinfo->data_precision <= 8)
+       jinit_d_post_controller(cinfo, cinfo->enable_2pass_quant);
+     else if (cinfo->data_precision <= 12)
+-      j12init_d_post_controller(cinfo, cinfo->enable_2pass_quant);
++      jinit_d_post_controller(cinfo, cinfo->enable_2pass_quant);
+     else
  #ifdef D_LOSSLESS_SUPPORTED
 -      j16init_d_post_controller(cinfo, cinfo->enable_2pass_quant);
 +      jinit_d_post_controller(cinfo, cinfo->enable_2pass_quant);
  #else
        ERREXIT1(cinfo, JERR_BAD_PRECISION, cinfo->data_precision);
  #endif
-     else if (cinfo->data_precision == 12)
--      j12init_d_post_controller(cinfo, cinfo->enable_2pass_quant);
-+      jinit_d_post_controller(cinfo, cinfo->enable_2pass_quant);
-     else
-       jinit_d_post_controller(cinfo, cinfo->enable_2pass_quant);
-   }
-@@ -648,9 +648,9 @@
-      * scaling
-      */
-     if (cinfo->data_precision == 16)
--      j16init_lossless_decompressor(cinfo);
-+      jinit_lossless_decompressor(cinfo);
-     else if (cinfo->data_precision == 12)
+@@ -652,9 +652,9 @@
+     if (cinfo->data_precision <= 8)
+       jinit_lossless_decompressor(cinfo);
+     else if (cinfo->data_precision <= 12)
 -      j12init_lossless_decompressor(cinfo);
 +      jinit_lossless_decompressor(cinfo);
      else
-       jinit_lossless_decompressor(cinfo);
+-      j16init_lossless_decompressor(cinfo);
++      jinit_lossless_decompressor(cinfo);
      /* Entropy decoding: either Huffman or arithmetic coding. */
-@@ -664,9 +664,9 @@
-     use_c_buffer = cinfo->inputctl->has_multiple_scans ||
-                    cinfo->buffered_image;
-     if (cinfo->data_precision == 16)
--      j16init_d_diff_controller(cinfo, use_c_buffer);
-+      jinit_d_diff_controller(cinfo, use_c_buffer);
-     else if (cinfo->data_precision == 12)
+     if (cinfo->arith_code) {
+       ERREXIT(cinfo, JERR_ARITH_NOTIMPL);
+@@ -668,9 +668,9 @@
+     if (cinfo->data_precision <= 8)
+       jinit_d_diff_controller(cinfo, use_c_buffer);
+     else if (cinfo->data_precision <= 12)
 -      j12init_d_diff_controller(cinfo, use_c_buffer);
 +      jinit_d_diff_controller(cinfo, use_c_buffer);
      else
-       jinit_d_diff_controller(cinfo, use_c_buffer);
+-      j16init_d_diff_controller(cinfo, use_c_buffer);
++      jinit_d_diff_controller(cinfo, use_c_buffer);
  #else
-@@ -677,7 +677,7 @@
-       ERREXIT1(cinfo, JERR_BAD_PRECISION, cinfo->data_precision);
-     /* Inverse DCT */
-     if (cinfo->data_precision == 12)
+     ERREXIT(cinfo, JERR_NOT_COMPILED);
+ #endif
+@@ -679,7 +679,7 @@
+     if (cinfo->data_precision == 8)
+       jinit_inverse_dct(cinfo);
+     else if (cinfo->data_precision == 12)
 -      j12init_inverse_dct(cinfo);
 +      jinit_inverse_dct(cinfo);
      else
-       jinit_inverse_dct(cinfo);
+       ERREXIT1(cinfo, JERR_BAD_PRECISION, cinfo->data_precision);
      /* Entropy decoding: either Huffman or arithmetic coding. */
-@@ -702,7 +702,7 @@
+@@ -704,7 +704,7 @@
      use_c_buffer = cinfo->inputctl->has_multiple_scans ||
                     cinfo->buffered_image;
      if (cinfo->data_precision == 12)
@@ -114,102 +179,27 @@
      else
        jinit_d_coef_controller(cinfo, use_c_buffer);
    }
-@@ -710,13 +710,13 @@
-   if (!cinfo->raw_data_out) {
-     if (cinfo->data_precision == 16)
- #ifdef D_LOSSLESS_SUPPORTED
--      j16init_d_main_controller(cinfo,
-+      jinit_d_main_controller(cinfo,
-                                 FALSE /* never need full buffer here */);
- #else
-       ERREXIT1(cinfo, JERR_BAD_PRECISION, cinfo->data_precision);
- #endif
-     else if (cinfo->data_precision == 12)
+@@ -713,11 +713,11 @@
+     if (cinfo->data_precision <= 8)
+       jinit_d_main_controller(cinfo, FALSE /* never need full buffer here */);
+     else if (cinfo->data_precision <= 12)
 -      j12init_d_main_controller(cinfo,
 +      jinit_d_main_controller(cinfo,
                                  FALSE /* never need full buffer here */);
      else
-       jinit_d_main_controller(cinfo, FALSE /* never need full buffer here */);
---- jcinit.c   2025-04-01 12:25:09.482974771 +0200
-+++ jcinit.c   2025-04-01 12:25:17.158939845 +0200
-@@ -42,17 +42,17 @@
-   if (!cinfo->raw_data_in) {
-     if (cinfo->data_precision == 16) {
- #ifdef C_LOSSLESS_SUPPORTED
--      j16init_color_converter(cinfo);
--      j16init_downsampler(cinfo);
--      j16init_c_prep_controller(cinfo,
-+      jinit_color_converter(cinfo);
-+      jinit_downsampler(cinfo);
-+      jinit_c_prep_controller(cinfo,
+ #ifdef D_LOSSLESS_SUPPORTED
+-      j16init_d_main_controller(cinfo,
++      jinit_d_main_controller(cinfo,
                                  FALSE /* never need full buffer here */);
  #else
        ERREXIT1(cinfo, JERR_BAD_PRECISION, cinfo->data_precision);
- #endif
-     } else if (cinfo->data_precision == 12) {
--      j12init_color_converter(cinfo);
--      j12init_downsampler(cinfo);
--      j12init_c_prep_controller(cinfo,
-+      jinit_color_converter(cinfo);
-+      jinit_downsampler(cinfo);
-+      jinit_c_prep_controller(cinfo,
-                                 FALSE /* never need full buffer here */);
-     } else {
-       jinit_color_converter(cinfo);
-@@ -65,9 +65,9 @@
- #ifdef C_LOSSLESS_SUPPORTED
-     /* Prediction, sample differencing, and point transform */
-     if (cinfo->data_precision == 16)
--      j16init_lossless_compressor(cinfo);
-+      jinit_lossless_compressor(cinfo);
-     else if (cinfo->data_precision == 12)
--      j12init_lossless_compressor(cinfo);
-+      jinit_lossless_compressor(cinfo);
-     else
-       jinit_lossless_compressor(cinfo);
-     /* Entropy encoding: either Huffman or arithmetic coding. */
-@@ -79,10 +79,10 @@
- 
-     /* Need a full-image difference buffer in any multi-pass mode. */
-     if (cinfo->data_precision == 16)
--      j16init_c_diff_controller(cinfo, (boolean)(cinfo->num_scans > 1 ||
-+      jinit_c_diff_controller(cinfo, (boolean)(cinfo->num_scans > 1 ||
-                                                  cinfo->optimize_coding));
-     else if (cinfo->data_precision == 12)
--      j12init_c_diff_controller(cinfo, (boolean)(cinfo->num_scans > 1 ||
-+      jinit_c_diff_controller(cinfo, (boolean)(cinfo->num_scans > 1 ||
-                                                  cinfo->optimize_coding));
-     else
-       jinit_c_diff_controller(cinfo, (boolean)(cinfo->num_scans > 1 ||
-@@ -95,7 +95,7 @@
-       ERREXIT1(cinfo, JERR_BAD_PRECISION, cinfo->data_precision);
-     /* Forward DCT */
-     if (cinfo->data_precision == 12)
--      j12init_forward_dct(cinfo);
-+      jinit_forward_dct(cinfo);
-     else
-       jinit_forward_dct(cinfo);
-     /* Entropy encoding: either Huffman or arithmetic coding. */
-@@ -118,7 +118,7 @@
- 
-     /* Need a full-image coefficient buffer in any multi-pass mode. */
-     if (cinfo->data_precision == 12)
--      j12init_c_coef_controller(cinfo, (boolean)(cinfo->num_scans > 1 ||
-+      jinit_c_coef_controller(cinfo, (boolean)(cinfo->num_scans > 1 ||
-                                                  cinfo->optimize_coding));
-     else
-       jinit_c_coef_controller(cinfo, (boolean)(cinfo->num_scans > 1 ||
-@@ -127,12 +127,12 @@
+--- src/jdtrans.c      2025-04-01 11:20:45.390703693 +0200
++++ src/jdtrans.c      2025-04-01 11:21:02.302620340 +0200
+@@ -131,7 +131,7 @@
  
-   if (cinfo->data_precision == 16)
- #ifdef C_LOSSLESS_SUPPORTED
--    j16init_c_main_controller(cinfo, FALSE /* never need full buffer here */);
-+    jinit_c_main_controller(cinfo, FALSE /* never need full buffer here */);
- #else
-     ERREXIT1(cinfo, JERR_BAD_PRECISION, cinfo->data_precision);
- #endif
-   else if (cinfo->data_precision == 12)
--    j12init_c_main_controller(cinfo, FALSE /* never need full buffer here */);
-+    jinit_c_main_controller(cinfo, FALSE /* never need full buffer here */);
+   /* Always get a full-image coefficient buffer. */
+   if (cinfo->data_precision == 12)
+-    j12init_d_coef_controller(cinfo, TRUE);
++    jinit_d_coef_controller(cinfo, TRUE);
    else
-     jinit_c_main_controller(cinfo, FALSE /* never need full buffer here */);
+     jinit_d_coef_controller(cinfo, TRUE);
diff --git a/external/libtiff/ExternalProject_libtiff.mk 
b/external/libtiff/ExternalProject_libtiff.mk
index e4c98938d255..7783d378bfda 100644
--- a/external/libtiff/ExternalProject_libtiff.mk
+++ b/external/libtiff/ExternalProject_libtiff.mk
@@ -54,7 +54,7 @@ $(call gb_ExternalProject_get_state_target,libtiff,build) :
                        CFLAGS="$(CFLAGS) $(call 
gb_ExternalProject_get_build_flags,libtiff) $(gb_EMSCRIPTEN_CFLAGS)" \
                        $(if 
$(SYSTEM_ZLIB),,--with-zlib-include-dir="$(gb_UnpackedTarball_workdir)/zlib") \
                        $(if 
$(SYSTEM_ZLIB),,--with-zlib-lib-dir="$(gb_StaticLibrary_WORKDIR)") \
-                       $(if 
$(SYSTEM_LIBJPEG),,--with-jpeg-include-dir="$(gb_UnpackedTarball_workdir)/libjpeg-turbo")
 \
+                       $(if 
$(SYSTEM_LIBJPEG),,--with-jpeg-include-dir="$(gb_UnpackedTarball_workdir)/libjpeg-turbo/src")
 \
                        $(if 
$(SYSTEM_LIBJPEG),,--with-jpeg-lib-dir="$(gb_StaticLibrary_WORKDIR)") \
                        $(if 
$(SYSTEM_LIBWEBP),,--with-webp-include-dir="$(gb_UnpackedTarball_workdir)/libwebp/src")
 \
                        $(if $(SYSTEM_LIBWEBP),,$(if $(filter 
WNT,$(OS_FOR_BUILD)),\

Reply via email to