aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Yang <liezhi.yang@windriver.com>2022-03-01 08:47:43 +0000
committerRobert Yang <liezhi.yang@windriver.com>2022-03-01 09:10:55 +0000
commitf1ea35e3fb1b3f6714c709929f51fda5a29e9d2b (patch)
tree3107a38771bfa07f06641ee66e6561808c11f167
parentb1bb4e2d73985c6e8cf03b0fea94e8b739648cf7 (diff)
downloadopenembedded-core-contrib-f1ea35e3fb1b3f6714c709929f51fda5a29e9d2b.tar.gz
openembedded-core-contrib-f1ea35e3fb1b3f6714c709929f51fda5a29e9d2b.tar.bz2
openembedded-core-contrib-f1ea35e3fb1b3f6714c709929f51fda5a29e9d2b.zip
coreutils: Disable statx for native buildrbt/coreutils
The statx requires glibc >= 2.28 and linux kernel >= 4.11, but coreutils's configure only checks glibc compatibility for statx syscall but fail to check kernel support, e.g.: RedHat Enterprise Linux Server 7.6 (Maipo) Host kernel: 3.10.0-1127.8.2.el7.x86_64 Docker OS: Ubuntu 20.04.1 LTS $ bitbake coreutils-native find the binary ls and run it as "ls -l ." The result is something like: "?????????. ? ? ? ? ? foo" This is because glibc is 2.31 (Ubunut 20.04 in docker) which has statx, but host's kernel is 3.10.0 (CentOS 7) which doesn't support statx. Disable statx for native build to fix the problem. Original from: Davi Poyastro <davi.poyastro@nokia.com> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-rw-r--r--meta/recipes-core/coreutils/coreutils_9.0.bb7
1 files changed, 7 insertions, 0 deletions
diff --git a/meta/recipes-core/coreutils/coreutils_9.0.bb b/meta/recipes-core/coreutils/coreutils_9.0.bb
index e4633949f4..e4a948c7e5 100644
--- a/meta/recipes-core/coreutils/coreutils_9.0.bb
+++ b/meta/recipes-core/coreutils/coreutils_9.0.bb
@@ -151,6 +151,13 @@ ALTERNATIVE_LINK_NAME[uptime.1] = "${mandir}/man1/uptime.1"
ALTERNATIVE_LINK_NAME[kill.1] = "${mandir}/man1/kill.1"
ALTERNATIVE_LINK_NAME[stat.1] = "${mandir}/man1/stat.1"
+# The statx() requires glibc >= 2.28 and linux kernel >= 4.11, it doesn't work
+# when glibc >= 2.28 ((Ubuntu 20.04 in docker) and kernel < 4.11 (Host OS
+# CentOS 7), we can check kernel version and disable it, but that would cause
+# two different signatures for coreutils-native, so disable it unconditionally
+# for deterministic build.
+EXTRA_OECONF:append:class-native = " ac_cv_func_statx=0"
+
python __anonymous() {
for prog in d.getVar('base_bindir_progs').split():
d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_bindir'), prog))