]> code.ossystems Code Review - openembedded-core.git/commitdiff
libcap: Configure Make variables correctly without a horrible hack
authorPeter Kjellerstedt <peter.kjellerstedt@axis.com>
Fri, 7 May 2021 20:38:30 +0000 (22:38 +0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 9 May 2021 22:30:10 +0000 (23:30 +0100)
Occasionally, the build would fail with:

  make[2]: execvp: mkdir: Argument list too long

This turned out to be due to a hacky solution used in the recipe to
modify the Makefile, which resulted in one more $(BUILD_CFLAGS) being
added to the immediately expanded BUILD_CFLAGS Make variable each time
do_configure was executed. After a couple of times, this lead to an
environment with a 140 kB BUILD_CFLAGS when mkdir should execute, which
resulted in the E2BIG.

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-support/libcap/libcap_2.49.bb

index 3f4a9256cf4a3ece2278ecc929556eaa01dfd73e..eb9fc5b4b36ae38d18ec7be0614822523323064e 100644 (file)
@@ -20,15 +20,6 @@ UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/linux/libs/security/linux-privs
 
 inherit lib_package
 
-# do NOT pass target cflags to host compilations
-#
-do_configure() {
-       # libcap uses := for compilers, fortunately, it gives us a hint
-       # on what should be replaced with ?=
-       sed -e 's,:=,?=,g' -i Make.Rules
-       sed -e 's,^BUILD_CFLAGS ?= ,BUILD_CFLAGS := $(BUILD_CFLAGS) ,' -i Make.Rules
-}
-
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
 PACKAGECONFIG_class-native ??= ""
 
@@ -44,11 +35,15 @@ EXTRA_OEMAKE = " \
 
 EXTRA_OEMAKE_append_class-target = " SYSTEM_HEADERS=${STAGING_INCDIR}"
 
-# these are present in the libcap defaults, so include in our CFLAGS too
-CFLAGS += "-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
-
 do_compile() {
-       oe_runmake ${PACKAGECONFIG_CONFARGS}
+       unset CFLAGS BUILD_CFLAGS
+       oe_runmake \
+               ${PACKAGECONFIG_CONFARGS} \
+               AR="${AR}" \
+               CC="${CC}" \
+               RANLIB="${RANLIB}" \
+               COPTS="${CFLAGS}" \
+               BUILD_COPTS="${BUILD_CFLAGS}"
 }
 
 do_install() {