6bfa4a28aa
In an environment created by `hsh --initroot-only`: $ for i in /usr/lib/rpm/*; do rpm -qf --qf='%{name}: '"$i"'\n' "$i"; done | grep '^rpm:' rpm: /usr/lib/rpm/0ldconfig.filetrigger rpm: /usr/lib/rpm/GROUPS rpm: /usr/lib/rpm/find-package rpm: /usr/lib/rpm/functions rpm: /usr/lib/rpm/macros.d rpm: /usr/lib/rpm/pdeath_execute rpm: /usr/lib/rpm/platform rpm: /usr/lib/rpm/posttrans-filetriggers rpm: /usr/lib/rpm/postupdate rpm: /usr/lib/rpm/rpmd rpm: /usr/lib/rpm/rpmdb_loadcvt rpm: /usr/lib/rpm/rpme rpm: /usr/lib/rpm/rpmi rpm: /usr/lib/rpm/rpmk rpm: /usr/lib/rpm/rpmpopt-4.13.0.1 rpm: /usr/lib/rpm/rpmq rpm: /usr/lib/rpm/rpmu rpm: /usr/lib/rpm/rpmv The `scripts/functions` file is provided from the rpm project in real installations. Let's ensure scripts in this package use the functions file from this package.
42 lines
1.2 KiB
Bash
Executable File
42 lines
1.2 KiB
Bash
Executable File
#!/bin/sh -efu
|
|
#
|
|
# Process single file for LTO business.
|
|
# (Will be run multiple instances in parallel.)
|
|
#
|
|
# Based on brp-strip-lto (Fedora).
|
|
# Copyright (c) 2021 Vitaly Chikunov <vt@altlinux.org>.
|
|
# License: GPLv2+.
|
|
#
|
|
# Implementation notes:
|
|
# - eu-strip cannot be used due to absence of `-N`.
|
|
|
|
. @RPMCONFIGDIR@/rpmb-functions
|
|
ValidateBuildRoot
|
|
|
|
cd "$RPM_BUILD_ROOT"
|
|
mkdir -p .tmp
|
|
|
|
# If there is only slim lto, strip will produce "plugin needed to handle lto
|
|
# object" warning, because of stripping __gnu_lto_v1 symbol while remaining
|
|
# __gnu_lto_slim.
|
|
strip -p -R '.gnu.lto_*' -R '.gnu.debuglto_*' -N '__gnu_lto_v1' -- "$@" ||
|
|
Fatal 'strip failed'
|
|
|
|
# Verify that we still have exportable symbols.
|
|
for f; do
|
|
# Output in one line per symbol format.
|
|
nm -g -A -P "$f" > .tmp/lto-nm.$$ 2>/dev/null
|
|
if grep -F -q -w ': __gnu_lto_slim' .tmp/lto-nm.$$; then
|
|
echo >> .tmp/lto-suggest
|
|
if grep -F -q -v -w ': __gnu_lto_slim' .tmp/lto-nm.$$; then
|
|
Fatal "$f: contains __gnu_lto_slim."
|
|
else
|
|
Fatal "$f: contains __gnu_lto_slim only."
|
|
fi
|
|
elif [ ! -s .tmp/lto-nm.$$ ]; then
|
|
# This is only informational call of file.
|
|
Warning "$f: contains no exportable symbols: $(file4 -b "$f")"
|
|
fi
|
|
rm .tmp/lto-nm.$$
|
|
done
|