[libcamera-devel] [PATCH v2 5/6] include: linux: intel-ipu3: Force alignement to 32 bytes

Jacopo Mondi jacopo at jmondi.org
Mon May 27 11:05:58 CEST 2019


Fix compilation error on GCC 8.3.0

include/linux/intel-ipu3.h:2475:35: error: ‘ipu3_uapi_acc_param::awb_fr’
offset 36756 in ‘ipu3_uapi_acc_param’ isn’t aligned to 32
[-Werror=packed-not-aligned]

by forcing alignment to 32 bytes for struct ipu3_uapi_awb_fr_config_s.
The structure is itself defined as 32 bytes aligned, so adding another
alignment directive to the field definition should not change the
structure memory layout.

The error is reported by gcc8.3.0 only and not by other gcc compiler
versions (5.4.0) or clang.

As the header is exported from Linux v5.1 this is a workaround and
should probably be fixed in the kernel headers themselves if the error
is consistently reported in future compiler versions.

Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
---
 include/linux/intel-ipu3.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/intel-ipu3.h b/include/linux/intel-ipu3.h
index f758c9ba230b..fe6e8ed15eb1 100644
--- a/include/linux/intel-ipu3.h
+++ b/include/linux/intel-ipu3.h
@@ -2472,7 +2472,7 @@ struct ipu3_uapi_acc_param {
 	struct ipu3_uapi_yuvp1_yds_config yds2 __attribute__((aligned(32)));
 	struct ipu3_uapi_yuvp2_tcc_static_config tcc __attribute__((aligned(32)));
 	struct ipu3_uapi_anr_config anr;
-	struct ipu3_uapi_awb_fr_config_s awb_fr;
+	struct ipu3_uapi_awb_fr_config_s awb_fr __attribute__((aligned(32)));
 	struct ipu3_uapi_ae_config ae;
 	struct ipu3_uapi_af_config_s af;
 	struct ipu3_uapi_awb_config awb;
-- 
2.21.0



More information about the libcamera-devel mailing list