From 4642c541c4f4f368941ce3956ad47c787bfb2a35 Mon Sep 17 00:00:00 2001 From: Hubert Wiśniewski Date: Thu, 1 Aug 2024 09:03:46 +0200 Subject: libcamera: Use multiple of sizeof as malloc size Signed-off-by: Khem Raj --- ...-alloca-instead-of-variable-length-arrays.patch | 43 ---------------------- ...-malloc-instead-of-variable-length-arrays.patch | 41 +++++++++++++++++++++ .../libcamera/libcamera_0.3.0.bb | 2 +- 3 files changed, 42 insertions(+), 44 deletions(-) delete mode 100644 meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-rpi-Use-alloca-instead-of-variable-length-arrays.patch create mode 100644 meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-rpi-Use-malloc-instead-of-variable-length-arrays.patch (limited to 'meta-multimedia') diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-rpi-Use-alloca-instead-of-variable-length-arrays.patch b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-rpi-Use-alloca-instead-of-variable-length-arrays.patch deleted file mode 100644 index c336e92548..0000000000 --- a/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-rpi-Use-alloca-instead-of-variable-length-arrays.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 11cc6dbd45f0880beea64cdc514f57484b90bc39 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 20 Feb 2024 18:44:23 -0800 -Subject: [PATCH] rpi: Use malloc instead of variable length arrays - -Clang-18+ diagnoses this as error - -| ../git/src/ipa/rpi/controller/rpi/alsc.cpp:499:10: error: variable length arrays in C++ are a Clang extension [-Werror,-Wvla-cxx-extension] | 499 | int xLo[X], xHi[X]; -| | ^ - -Upstream-Status: Submitted [https://lists.libcamera.org/pipermail/libcamera-devel/2024-February/040529.html] -Signed-off-by: Khem Raj - -s ---- - src/ipa/rpi/controller/rpi/alsc.cpp | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/src/ipa/rpi/controller/rpi/alsc.cpp b/src/ipa/rpi/controller/rpi/alsc.cpp -index 8a205c60..a7d42614 100644 ---- a/src/ipa/rpi/controller/rpi/alsc.cpp -+++ b/src/ipa/rpi/controller/rpi/alsc.cpp -@@ -496,8 +496,8 @@ void resampleCalTable(const Array2D &calTableIn, - * Precalculate and cache the x sampling locations and phases to save - * recomputing them on every row. - */ -- int xLo[X], xHi[X]; -- double xf[X]; -+ int *xLo = (int*)malloc(X), *xHi = (int*)malloc(X); -+ double *xf = (double*)malloc(X); - double scaleX = cameraMode.sensorWidth / - (cameraMode.width * cameraMode.scaleX); - double xOff = cameraMode.cropX / (double)cameraMode.sensorWidth; -@@ -539,6 +539,9 @@ void resampleCalTable(const Array2D &calTableIn, - *(out++) = above * (1 - yf) + below * yf; - } - } -+ free(xf); -+ free(xHi); -+ free(xLo); - } - - /* Calculate chrominance statistics (R/G and B/G) for each region. */ diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-rpi-Use-malloc-instead-of-variable-length-arrays.patch b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-rpi-Use-malloc-instead-of-variable-length-arrays.patch new file mode 100644 index 0000000000..0ca2082c03 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-rpi-Use-malloc-instead-of-variable-length-arrays.patch @@ -0,0 +1,41 @@ +From a3e25b6aa9775c43336e30d3b350f54c085a32c8 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 20 Feb 2024 18:44:23 -0800 +Subject: [PATCH] rpi: Use malloc instead of variable length arrays + +Clang-18+ diagnoses this as error + +| ../git/src/ipa/rpi/controller/rpi/alsc.cpp:499:10: error: variable length arrays in C++ are a Clang extension [-Werror,-Wvla-cxx-extension] | 499 | int xLo[X], xHi[X]; +| | ^ + +Upstream-Status: Denied [https://lists.libcamera.org/pipermail/libcamera-devel/2024-February/040536.html] +Signed-off-by: Khem Raj +--- + src/ipa/rpi/controller/rpi/alsc.cpp | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/src/ipa/rpi/controller/rpi/alsc.cpp b/src/ipa/rpi/controller/rpi/alsc.cpp +index 67029fc3..6eca9fb7 100644 +--- a/src/ipa/rpi/controller/rpi/alsc.cpp ++++ b/src/ipa/rpi/controller/rpi/alsc.cpp +@@ -496,8 +496,8 @@ void resampleCalTable(const Array2D &calTableIn, + * Precalculate and cache the x sampling locations and phases to save + * recomputing them on every row. + */ +- int xLo[X], xHi[X]; +- double xf[X]; ++ int *xLo = (int *)malloc(X * sizeof(int)), *xHi = (int *)malloc(X * sizeof(int)); ++ double *xf = (double *)malloc(X * sizeof(double)); + double scaleX = cameraMode.sensorWidth / + (cameraMode.width * cameraMode.scaleX); + double xOff = cameraMode.cropX / (double)cameraMode.sensorWidth; +@@ -539,6 +539,9 @@ void resampleCalTable(const Array2D &calTableIn, + *(out++) = above * (1 - yf) + below * yf; + } + } ++ free(xf); ++ free(xHi); ++ free(xLo); + } + + /* Calculate chrominance statistics (R/G and B/G) for each region. */ diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.3.0.bb b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.3.0.bb index 66433ec155..857f565fb7 100644 --- a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.3.0.bb +++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.3.0.bb @@ -12,7 +12,7 @@ SRC_URI = " \ git://git.libcamera.org/libcamera/libcamera.git;protocol=https;branch=master \ file://0001-media_device-Add-bool-return-type-to-unlock.patch \ file://0002-options-Replace-use-of-VLAs-in-C.patch \ - file://0001-rpi-Use-alloca-instead-of-variable-length-arrays.patch \ + file://0001-rpi-Use-malloc-instead-of-variable-length-arrays.patch \ " SRCREV = "aee16c06913422a0ac84ee3217f87a9795e3c2d9" -- cgit v1.2.3-54-g00ecf