mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00

We could do with one decent general purpose python function to query the path to the dynamic loader. Convert the shell code into python. Also correct baremetal to return "None", not musl loaders. (From OE-Core rev: 73fab4ede12d8ae31be72b5cb4ab29d7ef7dae17) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
57 lines
1.6 KiB
Plaintext
57 lines
1.6 KiB
Plaintext
do_rootfs[depends] += "mklibs-native:do_populate_sysroot"
|
|
|
|
IMAGE_PREPROCESS_COMMAND += "mklibs_optimize_image; "
|
|
|
|
inherit linuxloader
|
|
|
|
mklibs_optimize_image_doit() {
|
|
rm -rf ${WORKDIR}/mklibs
|
|
mkdir -p ${WORKDIR}/mklibs/dest
|
|
cd ${IMAGE_ROOTFS}
|
|
du -bs > ${WORKDIR}/mklibs/du.before.mklibs.txt
|
|
|
|
# Build a list of dynamically linked executable ELF files.
|
|
# Omit libc/libpthread as a special case because it has an interpreter
|
|
# but is primarily what we intend to strip down.
|
|
for i in `find . -type f -executable ! -name 'libc-*' ! -name 'libpthread-*'`; do
|
|
file $i | grep -q ELF || continue
|
|
${HOST_PREFIX}readelf -l $i | grep -q INTERP || continue
|
|
echo $i
|
|
done > ${WORKDIR}/mklibs/executables.list
|
|
|
|
dynamic_loader=${@get_linuxloader(d)}
|
|
|
|
mklibs -v \
|
|
--ldlib ${dynamic_loader} \
|
|
--libdir ${baselib} \
|
|
--sysroot ${PKG_CONFIG_SYSROOT_DIR} \
|
|
--gcc-options "--sysroot=${PKG_CONFIG_SYSROOT_DIR}" \
|
|
--root ${IMAGE_ROOTFS} \
|
|
--target `echo ${TARGET_PREFIX} | sed 's/-$//' ` \
|
|
-d ${WORKDIR}/mklibs/dest \
|
|
`cat ${WORKDIR}/mklibs/executables.list`
|
|
|
|
cd ${WORKDIR}/mklibs/dest
|
|
for i in *
|
|
do
|
|
cp $i `find ${IMAGE_ROOTFS} -name $i`
|
|
done
|
|
|
|
cd ${IMAGE_ROOTFS}
|
|
du -bs > ${WORKDIR}/mklibs/du.after.mklibs.txt
|
|
|
|
echo rootfs size before mklibs optimization: `cat ${WORKDIR}/mklibs/du.before.mklibs.txt`
|
|
echo rootfs size after mklibs optimization: `cat ${WORKDIR}/mklibs/du.after.mklibs.txt`
|
|
}
|
|
|
|
mklibs_optimize_image() {
|
|
for img in ${MKLIBS_OPTIMIZED_IMAGES}
|
|
do
|
|
if [ "${img}" = "${PN}" ] || [ "${img}" = "all" ]
|
|
then
|
|
mklibs_optimize_image_doit
|
|
break
|
|
fi
|
|
done
|
|
}
|