Files
rpi-buildroot/package/libv4l/0002-libv4lconvert-fix-jpeg-v9x-gcc-14.x-compile-jpeg_mem.patch
Romain Naour 37741586af package/libv4l: backport fix jpeg-v9x/gcc-14.x build
This issue seems to caused by gcc-14 (added in 2024.05) which has
become the default version in 2025.08.

Fixes:
https://gitlab.com/buildroot.org/buildroot/-/jobs/11042295052 (TestZbar)
https://autobuild.buildroot.org/results/e0f/e0fac4a10181139d975c627f22a55d6681547d33

Signed-off-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Julien Olivain <ju.o@free.fr>
2025-08-25 22:05:07 +02:00

84 lines
3.7 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From 9f0da8467183f9f647bddc4a5b4f01aad930846a Mon Sep 17 00:00:00 2001
From: Peter Seiderer <ps.report@gmx.net>
Date: Mon, 2 Sep 2024 15:59:53 +0200
Subject: [PATCH] libv4lconvert: fix jpeg-v9x/gcc-14.x compile (jpeg_mem_dest
argument mismatch)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- fix jpeg_mem_dest pointer arument mismatch (long unsigned int vs. size_t)
with jpeg-v9x/gcc-14.x 32-bit arm compile
Fixes:
../lib/libv4lconvert/jl2005bcd.c: In function v4lconvert_decode_jl2005bcd:
../lib/libv4lconvert/jl2005bcd.c:94:46: error: passing argument 3 of jpeg_mem_dest from incompatible pointer type [-Wincompatible-pointer-types]
94 | jpeg_mem_dest (&cinfo, &jpeg_header, &jpeg_header_size);
| ^~~~~~~~~~~~~~~~~
| |
| long unsigned int *
In file included from ../lib/libv4lconvert/libv4lconvert-priv.h:26,
from ../lib/libv4lconvert/jl2005bcd.c:30:
.../host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/jpeglib.h:979:28: note: expected size_t * {aka unsigned int *} but argument is of type long unsigned int *
979 | EXTERN(void) jpeg_mem_dest JPP((j_compress_ptr cinfo,
| ^~~
../lib/libv4lconvert/jpeg.c: In function init_libjpeg_cinfo:
../lib/libv4lconvert/jpeg.c:157:45: error: passing argument 3 of jpeg_mem_dest from incompatible pointer type [-Wincompatible-pointer-types]
157 | jpeg_mem_dest(&cinfo, &jpeg_header, &jpeg_header_size);
| ^~~~~~~~~~~~~~~~~
| |
| long unsigned int *
In file included from ../lib/libv4lconvert/libv4lconvert-priv.h:26,
from ../lib/libv4lconvert/jpeg.c:21:
.../host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/jpeglib.h:979:28: note: expected size_t * {aka unsigned int *} but argument is of type long unsigned int *
979 | EXTERN(void) jpeg_mem_dest JPP((j_compress_ptr cinfo,
| ^~~
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Upstream: https://git.linuxtv.org/v4l-utils.git/commit/?id=e11e10ff7c8a4ef69526edd275c0ed92a450fbf3
[Romain: backport to 1.28.1]
Signed-off-by: Romain Naour <romain.naour@smile.fr>
---
lib/libv4lconvert/jl2005bcd.c | 4 ++++
lib/libv4lconvert/jpeg.c | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/lib/libv4lconvert/jl2005bcd.c b/lib/libv4lconvert/jl2005bcd.c
index 707c3205..14b040f3 100644
--- a/lib/libv4lconvert/jl2005bcd.c
+++ b/lib/libv4lconvert/jl2005bcd.c
@@ -63,7 +63,11 @@ int v4lconvert_decode_jl2005bcd(struct v4lconvert_data *data,
struct jpeg_decompress_struct dinfo;
struct jpeg_error_mgr jcerr, jderr;
JOCTET *jpeg_header = NULL;
+#if JPEG_LIB_VERSION >= 90
+ size_t jpeg_header_size = 0;
+#else
unsigned long jpeg_header_size = 0;
+#endif
int i, x, y, x1, y1, jpeg_data_size, jpeg_data_idx, eoi, size;
/* src_size had better be bigger than 16 */
diff --git a/lib/libv4lconvert/jpeg.c b/lib/libv4lconvert/jpeg.c
index ebfc8149..450d0967 100644
--- a/lib/libv4lconvert/jpeg.c
+++ b/lib/libv4lconvert/jpeg.c
@@ -136,7 +136,11 @@ static void init_libjpeg_cinfo(struct v4lconvert_data *data)
{
struct jpeg_compress_struct cinfo;
unsigned char *jpeg_header = NULL;
+#if JPEG_LIB_VERSION >= 90
+ size_t jpeg_header_size = 0;
+#else
unsigned long jpeg_header_size = 0;
+#endif
if (data->cinfo_initialized)
return;
--
2.50.1