介子马里的交叉编译?

cross compile for meson-mali?

我正在尝试通过 bitbake 编译 meson-mali https://github.com/opendreambox/opendreambox/tree/pyro/meta-dreambox/recipes-graphics/meson-mali 在我的 ubuntu 21.04 上使用最新的内核 (5.11.0-34-generic) 但是我遇到了这个错误..

|                  from /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work-shared/dreamtwo/kernel-source/include/linux/atomic.h:4,
|                  from /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work/dreamtwo-oe-linux/meson-mali-module-bifrost-r12p0/201901-0-gd4a30ca-r0/meson-mali-module-bifrost-r12p0-201901-0-gd4a30ca/bifrost/r12p0/kernel/drivers/gpu/arm/midgard/mali_kbase_tlstream.c:24:
| /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work/dreamtwo-oe-linux/meson-mali-module-bifrost-r12p0/201901-0-gd4a30ca-r0/meson-mali-module-bifrost-r12p0-201901-0-gd4a30ca/bifrost/r12p0/kernel/drivers/gpu/arm/midgard/mali_kbase_tlstream.c: In function 'kbase_tlstream_acquire':
| /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work-shared/dreamtwo/kernel-source/arch/arm64/include/asm/atomic_ll_sc.h:259:9: error: array subscript 'long unsigned int[0]' is partly outside array bounds of 'atomic_t[1]' [-Werror=array-bounds]
|   259 |         asm volatile(                                                   \
|       |         ^~~
| /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work-shared/dreamtwo/kernel-source/arch/arm64/include/asm/atomic_ll_sc.h:292:1: note: in expansion of macro '__CMPXCHG_CASE'
|   292 | __CMPXCHG_CASE(w,  ,  mb_4, dmb ish,  , l, "memory")
|       | ^~~~~~~~~~~~~~
| /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work/dreamtwo-oe-linux/meson-mali-module-bifrost-r12p0/201901-0-gd4a30ca-r0/meson-mali-module-bifrost-r12p0-201901-0-gd4a30ca/bifrost/r12p0/kernel/drivers/gpu/arm/midgard/mali_kbase_tlstream.c:598:10: note: while referencing 'kbase_tlstream_enabled'
|   598 | atomic_t kbase_tlstream_enabled = {0};
|       |          ^~~~~~~~~~~~~~~~~~~~~~
| In file included from /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work-shared/dreamtwo/kernel-source/arch/arm64/include/asm/atomic.h:36,
|                  from /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work-shared/dreamtwo/kernel-source/include/linux/atomic.h:4,
|                  from /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work/dreamtwo-oe-linux/meson-mali-module-bifrost-r12p0/201901-0-gd4a30ca-r0/meson-mali-module-bifrost-r12p0-201901-0-gd4a30ca/bifrost/r12p0/kernel/drivers/gpu/arm/midgard/mali_kbase_tlstream.c:24:
| /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work-shared/dreamtwo/kernel-source/arch/arm64/include/asm/atomic_ll_sc.h:259:9: error: array subscript 'long unsigned int[0]' is partly outside array bounds of 'atomic_t[1]' [-Werror=array-bounds]
|   259 |         asm volatile(                                                   \
|       |         ^~~
| /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work-shared/dreamtwo/kernel-source/arch/arm64/include/asm/atomic_ll_sc.h:292:1: note: in expansion of macro '__CMPXCHG_CASE'
|   292 | __CMPXCHG_CASE(w,  ,  mb_4, dmb ish,  , l, "memory")
|       | ^~~~~~~~~~~~~~
| /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work/dreamtwo-oe-linux/meson-mali-module-bifrost-r12p0/201901-0-gd4a30ca-r0/meson-mali-module-bifrost-r12p0-201901-0-gd4a30ca/bifrost/r12p0/kernel/drivers/gpu/arm/midgard/mali_kbase_tlstream.c:598:10: note: while referencing 'kbase_tlstream_enabled'
|   598 | atomic_t kbase_tlstream_enabled = {0};
|       |          ^~~~~~~~~~~~~~~~~~~~~~
|   CC [M]  /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work/dreamtwo-oe-linux/meson-mali-module-bifrost-r12p0/201901-0-gd4a30ca-r0/meson-mali-module-bifrost-r12p0-201901-0-gd4a30ca/bifrost/r12p0/kernel/drivers/gpu/arm/midgard/backend/gpu/mali_kbase_debug_job_fault_backend.o
| In file included from /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work-shared/dreamtwo/kernel-source/include/asm-generic/preempt.h:4,
|                  from ./arch/arm64/include/generated/asm/preempt.h:1,
|                  from /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work-shared/dreamtwo/kernel-source/include/linux/preempt.h:59,
|                  from /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work-shared/dreamtwo/kernel-source/include/linux/spinlock.h:50,
|                  from /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work-shared/dreamtwo/kernel-source/include/linux/wait.h:8,
|                  from /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work-shared/dreamtwo/kernel-source/include/linux/fs.h:5,
|                  from /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work-shared/dreamtwo/kernel-source/include/linux/highmem.h:4,
|                  from /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work/dreamtwo-oe-linux/meson-mali-module-bifrost-r12p0/201901-0-gd4a30ca-r0/meson-mali-module-bifrost-r12p0-201901-0-gd4a30ca/bifrost/r12p0/kernel/drivers/gpu/arm/midgard/mali_kbase.h:33,
|                  from /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work/dreamtwo-oe-linux/meson-mali-module-bifrost-r12p0/201901-0-gd4a30ca-r0/meson-mali-module-bifrost-r12p0-201901-0-gd4a30ca/bifrost/r12p0/kernel/drivers/gpu/arm/midgard/mali_kbase_core_linux.c:23:
| In function 'check_object_size',
|     inlined from 'copy_from_user' at /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work-shared/dreamtwo/kernel-source/arch/arm64/include/asm/uaccess.h:448:3,
|     inlined from 'kbasep_serialize_jobs_debugfs_write' at /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work/dreamtwo-oe-linux/meson-mali-module-bifrost-r12p0/201901-0-gd4a30ca-r0/meson-mali-module-bifrost-r12p0-201901-0-gd4a30ca/bifrost/r12p0/kernel/drivers/gpu/arm/midgard/mali_kbase_core_linux.c:3019:6:
| /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work-shared/dreamtwo/kernel-source/include/linux/thread_info.h:96:17: error: 'buf' may be used uninitialized [-Werror=maybe-uninitialized]
|    96 |                 __check_object_size(ptr, n, to_user);
|       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work/dreamtwo-oe-linux/meson-mali-module-bifrost-r12p0/201901-0-gd4a30ca-r0/meson-mali-module-bifrost-r12p0-201901-0-gd4a30ca/bifrost/r12p0/kernel/drivers/gpu/arm/midgard/mali_kbase_core_linux.c: In function 'kbasep_serialize_jobs_debugfs_write':
| /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work-shared/dreamtwo/kernel-source/include/linux/thread_info.h:89:13: note: by argument 1 of type 'const void *' to '__check_object_size' declared here
|    89 | extern void __check_object_size(const void *ptr, unsigned long n,
|       |             ^~~~~~~~~~~~~~~~~~~
| /home/raed/build_image/OpenPli-DM/openpli-dreambox-oe-core/build/tmp/work/dreamtwo-oe-linux/meson-mali-module-bifrost-r12p0/201901-0-gd4a30ca-r0/meson-mali-module-bifrost-r12p0-201901-0-gd4a30ca/bifrost/r12p0/kernel/drivers/gpu/arm/midgard/mali_kbase_core_linux.c:3012:14: note: 'buf' declared here
|  3012 |         char buf[MAX_SERIALIZE_JOBS_NAME_LEN];
|       |              ^~~

有什么想法吗?

我已经解决了这个错误

export KCFLAGS = "-Wno-error=maybe-uninitialized \
                  -Wno-error=array-bounds \
"

https://github.com/fairbird/openpli-dreambox-oe-core/commit/b97a7f9e4294ae2ce38f13ace1ddbdbae6531692