1 Star 0 Fork 107

yinchuang/openEuler-rpm-config_1

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
brp-check-elf-files 1.17 KB
一键复制 编辑 原始数据 按行查看 历史
#!/bin/sh
# Check elf files
if [ -z "$RPM_BUILD_ROOT" ]; then
echo "No build root defined" >&2
exit 1
fi
if [ ! -d "$RPM_BUILD_ROOT" ]; then
echo "Invalid build root" >&2
exit 1
fi
LIB="$(rpm --eval %{_lib})"
export LD_LIBRARY_PATH="$RPM_BUILD_ROOT/$LIB:$RPM_BUILD_ROOT/usr/$LIB"
find "$RPM_BUILD_ROOT" -type f \( -executable -o -name \*.so\* \) -a \
\( ! -path $RPM_BUILD_ROOT/usr/lib/debug/\* -a \
! -path $RPM_BUILD_ROOT/usr/src/debug/\* \) \
-print0 |
xargs --no-run-if-empty -0 file -N -L |
grep -e '\.so.*: ELF.*shared' -e ': ELF.*executable' |
while read match; do
path="$(echo $match | cut -d':' -f1)"
syspath="$(echo $path | sed -e "s#^$RPM_BUILD_ROOT##")"
unused_libs="$(ldd -u -r $path 2> /dev/null | grep /)"
if [ -n "$unused_libs" ]; then
printf '%s\n' "Warning: unused libraries in $syspath: " >&2
printf '%s\n' "$unused_libs" >&2
fi
if echo $match |grep -q shared; then
undefined_symbols="$(ldd -r $path 2>&1 | grep '^undefined symbol: '| sed -e 's#^undefined symbol:##g' -e "s#($path).*##g" | tr -d '\n' | tr -d '\t')"
if [ -n "$undefined_symbols" ]; then
printf '%s\n' "Warning: undefined symbols in $syspath:$undefined_symbols" >&2
fi
fi
done
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ychuawei/openEuler-rpm-config_1.git
git@gitee.com:ychuawei/openEuler-rpm-config_1.git
ychuawei
openEuler-rpm-config_1
openEuler-rpm-config_1
master

搜索帮助