meson.bbclass: Remove the MESON_*_ARGS variables
PATCH 1/2 meson.bbclass: Remove the MESON_*_ARGS variables
The options in ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} are already passed via ${CC}/${CXX} and there is no reason to pass them a second time. Thus we can remove MESON_TOOLCHAIN_ARGS. And when it is removed, the other MESON_*_ARGS variables revert to the standard CFLAGS, CXXFLAGS and LDFLAGS, so just use them directly instead.
Apart from the obvious improvement with not passing a lot of options twice, this also solves a problem where -pie would be passed on the command line in a way that it would prevent building any dynamic libraries using meson if using a toolchain that is not built with --enable-default-pie and if security_flags.inc is used.
--- meta/classes/meson.bbclass | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-)
meta/classes/meson.bbclass +5 -10
@@ -30,11 +30,6 @@ MESONOPTS = " --prefix ${prefix} \ -Dcpp_args='${BUILD_CPPFLAGS} ${BUILD_CXXFLAGS}' \ -Dcpp_link_args='${BUILD_LDFLAGS}'" -MESON_TOOLCHAIN_ARGS = "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" -MESON_C_ARGS = "${MESON_TOOLCHAIN_ARGS} ${CFLAGS}" -MESON_CPP_ARGS = "${MESON_TOOLCHAIN_ARGS} ${CXXFLAGS}" -MESON_LINK_ARGS = "${MESON_TOOLCHAIN_ARGS} ${LDFLAGS}" - EXTRA_OEMESON_append = " ${PACKAGECONFIG_CONFARGS}" MESON_CROSS_FILE = ""
@@ -78,7 +73,7 @@ def meson_endian(prefix, d): bb.fatal("Cannot determine endianism for %s-%s" % (arch, os)) addtask write_config before do_configure -do_write_config[vardeps] += "MESON_C_ARGS MESON_CPP_ARGS MESON_LINK_ARGS CC CXX LD AR NM STRIP READELF" +do_write_config[vardeps] += "CC CXX LD AR NM STRIP READELF CFLAGS CXXFLAGS LDFLAGS" do_write_config() { # This needs to be Py to split the args into single-element lists cat >${WORKDIR}/meson.cross <<EOF
@@ -95,10 +90,10 @@ llvm-config = 'llvm-config8.0.0' [properties] needs_exe_wrapper = true -c_args = ${@meson_array('MESON_C_ARGS', d)} -c_link_args = ${@meson_array('MESON_LINK_ARGS', d)} -cpp_args = ${@meson_array('MESON_CPP_ARGS', d)} -cpp_link_args = ${@meson_array('MESON_LINK_ARGS', d)} +c_args = ${@meson_array('CFLAGS', d)} +c_link_args = ${@meson_array('LDFLAGS', d)} +cpp_args = ${@meson_array('CXXFLAGS', d)} +cpp_link_args = ${@meson_array('LDFLAGS', d)} gtkdoc_exe_wrapper = '${B}/gtkdoc-qemuwrapper' [host_machine]
Signature · 1 line
2.21.0
PATCH 2/2 nativesdk-meson: Remove some unused variables
--- meta/recipes-devtools/meson/nativesdk-meson_0.50.1.bb | 5 ----- 1 file changed, 5 deletions(-)
meta/recipes-devtools/meson/nativesdk-meson_0.50.1.bb +0 -5
@@ -16,11 +16,6 @@ def meson_endian(prefix, d): else: bb.fatal("Cannot determine endianism for %s-%s" % (arch, os)) -MESON_TOOLCHAIN_ARGS = "${BUILDSDK_CC_ARCH}${TOOLCHAIN_OPTIONS}" -MESON_C_ARGS = "${MESON_TOOLCHAIN_ARGS} ${BUILDSDK_CFLAGS}" -MESON_CPP_ARGS = "${MESON_TOOLCHAIN_ARGS} ${BUILDSDK_CXXFLAGS}" -MESON_LINK_ARGS = "${MESON_TOOLCHAIN_ARGS} ${BUILDSDK_LDFLAGS}" - # The cross file logic is similar but not identical to that in meson.bbclass, # since it's generating for an SDK rather than a cross-compile. Important # differences are:
Signature · 1 line
2.21.0