| Summary: | strace shows accesses in non-existent location. | ||
|---|---|---|---|
| Product: | [Runtime] General Runtime | Reporter: | Juro Bystricky <juro.bystricky> |
| Component: | General Runtime | Assignee: | Juro Bystricky <juro.bystricky> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | minor | ||
| Priority: | Undecided | CC: | randy.macleod, richard.purdie |
| Version: | 2.0 | ||
| Target Milestone: | Future | ||
| Hardware: | x86 | ||
| OS: | Multiple | ||
| Whiteboard: | |||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | No (bug/feature does not impact docs) | |
The culprit seems to be libc-2.22.so, as it contains some hard-coded links that may not exist: strings -f *.so | grep /opt/poky libc-2.22.so: /opt/poky/2.0/sysroots/i686-pokysdk-linux/usr/lib/gconv libc-2.22.so: /opt/poky/2.0/sysroots/i686-pokysdk-linux/usr/lib/gconv/gconv-modules.cache libc-2.22.so: /opt/poky/2.0/sysroots/i686-pokysdk-linux/usr/share/locale libc-2.22.so: /opt/poky/2.0/sysroots/i686-pokysdk-linux/usr/share/locale/%L/%N:/opt/poky/2.0/sysroots/i686-pokysdk-linux/usr/share/locale/%L/LC_MESSAGES/%N:/opt/poky/2.0/sysroots/i686-pokysdk-linux/usr/share/locale/%l/%N:/opt/poky/2.0/sysroots/i686-pokysdk-linux/usr/share/locale/%l/LC_MESSAGES/%N: libc-2.22.so: /opt/poky/2.0/sysroots/i686-pokysdk-linux/etc/localtime libc-2.22.so: /opt/poky/2.0/sysroots/i686-pokysdk-linux/usr/lib/glibc/getconf libc-2.22.so: /opt/poky/2.0/sysroots/i686-pokysdk-linux/usr/lib/locale libc-2.22.so: /opt/poky/2.0/sysroots/i686-pokysdk-linux/usr/lib/locale/locale-archive libc-2.22.so: /opt/poky/2.0/sysroots/i686-pokysdk-linux/usr/share/locale libc-2.22.so: /opt/poky/2.0/sysroots/i686-pokysdk-linux/usr/share/zoneinfo Meant to say hard-coded paths (not links). We now include locale data in the sdks and uninative so these paths are now handled correctly. If there are any remaining issues we'd handle in separate bugs. |
Install a buildtools-tarball such as poky-glibc-i686-buildtools-tarball-i586-buildtools-nativesdk-standalone-xxxx.sh in a non-default location. Source the environment, i.e.: $ . environment-setup-i686-pokysdk-linux Run a command such as: $ strace make 2>&1 | grep /opt Observe: open("/opt/poky/2.0/sysroots/i686-pokysdk-linux/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/opt/poky/2.0/sysroots/i686-pokysdk-linux/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/opt/poky/2.0/sysroots/i686-pokysdk-linux/usr/lib/locale/en_CA.UTF-8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/opt/poky/2.0/sysroots/i686-pokysdk-linux/usr/lib/locale/en_CA.utf8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/opt/poky/2.0/sysroots/i686-pokysdk-linux/usr/lib/locale/en_CA/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/opt/poky/2.0/sysroots/i686-pokysdk-linux/usr/lib/locale/en.UTF-8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/opt/poky/2.0/sysroots/i686-pokysdk-linux/usr/lib/locale/en.utf8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) open("/opt/poky/2.0/sysroots/i686-pokysdk-linux/usr/lib/locale/en/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat64("/opt/poky/2.0/sysroots/i686-pokysdk-linux/usr/include", 0xffc768e0) = -1 ENOENT (No such file or directory) So some files are assumed to be in default (but potentially non-existent) location. Although this does not seem to be harmful, it should be either fixed or justified.