3118b7e222
The meson upgrade from 1.1.1 to 1.2.0 have been reverted because
host-qemu (version v8.0.3) was searching libraries in the build machine
instead of buildroot host directory [1].
$ grep -r LINK_ARGS * | grep "\-L/usr"
build.ninja: LINK_ARGS =
-L/usr/lib/gcc/x86_64-linux-gnu/10 \
-L/usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu \
-L/usr/lib/gcc/x86_64-linux-gnu/10/../../../../lib -L/usr/lib \
-L/lib/x86_64-linux-gnu \
-L/lib/../lib \
-L/usr/lib/../lib \
-L/usr/lib/gcc/x86_64-linux-gnu/10/../../.. \
-L/lib \
-I/[...]/host/include \
-L/[...]/host/lib \
-I/[...]/host/include/libfdt \
...
Upgrading qemu to version v8.1.0 solves the problem:
$ grep -r LINK_ARGS * | grep "\-L/usr"
build.ninja: LINK_ARGS =
-I/[...]/host/include \
-L/[...]/host/lib \
-I/[...]/host/include/libfdt \
...
Those two tests were done with the same buildroot version (2023.08) on
the same machine were the bug appeared. Using, git bisect, in this
environment, it was found that the problem was fixed in qemu by the
commit [2].
Thus, it is possible that the problem was introduced by improper use of
meson by qemu <= v8.0.3. Also, meson has been updated to version 1.2.1
and 1.3.0 in yocto and it doesn't seem to create any issue. [3]
The original problem is no longer present and some projects require
meson > 1.1.1 (e.g. rusticl requires meson 1.2.0 since mesa 23.3.0 and
meson 1.3.1 since mesa 24.0.0).
"pkgconfig" field is deprecated by meson 1.3.0 and replaced by
"pkg-config". See: [4]
The patch that adds the pkg_config_static property has been rebased.
[1] acfdf21f0b
[2] https://gitlab.com/qemu-project/qemu/-/commit/Fc9a809e0d28417fa1e7f7efc19f845bda4c1be9
[3] https://github.com/yoctoproject/poky/commits/master/meta/recipes-devtools/meson
[4] https://mesonbuild.com/Release-notes-for-1-3-0.html#machine-files-pkgconfig-field-deprecated-and-replaced-by-pkgconfig
Signed-off-by: Antoine Coutant <antoine.coutant@smile.fr>
[yann.morin.1998@free.fr:
- keep our formatting in the patch
- reflow commit log (to keep busy while test-building!)
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
41 lines
1.2 KiB
Plaintext
41 lines
1.2 KiB
Plaintext
# Note: Buildroot's and Meson's terminologies differ about the meaning
|
|
# of 'build', 'host' and 'target':
|
|
# - Buildroot's 'host' is Meson's 'build'
|
|
# - Buildroot's 'target' is Meson's 'host'
|
|
|
|
[binaries]
|
|
c = '@TARGET_CC@'
|
|
cpp = '@TARGET_CXX@'
|
|
ar = '@TARGET_AR@'
|
|
strip = '@TARGET_STRIP@'
|
|
cmake = '@BR2_CMAKE@'
|
|
fortran = '@TARGET_FC@'
|
|
pkg-config = '@PKGCONF_HOST_BINARY@'
|
|
g-ir-compiler = '@STAGING_DIR@/usr/bin/g-ir-compiler'
|
|
g-ir-scanner = '@STAGING_DIR@/usr/bin/g-ir-scanner'
|
|
|
|
[built-in options]
|
|
c_args = [@TARGET_CFLAGS@]
|
|
c_link_args = [@TARGET_LDFLAGS@]
|
|
cpp_args = [@TARGET_CXXFLAGS@]
|
|
cpp_link_args = [@TARGET_LDFLAGS@]
|
|
fortran_args = [@TARGET_FCFLAGS@]
|
|
fortran_link_args = [@TARGET_LDFLAGS@]
|
|
wrap_mode = 'nodownload'
|
|
cmake_prefix_path = '@STAGING_DIR@/usr/lib/cmake'
|
|
|
|
[properties]
|
|
needs_exe_wrapper = true
|
|
sys_root = '@STAGING_DIR@'
|
|
pkg_config_libdir = '@STAGING_DIR@/usr/lib/pkgconfig:@STAGING_DIR@/usr/share/pkgconfig'
|
|
pkg_config_static = '@STATIC@'
|
|
# enable meson build to pass a toolchain file to cmake
|
|
cmake_toolchain_file = '@HOST_DIR@/share/buildroot/toolchainfile.cmake'
|
|
cmake_defaults = false
|
|
|
|
[host_machine]
|
|
system = 'linux'
|
|
cpu_family = '@TARGET_ARCH@'
|
|
cpu = '@TARGET_CPU@'
|
|
endian = '@TARGET_ENDIAN@'
|