do_populate_sysroot: Function failed: relocatable_binaries_preprocess
After updating this morning (everything on master, re-using the existing build dir that was built OK within the last 48h) I saw this:
ERROR: pseudo-native-1.8.1-r0 do_populate_sysroot: pseudo-native: chrpath command failed with exit code 7:
b'/home/paul/poky/build/tmp/work/x86_64-linux/pseudo-native/1.8.1-r0/sysroot-destdir/home/paul/poky/build/tmp/work/x86_64-linux/pseudo-native/1.8.1-r0/recipe-sysroot-native/usr/bin/pseudodb:
RPATH=/home/paul/poky/build/tmp/sysroots/x86_64-linux/usr/lib:/home/paul/poky/build/tmp/sysroots/x86_64-linux/lib\n'b"new
rpath
'$ORIGIN/../../../../../../../sysroots/x86_64-linux/usr/lib:$ORIGIN/../../../../../../../sysroots/x86_64-linux/lib' too large; maximum length 107\n"
ERROR: pseudo-native-1.8.1-r0 do_populate_sysroot: Function failed: relocatable_binaries_preprocess
ERROR: Logfile of failure stored in: /home/paul/poky/build/tmp/work/x86_64-linux/pseudo-native/1.8.1-r0/temp/log.do_populate_sysroot.11
I did a cleansstate on that and then it was fine but then openssl died in the same way:
ERROR: openssl-native-1.0.2j-r0 do_populate_sysroot: openssl-native: chrpath command failed with exit code 7:
b'/home/paul/poky/build/tmp/work/x86_64-linux/openssl-native/1.0.2j-r0/sysroot-destdir/home/paul/poky/build/tmp/work/x86_64-linux/openssl-native/1.0.2j-r0/recipe-sysroot-native/usr/lib/libssl.so.1.0.0: RPATH=/home/paul/poky/build/tmp/sysroots/x86_64-linux/usr/lib:/home/paul/poky/build/tmp/sysroots/x86_64-linux/lib\n'b"new rpath '$ORIGIN/../../../../../../../sysroots/x86_64-linux/usr/lib:$ORIGIN/../../../../../../../sysroots/x86_64-linux/lib' too large; maximum length 107\n"
ERROR: openssl-native-1.0.2j-r0 do_populate_sysroot: Function failed: relocatable_binaries_preprocess
ERROR: Logfile of failure stored in: /home/paul/poky/build/tmp/work/x86_64-linux/openssl-native/1.0.2j-r0/temp/log.do_populate_sysroot.7182
ERROR: Task (virtual:native:/home/paul/poky/meta/recipes-connectivity/openssl/openssl_1.0.2j.bb:do_populate_sysroot) failed with exit code '1'
I mentioned it to Mark and he suggested I should mention it here.
P.
Quoted 10 lines · Paul Gortmaker
After updating this morning (everything on master, re-using the existing build dir that was built OK within the last 48h) I saw this:
ERROR: pseudo-native-1.8.1-r0
do_populate_sysroot: pseudo-native: chrpath command failed with exit code 7:
b'/home/paul/poky/build/tmp/work/x86_64-linux/pseudo-native/1.8.1-r0/sysroot-destdir/home/paul/poky/build/tmp/work/x86_64-linux/pseudo-native/1.8.1-r0/recipe-sysroot-native/usr/bin/pseudodb:
RPATH=/home/paul/poky/build/tmp/sysroots/x86_64-linux/usr/lib:/home/paul/poky/build/tmp/sysroots/x86_64-linux/lib\n'b"new
rpath
'$ORIGIN/../../../../../../../sysroots/x86_64-linux/usr/lib:$ORIGIN/../../../../../../../sysroots/x86_64-linux/lib' too large; maximum length 107\n"
ERROR: pseudo-native-1.8.1-r0do_populate_sysroot: Function failed:relocatable_binaries_preprocess
ERROR: Logfile of failure stored in:/home/paul/poky/build/tmp/work/x86_64-linux/pseudo-native/1.8.1-r0/temp/log.do_populate_sysroot.11
Looking at it, the error from chrpath is easy to explain. The original RPATH value is shorted then the new RPATH value that was calculated.
i.e.:/home/paul/poky/build/tmp/sysroots/x86_64-linux/usr/lib
vs
$ORIGIN/../../../../../../../sysroots/x86_64-linux/usr/lib
So the system errors because it would overflow the buffer inside of the ELF object.
What is strange is this issue is new. It means something has changed in the origin processing of native packages over the weekend.
I'm wondering if this has something to do with the new recipe specific sysroot.
It should hopefully be easy to _workaround_ this issue, by having the build directory in a deeper path (something with more characters in it.)
But this is a big enough program we're going to have to figure out how to solve it.
--Mark
Quoted 14 lines
I did a cleansstate on that and then it was fine but then openssl died in the same way:
ERROR: openssl-native-1.0.2j-r0
do_populate_sysroot: openssl-native: chrpath command failed with exit code 7:
b'/home/paul/poky/build/tmp/work/x86_64-linux/openssl-native/1.0.2j-r0/sysroot-destdir/home/paul/poky/build/tmp/work/x86_64-linux/openssl-native/1.0.2j-r0/recipe-sysroot-native/usr/lib/libssl.so.1.0.0: RPATH=/home/paul/poky/build/tmp/sysroots/x86_64-linux/usr/lib:/home/paul/poky/build/tmp/sysroots/x86_64-linux/lib\n'b"new rpath '$ORIGIN/../../../../../../../sysroots/x86_64-linux/usr/lib:$ORIGIN/../../../../../../../sysroots/x86_64-linux/lib' too large; maximum length 107\n"
ERROR: openssl-native-1.0.2j-r0do_populate_sysroot: Function failed:relocatable_binaries_preprocess
ERROR: Logfile of failure stored in:/home/paul/poky/build/tmp/work/x86_64-linux/openssl-native/1.0.2j-r0/temp/log.do_populate_sysroot.7182
ERROR: Task (virtual:native:/home/paul/poky/meta/recipes-connectivity/openssl/openssl_1.0.2j.bb:do_populate_sysroot) failed with exit code '1'I mentioned it to Mark and he suggested I should mention it here.
P.
Quoted 13 lines · Paul Gortmaker
After updating this morning (everything on master, re-using the existing
build dir that was built OK within the last 48h) I saw this:ERROR: pseudo-native-1.8.1-r0
do_populate_sysroot: pseudo-native:
chrpath command failed with exit code 7:
b'/home/paul/poky/build/tmp/work/x86_64-linux/pseudo-native/1.8.1- r0/sysroot-destdir/home/paul/poky/build/tmp/work/x86_64-linux/pseudo- native/1.8.1-r0/recipe-sysroot-native/usr/bin/pseudodb:
RPATH=/home/paul/poky/build/tmp/sysroots/x86_64- linux/usr/lib:/home/paul/poky/build/tmp/sysroots/x86_64- linux/lib\n'b"new
rpath
Quoted 8 lines
'$ORIGIN/../../../../../../../sysroots/x86_64- linux/usr/lib:$ORIGIN/../../../../../../../sysroots/x86_64-linux/lib' too large; maximum length 107\n"
ERROR: pseudo-native-1.8.1-r0do_populate_sysroot: Function failed:relocatable_binaries_preprocess
ERROR: Logfile of failure stored in:/home/paul/poky/build/tmp/work/x86_64-linux/pseudo-native/1.8.1-r0/temp/log.do_populate_sysroot.11
To follow up we've figured out this is the error you see if you take an existing build directory, pre recipe specific sysroot and then update to post recipe specific sysroot.
It seems that pseudo-native, openssl-native and subversion-native have issues where you can pass in new configuration but they don't recompile the binaries, despite those binaries depending on the paths you pass in.
We're seeing how widespread the problem is before deciding exactly how to handle this. It might be a case of some PR bumps, obvioulsy wiping TMPDIR is the comprehensive solution.
Cheers,
Richard