strip-commands is kinda slow
[--:--:--][4d9f3f8c][build:sdk/WebKitGTK.bst ] START Running strip-commands
[--:--:--][4d9f3f8c][build:sdk/WebKitGTK.bst ] STATUS Running strip-commands
touch source-files
find "/buildstream-install" -type f \
'(' -perm -111 -o -name '*.so*' \
-o -name '*.cmxs' -o -name '*.node' ')' \
-print0 | while read -r -d $'\0' file; do
read -n4 hdr <"${file}" || continue # check for elf header
if [ "$hdr" != "$(printf \\x7fELF)" ]; then
continue
fi
if objdump -j .gnu_debuglink -s "${file}" &>/dev/null; then
continue
fi
case "${file}" in
"/buildstream-install/usr/lib/debug/"*)
continue
;;
*)
;;
esac
realpath="$(realpath -s --relative-to="/buildstream-install" "${file}")"
Message contains 22 additional lines
[00:03:42][4d9f3f8c][build:sdk/WebKitGTK.bst ] SUCCESS Running strip-commands
3m42s. Maybe this is just as long as it takes, but perhaps it could be improved somehow? Any ideas?
We have this in project.conf:
# This should eventually done with buildstream includes
strip-binaries: |
touch source-files
find "%{install-root}" -type f \
'(' -perm -111 -o -name '*.so*' \
-o -name '*.cmxs' -o -name '*.node' ')' \
-print0 | while read -r -d $'\0' file; do
read -n4 hdr <"${file}" || continue # check for elf header
if [ "$hdr" != "$(printf \\x7fELF)" ]; then
continue
fi
if objdump -j .gnu_debuglink -s "${file}" &>/dev/null; then
continue
fi
case "${file}" in
"%{install-root}%{debugdir}/"*)
continue
;;
*)
;;
esac
realpath="$(realpath -s --relative-to="%{install-root}" "${file}")"
debugfile="%{install-root}%{debugdir}/${realpath}.debug"
mkdir -p "$(dirname "$debugfile")"
debugedit -i --list-file=source-files.part --base-dir="%{build-root}" --dest-dir="%{debugdir}/source/%{element-name}" "${file}"
cat source-files.part >>source-files
objcopy %{objcopy-extract-args} "${file}" "$debugfile"
chmod 644 "$debugfile"
mode="$(stat -c 0%a "${file}")"
[ -w "${file}" ] || chmod +w "${file}"
strip %{strip-args} "${file}"
objcopy %{objcopy-link-args} "$debugfile" "${file}"
chmod "${mode}" "${file}"
done
sort -zu <source-files | while read -r -d $'\0' source; do
dst="%{install-root}%{debugdir}/source/%{element-name}/${source}"
src="%{build-root}/${source}"
if [ -d "${src}" ]; then
install -m0755 -d "${dst}"
continue
fi
[ -f "${src}" ] || continue
install -m0644 -D "${src}" "${dst}"
done