mirror of
https://git.yoctoproject.org/poky
synced 2026-04-18 03:32:13 +02:00
glibc: improve reproducibility with multilib
Multilib builds specify several loaders which will end up embedded in some binaries or script files. To support reproducible builds, we must ensure the loaders are always in deterministic order. [YOCTO #2655] [YOCTO #12478] [YOCTO #12480] (From OE-Core rev: 3f839c0cdfe253677ebee47838fe476a0939e0aa) Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Improve the fix and rebase it to 2.28 Here is the log of lib32-glibc [log.do_compile] |Adjust ldd script |ldd "/lib64/ld-linux-x86-64.so.2 /lib/ld-linux.so.2 /lib/ld-linux.so.2 /lib64/ld-linux-x86-64.so.2" -> "/lib/ld-linux.so.2 /lib64/ld-linux-x86-64.so.2" [log.do_compile] Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
b71c20a8b0
commit
ede2e5b4b3
@@ -10,8 +10,8 @@ def glibc_dl_info(d):
|
||||
infos['ldconfig'].add('{"' + loader + '",' + "FLAG_ELF_LIBC6" + ' }')
|
||||
infos['lddrewrite'].add(loader)
|
||||
|
||||
infos['ldconfig'] = ','.join(infos['ldconfig'])
|
||||
infos['lddrewrite'] = ' '.join(infos['lddrewrite'])
|
||||
infos['ldconfig'] = ','.join(sorted(infos['ldconfig']))
|
||||
infos['lddrewrite'] = ' '.join(sorted(infos['lddrewrite']))
|
||||
return infos
|
||||
|
||||
EGLIBC_KNOWN_INTERPRETER_NAMES = "${@glibc_dl_info(d)['ldconfig']}"
|
||||
|
||||
@@ -122,10 +122,10 @@ do_compile () {
|
||||
if [ -n "${RTLDLIST}" ]
|
||||
then
|
||||
prevrtld=`cat ${B}/elf/ldd | grep "^RTLDLIST=" | sed 's#^RTLDLIST="\?\([^"]*\)"\?$#\1#'`
|
||||
if [ "${prevrtld}" != "${RTLDLIST}" ]
|
||||
then
|
||||
sed -i ${B}/elf/ldd -e "s#^RTLDLIST=.*\$#RTLDLIST=\"${prevrtld} ${RTLDLIST}\"#"
|
||||
fi
|
||||
# remove duplicate entries
|
||||
newrtld=`echo $(printf '%s\n' ${prevrtld} ${RTLDLIST} | LC_ALL=C sort -u)`
|
||||
echo "ldd \"${prevrtld} ${RTLDLIST}\" -> \"${newrtld}\""
|
||||
sed -i ${B}/elf/ldd -e "s#^RTLDLIST=.*\$#RTLDLIST=\"${newrtld}\"#"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user