https://autobuilder.yoctoproject.org/typhoon/#/builders/108/builds/2521/steps/11/logs/stdio | linking shared-library libruby.so.3.1.0 | ./libruby.so: file not recognized: file format not recognized | collect2: error: ld returned 1 exit status | ../ruby-3.1.0/defs/gmake.mk:413: recipe for target 'spec/ruby/optional/capi/ext/proc_spec.so' failed | make: *** [spec/ruby/optional/capi/ext/proc_spec.so] Error 1 | make: *** Waiting for unfinished jobs.... | linking ruby | make[2]: Leaving directory '/home/pokybuild/yocto-worker/qemux86-world-alt/build/build/tmp/work/core2-64-poky-linux/ruby/3.1.0-r0/build' | make[1]: Leaving directory '/home/pokybuild/yocto-worker/qemux86-world-alt/build/build/tmp/work/core2-64-poky-linux/ruby/3.1.0-r0/build' | make[1]: Entering directory '/home/pokybuild/yocto-worker/qemux86-world-alt/build/build/tmp/work/core2-64-poky-linux/ruby/3.1.0-r0/build' | make[1]: Nothing to be done for 'note'. | make[1]: Leaving directory '/home/pokybuild/yocto-worker/qemux86-world-alt/build/build/tmp/work/core2-64-poky-linux/ruby/3.1.0-r0/build' | ERROR: oe_runmake failed | WARNING: exit code 1 from a shell command. NOTE: recipe ruby-3.1.0-r0: task do_install: Failed ERROR: Task (/home/pokybuild/yocto-worker/qemux86-world-alt/build/meta/recipes-devtools/ruby/ruby_3.1.0.bb:do_install) failed with exit code '1' On the worker: tmp/work/core2-64-poky-linux/ruby/3.1.0-r0/build$ file libruby.so libruby.so: symbolic link to libruby.so.3.1.0 tmp/work/core2-64-poky-linux/ruby/3.1.0-r0/build$ file libruby.so.3.1.0 libruby.so.3.1.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=29104e2d28ae1d507a490e1de26440e9bb512e6e, with debug_info, not stripped
tmp/work/core2-64-poky-linux/ruby/3.1.0-r0/build$ stat libruby.so.3.1.0 File: libruby.so.3.1.0 Size: 18387704 Blocks: 35920 IO Block: 4096 regular file Device: fd01h/64769d Inode: 258289976 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( 6000/pokybuild) Gid: ( 6000/pokybuild) Access: 2022-01-17 15:56:13.920962593 +0000 Modify: 2022-01-16 04:16:14.522093947 +0000 Change: 2022-01-16 04:16:14.522093947 +0000 Birth: - tmp/work/core2-64-poky-linux/ruby/3.1.0-r0/build$ stat libruby.so File: libruby.so -> libruby.so.3.1.0 Size: 16 Blocks: 0 IO Block: 4096 symbolic link Device: fd01h/64769d Inode: 258290018 Links: 1 Access: (0777/lrwxrwxrwx) Uid: ( 6000/pokybuild) Gid: ( 6000/pokybuild) Access: 2022-01-17 15:55:57.989048817 +0000 Modify: 2022-01-16 04:16:14.558093782 +0000 Change: 2022-01-16 04:16:14.558093782 +0000 Birth: -
I think these can happen when the file is being written by two writers and it sees an incomplete file, or the file is being accessed before it was completely written out. This therefore could be some kind of race in ruby's makefiles?
The ruby workdir is saved in /srv/autobuilder/autobuilder.yocto.io/pub/failed-builds-data/bug14695 Running do_install again on the worker after renaming the build directory properly just worked.
https://autobuilder.yoctoproject.org/typhoon/#/builders/118/builds/1139/steps/12/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/108/builds/2535/steps/11/logs/stdio
This seems to have started after December's ruby upgrade.
Konrad, would you be able to take a look?
Patch proposed: https://lists.openembedded.org/g/openembedded-core/message/160802 Note that *not* enabling libruby.so is the upstream default.
Better patch: https://lists.openembedded.org/g/openembedded-core/message/160829
https://git.yoctoproject.org/poky/commit/?id=29a14ae59b03e8aae0e23254f881f97a4539edf0