download.lst                                            |    4 
 external/libjpeg-turbo/StaticLibrary_libjpeg-turbo.mk   |   19 -
 external/libjpeg-turbo/UnpackedTarball_libjpeg-turbo.mk |    1 
 external/libjpeg-turbo/jconfig.h                        |    4 
 external/libjpeg-turbo/jconfigint.h                     |    2 
 external/libjpeg-turbo/undefined_references.patch       |  215 ++++++++++++++++
 6 files changed, 227 insertions(+), 18 deletions(-)

New commits:
commit 451a7e9c435f2c76a718995faf52a59fd3a89127
Author:     Xisco Fauli <[email protected]>
AuthorDate: Mon Jan 20 11:52:21 2025 +0100
Commit:     Xisco Fauli <[email protected]>
CommitDate: Wed Apr 2 09:58:39 2025 +0200

    libjpeg-turbo: upgrade to 3.0.4
    
    * Add external/libjpeg-turbo/UnpackedTarball_libjpeg-turbo.mk
    to handle different undefined references errors
    
    Downloaded from 
https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/3.0.4/libjpeg-turbo-3.0.4.tar.gz
    
    Change-Id: Ib915b3e58d16b049cf6403a011da061fbf12a7d7
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180502
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/download.lst b/download.lst
index f8509e1d0183..55970c17a789 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 := 
2fdc3feb6e9deb17adec9bafa3321419aa19f8f4e5dea7bf8486844ca22207bf
-LIBJPEG_TURBO_TARBALL := libjpeg-turbo-2.1.5.1.tar.gz
+LIBJPEG_TURBO_SHA256SUM := 
99130559e7d62e8d695f2c0eaeef912c5828d5b84a0537dcb24c9678c9d5b76b
+LIBJPEG_TURBO_TARBALL := libjpeg-turbo-3.0.4.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 9acf49095d71..39bdac3bb246 100644
--- a/external/libjpeg-turbo/StaticLibrary_libjpeg-turbo.mk
+++ b/external/libjpeg-turbo/StaticLibrary_libjpeg-turbo.mk
@@ -44,9 +44,12 @@ $(eval $(call 
gb_StaticLibrary_add_generated_cobjects,libjpeg-turbo,\
     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 \
@@ -64,9 +67,12 @@ $(eval $(call 
gb_StaticLibrary_add_generated_cobjects,libjpeg-turbo,\
     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 \
@@ -194,20 +200,7 @@ $(eval $(call 
gb_StaticLibrary_add_generated_nasmobjects,libjpeg-turbo,\
     UnpackedTarball/libjpeg-turbo/simd/i386/jquanti-avx2.asm \
 ))
 
-else
-
-$(eval $(call gb_StaticLibrary_add_generated_cobjects,libjpeg-turbo,\
-    UnpackedTarball/libjpeg-turbo/jsimd_none \
-))
-
 endif
-
-else
-
-$(eval $(call gb_StaticLibrary_add_generated_cobjects,libjpeg-turbo,\
-    UnpackedTarball/libjpeg-turbo/jsimd_none \
-))
-
 endif
 
 
diff --git a/external/libjpeg-turbo/UnpackedTarball_libjpeg-turbo.mk 
b/external/libjpeg-turbo/UnpackedTarball_libjpeg-turbo.mk
index 5c88c8756c28..e24aaa58307f 100644
--- a/external/libjpeg-turbo/UnpackedTarball_libjpeg-turbo.mk
+++ b/external/libjpeg-turbo/UnpackedTarball_libjpeg-turbo.mk
@@ -15,6 +15,7 @@ $(eval $(call 
gb_UnpackedTarball_set_patchlevel,libjpeg-turbo,0))
 
 $(eval $(call gb_UnpackedTarball_add_patches,libjpeg-turbo, \
     external/libjpeg-turbo/include.patch \
+    external/libjpeg-turbo/undefined_references.patch \
 ))
 
 # jconfigint.h and jconfig.h generated via
diff --git a/external/libjpeg-turbo/jconfig.h b/external/libjpeg-turbo/jconfig.h
index 3855ccec9cfd..3112fa0f9e5b 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  2.1.5.1
+#define LIBJPEG_TURBO_VERSION  3.0.4
 
 /* libjpeg-turbo version in integer form */
-#define LIBJPEG_TURBO_VERSION_NUMBER  2001005
+#define LIBJPEG_TURBO_VERSION_NUMBER  3000004
 
 /* Support arithmetic encoding */
 #define C_ARITH_CODING_SUPPORTED 1
diff --git a/external/libjpeg-turbo/jconfigint.h 
b/external/libjpeg-turbo/jconfigint.h
index b7644cbac90e..2aa841a17656 100644
--- a/external/libjpeg-turbo/jconfigint.h
+++ b/external/libjpeg-turbo/jconfigint.h
@@ -19,7 +19,7 @@
 #define PACKAGE_NAME  "libjpeg-turbo"
 
 /* Version number of package */
-#define VERSION  "2.1.5.1"
+#define VERSION  "3.0.4"
 
 /* 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
new file mode 100644
index 000000000000..e89653149e7f
--- /dev/null
+++ b/external/libjpeg-turbo/undefined_references.patch
@@ -0,0 +1,215 @@
+--- 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);
+   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);
+       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);
+       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);
+       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 */
+ #else
+@@ -617,14 +617,14 @@
+     } else {
+       if (cinfo->data_precision == 16) {
+ #ifdef D_LOSSLESS_SUPPORTED
+-        j16init_color_deconverter(cinfo);
+-        j16init_upsampler(cinfo);
++        jinit_color_deconverter(cinfo);
++        jinit_upsampler(cinfo);
+ #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)
+ #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)
+-      j12init_lossless_decompressor(cinfo);
++      jinit_lossless_decompressor(cinfo);
+     else
+       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)
+-      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);
+ #else
+@@ -677,7 +677,7 @@
+       ERREXIT1(cinfo, JERR_BAD_PRECISION, cinfo->data_precision);
+     /* Inverse DCT */
+     if (cinfo->data_precision == 12)
+-      j12init_inverse_dct(cinfo);
++      jinit_inverse_dct(cinfo);
+     else
+       jinit_inverse_dct(cinfo);
+     /* Entropy decoding: either Huffman or arithmetic coding. */
+@@ -702,7 +702,7 @@
+     use_c_buffer = cinfo->inputctl->has_multiple_scans ||
+                    cinfo->buffered_image;
+     if (cinfo->data_precision == 12)
+-      j12init_d_coef_controller(cinfo, use_c_buffer);
++      jinit_d_coef_controller(cinfo, use_c_buffer);
+     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)
+-      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,
+                                 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 @@
+ 
+   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 */);
+   else
+     jinit_c_main_controller(cinfo, FALSE /* never need full buffer here */);

Reply via email to