From: Bernd Kuhls <bernd@kuhls.net>
To: buildroot@buildroot.org
Cc: Murat Demirten <mdemirten@yh.com.tr>
Subject: [Buildroot] [PATCH v2 2/2] package/jpeg-turbo: fix libm linking issue
Date: Sun, 26 Jul 2026 23:22:48 +0200 [thread overview]
Message-ID: <20260726212249.155140-2-bernd@kuhls.net> (raw)
In-Reply-To: <20260726212249.155140-1-bernd@kuhls.net>
Buildroot commit bb38f6f7208497cf5a4df922e833492001170111 bumped the
package to 3.2.0. This version first included upstream commit
https://github.com/libjpeg-turbo/libjpeg-turbo/commit/ed00e0f4b39291e954958b96a8d941ca4a9e03a2
which removed the dependency to libm causing build errors detected by
the autobuilders.
Disabling the build of tests by the previous patch of this series is not
enough because the build will fail on other tools like
[ 98%] Linking C executable djpeg-static
/home/bernd/buildroot/output/per-package/jpeg-turbo/host/bin/../lib/gcc/i686-buildroot-linux-gnu/15.3.0/../../../../i686-buildroot-linux-gnu/bin/ld:
src/spng/CMakeFiles/spng-static.dir/spng.c.o: in function
`spng_decode_image':
spng.c:(.text+0x4c62): undefined reference to `__fpclassifyf'
Add upstream commit to fix the problem.
Fixes:
https://autobuild.buildroot.net/results/981/98114d4ea7afe62bb4cef934a06bf289d863ad3f/
Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
---
v2: add upstream commit instead of -lm
Gitlab pipelines passed:
https://gitlab.com/bkuhls/buildroot/-/commits/42f55ce3d2bd3c15b6e8f865676bc17899cbe79c
...-Really-remove-gamma-correction-code.patch | 113 ++++++++++++++++++
1 file changed, 113 insertions(+)
create mode 100644 package/jpeg-turbo/0001-libspng-Really-remove-gamma-correction-code.patch
diff --git a/package/jpeg-turbo/0001-libspng-Really-remove-gamma-correction-code.patch b/package/jpeg-turbo/0001-libspng-Really-remove-gamma-correction-code.patch
new file mode 100644
index 0000000000..594e28f65c
--- /dev/null
+++ b/package/jpeg-turbo/0001-libspng-Really-remove-gamma-correction-code.patch
@@ -0,0 +1,113 @@
+From 0da22762971551462cfad8f0b11cfb037472a4e8 Mon Sep 17 00:00:00 2001
+From: DRC <information@libjpeg-turbo.org>
+Date: Thu, 16 Jul 2026 12:09:54 -0400
+Subject: [PATCH] libspng: Really remove gamma correction code
+
+We really don't use it, and fpclassify() apparently introduces yet
+another libm dependency in some cases (although I can't reproduce that.)
+
+Fixes #904
+
+Upstream: https://github.com/libjpeg-turbo/libjpeg-turbo/commit/0da22762971551462cfad8f0b11cfb037472a4e8
+
+Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
+---
+ src/spng/spng.c | 20 ++++++++++++++++++--
+ 1 file changed, 18 insertions(+), 2 deletions(-)
+
+diff --git a/src/spng/spng.c b/src/spng/spng.c
+index 06249d68..aeadb67e 100644
+--- a/src/spng/spng.c
++++ b/src/spng/spng.c
+@@ -353,9 +353,12 @@ struct spng_ctx
+ int widest_pass;
+ int last_pass; /* last non-empty pass */
+
++#if 0 /* libjpeg-turbo: Eliminate unused gamma correction code, which
++ introduces an unwanted libm dependency */
+ uint16_t *gamma_lut; /* points to either _lut8 or _lut16 */
+ uint16_t *gamma_lut16;
+ uint16_t gamma_lut8[256];
++#endif
+ unsigned char trns_px[8];
+ union spng__decode_plte decode_plte;
+ struct spng_sbit decode_sb;
+@@ -1742,6 +1745,8 @@ static uint16_t sample_to_target(uint16_t sample, unsigned bit_depth, unsigned s
+ return sample;
+ }
+
++#if 0 /* libjpeg-turbo: Eliminate unused gamma correction code, which
++ introduces an unwanted libm dependency */
+ static inline void gamma_correct_row(unsigned char *row, uint32_t pixels, int fmt, const uint16_t *gamma_lut)
+ {
+ uint32_t i;
+@@ -1785,6 +1790,7 @@ static inline void gamma_correct_row(unsigned char *row, uint32_t pixels, int fm
+ }
+ }
+ }
++#endif
+
+ /* Apply transparency to output row */
+ static inline void trns_row(unsigned char *row,
+@@ -3302,7 +3308,10 @@ int spng_decode_scanline(spng_ctx *ctx, void *out, size_t len)
+ const struct spng_subimage *sub = ctx->subimage;
+
+ const struct spng_ihdr *ihdr = &ctx->ihdr;
++#if 0 /* libjpeg-turbo: Eliminate unused gamma correction code, which
++ introduces an unwanted libm dependency */
+ const uint16_t *gamma_lut = ctx->gamma_lut;
++#endif
+ unsigned char *trns_px = ctx->trns_px;
+ const struct spng_sbit *sb = &ctx->decode_sb;
+ const struct spng_plte_entry *plte = ctx->decode_plte.rgba;
+@@ -3529,7 +3538,10 @@ int spng_decode_scanline(spng_ctx *ctx, void *out, size_t len)
+
+ if(f.do_scaling) scale_row(out, width, fmt, processing_depth, sb);
+
++#if 0 /* libjpeg-turbo: Eliminate unused gamma correction code, which
++ introduces an unwanted libm dependency */
+ if(f.apply_gamma) gamma_correct_row(out, width, fmt, gamma_lut);
++#endif
+
+ /* The previous scanline is always defiltered */
+ void *t = ctx->prev_scanline;
+@@ -3768,6 +3780,8 @@ int spng_decode_image(spng_ctx *ctx, void *out, size_t len, int fmt, int flags)
+
+ /*if(f.same_layout && !flags && !f.interlaced) f.zerocopy = 1;*/
+
++#if 0 /* libjpeg-turbo: Eliminate unused gamma correction code, which
++ introduces an unwanted libm dependency */
+ uint16_t *gamma_lut = NULL;
+
+ if(f.apply_gamma)
+@@ -3807,15 +3821,14 @@ int spng_decode_image(spng_ctx *ctx, void *out, size_t len, int fmt, int flags)
+ unsigned i;
+ for(i=0; i < lut_entries; i++)
+ {
+-#if 0 /* libjpeg-turbo: Eliminate libm dependency */
+ float c = pow((float)i / max, exponent) * max;
+-#endif
+ float c = 0.0f;
+ if(c > max) c = max;
+
+ gamma_lut[i] = (uint16_t)c;
+ }
+ }
++#endif
+
+ struct spng_sbit *sb = &ctx->decode_sb;
+
+@@ -5000,7 +5013,10 @@ void spng_ctx_free(spng_ctx *ctx)
+
+ if(!ctx->user_owns_out_png) spng__free(ctx, ctx->out_png);
+
++#if 0 /* libjpeg-turbo: Eliminate unused gamma correction code, which
++ introduces an unwanted libm dependency */
+ spng__free(ctx, ctx->gamma_lut16);
++#endif
+
+ spng__free(ctx, ctx->row_buf);
+ spng__free(ctx, ctx->scanline_buf);
+--
+2.47.3
+
--
2.47.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
prev parent reply other threads:[~2026-07-26 21:23 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-26 21:22 [Buildroot] [PATCH v2 1/2] package/jpeg-turbo: use configure option WITH_{TESTS, TOOLS} Bernd Kuhls
2026-07-26 21:22 ` Bernd Kuhls [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260726212249.155140-2-bernd@kuhls.net \
--to=bernd@kuhls.net \
--cc=buildroot@buildroot.org \
--cc=mdemirten@yh.com.tr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox