native/nativesdk: Stop overriding unprefixed *FLAGS variables

We're currently encouraging an "arms race" with the FLAGS variables since
a recipe might want to set a specific flag for all variants but to do so,
+= won't work due to the assignment in the native/nativesdk class files. This
means recipes are using append.

Since the default variables are constructed out of TARGET_XXX variables and
we redefine these, there is no need to re-define the un-prefixed variables. If
we drop that, the += appends and similar work and recipes don't have to resort
to append.

Change the classes and cleanup a number of recipes to adapt to the change. This
change will result in some flags appearing to some native/nativesdk variants
but that is probably what was originally expected anyway.

(From OE-Core rev: a157b2f9d93428ca21265cc860a3b58b3698b3aa)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2024-06-13 09:31:52 +01:00
parent 45aeae0075
commit 3c1c56ec07
20 changed files with 22 additions and 32 deletions

View File

@ -40,11 +40,6 @@ HOST_CC_ARCH = "${BUILD_CC_ARCH}"
HOST_LD_ARCH = "${BUILD_LD_ARCH}"
HOST_AS_ARCH = "${BUILD_AS_ARCH}"
CPPFLAGS = "${BUILD_CPPFLAGS}"
CFLAGS = "${BUILD_CFLAGS}"
CXXFLAGS = "${BUILD_CXXFLAGS}"
LDFLAGS = "${BUILD_LDFLAGS}"
STAGING_BINDIR = "${STAGING_BINDIR_NATIVE}"
STAGING_BINDIR_CROSS = "${STAGING_BINDIR_NATIVE}"

View File

@ -66,11 +66,6 @@ TARGET_FPU = ""
EXTRA_OECONF_GCC_FLOAT = ""
TUNE_FEATURES = ""
CPPFLAGS = "${BUILDSDK_CPPFLAGS}"
CFLAGS = "${BUILDSDK_CFLAGS}"
CXXFLAGS = "${BUILDSDK_CXXFLAGS}"
LDFLAGS = "${BUILDSDK_LDFLAGS}"
# Change to place files in SDKPATH
base_prefix = "${SDKPATHNATIVE}"
prefix = "${SDKPATHNATIVE}${prefix_nativesdk}"

View File

@ -44,7 +44,7 @@ EXTRA_OECONF = " --disable-auto-validation \
--sysconfdir=${sysconfdir}/bind \
--with-openssl=${STAGING_DIR_HOST}${prefix} \
"
LDFLAGS:append = " -lz"
LDFLAGS += "-lz"
# dhcp needs .la so keep them
REMOVE_LIBTOOL_LA = "0"

View File

@ -62,7 +62,7 @@ EXTRA_OECONF = "--with-statduser=rpcuser \
--with-rpcgen=${HOSTTOOLS_DIR}/rpcgen \
"
LDFLAGS:append = " -lsqlite3 -levent"
LDFLAGS += "-lsqlite3 -levent"
PACKAGECONFIG ??= "tcp-wrappers \
${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \

View File

@ -8,10 +8,10 @@ DEPENDS = "intltool-native libcap util-linux gperf-native python3-jinja2-native
inherit meson pkgconfig gettext
inherit deploy
LDFLAGS:prepend = "${@ " ".join(d.getVar('LD').split()[1:])} "
LDFLAGS =+ "${@ " ".join(d.getVar('LD').split()[1:])} "
EFI_LD = "bfd"
LDFLAGS:append = " -fuse-ld=${EFI_LD}"
LDFLAGS += "-fuse-ld=${EFI_LD}"
do_write_config[vardeps] += "EFI_LD"
do_write_config:append() {

View File

@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=8f7bb094c7232b058c7e9f2e431f389c"
HOMEPAGE = "https://pypi.org/project/bcrypt/"
DEPENDS += "python3-cffi-native"
LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', ' -fuse-ld=bfd', '', d)}"
LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', '-fuse-ld=bfd', '', d)}"
SRC_URI[sha256sum] = "2ee15dd749f5952fe3f0430d0ff6b74082e159c50332a1413d51b5689cf06623"

View File

@ -9,7 +9,7 @@ SRC_URI[sha256sum] = "b955025c24c8babc808db49e0ff90db8b4b1320dcc16b14eb261328417
S = "${WORKDIR}/maturin-${PV}"
CFLAGS:append = " -fdebug-prefix-map=${CARGO_HOME}=${TARGET_DBGSRC_DIR}/cargo_home"
CFLAGS += "-fdebug-prefix-map=${CARGO_HOME}=${TARGET_DBGSRC_DIR}/cargo_home"
DEPENDS += "\
python3-setuptools-rust-native \

View File

@ -118,7 +118,7 @@ ${@bb.utils.contains('PACKAGECONFIG', 'tk', '', '_tkinter', d)}
EOF
}
CPPFLAGS:append = " -I${STAGING_INCDIR}/ncursesw -I${STAGING_INCDIR}/uuid"
CPPFLAGS += "-I${STAGING_INCDIR}/ncursesw -I${STAGING_INCDIR}/uuid"
# COMPILEALL_OPTS= ensures that .pyc are not compiled in parallel
# This was found to lock up builds, break reproducibility, and produce strange file ownership

View File

@ -4,4 +4,4 @@ inherit_defer native
EXTRA_OEMAKE:append = " LD='${LD}' AR='${AR}' OBJCOPY='${OBJCOPY}' LDFLAGS='${LDFLAGS}'"
LDFLAGS:append = " -fuse-ld=bfd"
LDFLAGS += "-fuse-ld=bfd"

View File

@ -50,4 +50,4 @@ BBCLASSEXTEND = "nativesdk"
# Since 1.70.0 upgrade this fails to build with gold:
# http://errors.yoctoproject.org/Errors/Details/708194/
# ld: error: version script assignment of to symbol __rust_alloc_error_handler_should_panic failed: symbol not defined
LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd', '', d)}"
LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '-fuse-ld=bfd', '', d)}"

View File

@ -365,4 +365,4 @@ BBCLASSEXTEND = "native nativesdk"
# Since 1.70.0 upgrade this fails to build with gold:
# http://errors.yoctoproject.org/Errors/Details/708196/
# ld: error: version script assignment of to symbol __rust_alloc_error_handler_should_panic failed: symbol not defined
LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd', '', d)}"
LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '-fuse-ld=bfd', '', d)}"

View File

@ -48,7 +48,7 @@ TARGET_LDFLAGS = ""
SECURITY_LDFLAGS = ""
LDFLAGS_SECTION_REMOVAL = ""
CFLAGS:append = " -DNO_INLINE_FUNCS -Wno-error=implicit-function-declaration"
CFLAGS += "-DNO_INLINE_FUNCS -Wno-error=implicit-function-declaration"
EXTRA_OEMAKE = " \
BINDIR=${bindir} SBINDIR=${sbindir} LIBDIR=${libdir} \

View File

@ -36,7 +36,7 @@ UPSTREAM_CHECK_URI = "https://www.sourceware.org/pub/bzip2/"
PACKAGES =+ "libbz2"
CFLAGS:append = " -fPIC -fpic -Winline -fno-strength-reduce -D_FILE_OFFSET_BITS=64"
CFLAGS += "-fPIC -fpic -Winline -fno-strength-reduce -D_FILE_OFFSET_BITS=64"
inherit autotools update-alternatives ptest relative_symlinks

View File

@ -39,8 +39,8 @@ inherit autotools-brokensep pkgconfig
# SORT_NONE in linker script which isn't supported by gold:
# https://sourceware.org/bugzilla/show_bug.cgi?id=18097
# https://github.com/linux-test-project/ltp/commit/3fce2064b54843218d085aae326c8f7ecf3a8c41#diff-39268f0855c634ca48c8993fcd2c95b12a65b79e8d9fa5ccd6b0f5a8785c0dd6R36
LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd', '', d)}"
LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' -fuse-ld=bfd', '', d)}"
LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '-fuse-ld=bfd', '', d)}"
LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', '-fuse-ld=bfd', '', d)}"
# After 0002-kvm-use-LD-instead-of-hardcoding-ld.patch
# https://github.com/linux-test-project/ltp/commit/f94e0ef3b7280f886384703ef9019aaf2f2dfebb

View File

@ -37,7 +37,7 @@ EXTRA_OECONF = "--includedir=${includedir}/security \
--disable-doc \
--disable-prelude"
CFLAGS:append = " -fPIC "
CFLAGS += "-fPIC "
S = "${WORKDIR}/Linux-PAM-${PV}"

View File

@ -79,7 +79,7 @@ PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled, vulkan-loader vulka
# Disable int-conversion warning as error until [1] is fixed
# [1] https://gitlab.gnome.org/GNOME/gtk/-/issues/6033
CFLAGS:append = " -Wno-error=int-conversion"
CFLAGS += "-Wno-error=int-conversion"
LIBV = "4.0.0"

View File

@ -28,7 +28,7 @@ FILES:${PN}-staticdev += "${libdir}/babeltrace2/plugins/*.a"
FILES:${PN} += "${libdir}/babeltrace2/plugins/*.so"
ASNEEDED = ""
LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld ptest', ' -fuse-ld=bfd ', '', d)}"
LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld ptest', '-fuse-ld=bfd ', '', d)}"
# coreutils since we need full mktemp
RDEPENDS:${PN}-ptest += "bash gawk python3 make grep coreutils findutils"

View File

@ -13,7 +13,7 @@ SRCREV = "d51ad395436d4d1dcc3ca46e1519ffeb475bf651"
S = "${WORKDIR}/git"
LDFLAGS:append = " -pthread"
LDFLAGS += "-pthread"
inherit autotools gettext pkgconfig bash-completion

View File

@ -19,7 +19,7 @@ PROVIDES = "virtual/x-terminal-emulator"
ALTERNATIVE:${PN} = "x-terminal-emulator"
ALTERNATIVE_TARGET[x-terminal-emulator] = "${bindir}/rxvt"
CFLAGS:append = " -fpermissive"
CFLAGS += "-fpermissive"
EXTRA_OECONF = "--enable-xim \
--with-term=rxvt --enable-keepscrolling \

View File

@ -45,14 +45,14 @@ EXTRA_OECONF = " \
"
# pread() is in POSIX.1-2001 so any reasonable system must surely support it
CFLAGS:append = " -DUSE_PREAD"
CFLAGS += "-DUSE_PREAD"
# Provide column meta-data API
CFLAGS:append = " -DSQLITE_ENABLE_COLUMN_METADATA"
CFLAGS += "-DSQLITE_ENABLE_COLUMN_METADATA"
# Unless SQLITE_BYTEORDER is predefined, the code falls back to build time
# huristics, which are not always correct
CFLAGS:append = " ${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', '-DSQLITE_BYTEORDER=1234', '-DSQLITE_BYTEORDER=4321', d)}"
CFLAGS += "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', '-DSQLITE_BYTEORDER=1234', '-DSQLITE_BYTEORDER=4321', d)}"
PACKAGES = "lib${BPN} lib${BPN}-dev lib${BPN}-doc ${PN}-dbg lib${BPN}-staticdev ${PN}"