From: Jan Rękorajski Date: Thu, 14 Oct 2010 08:45:45 +0000 (+0000) Subject: - reduce awk invocations in check_so (by Przemysław Iskra, sparky -*- pld-linux.org) X-Git-Tag: auto/th/rpm-build-macros-1_588-1~10 X-Git-Url: http://git.pld-linux.org/?a=commitdiff_plain;h=b6c601e3dadd4d4787192452000bc18c33529f6a;p=packages%2Frpm-pld-macros.git - reduce awk invocations in check_so (by Przemysław Iskra, sparky -*- pld-linux.org) Changed files: rpm.macros -> 1.584 --- diff --git a/rpm.macros b/rpm.macros index 047c9f6..2455b04 100644 --- a/rpm.macros +++ b/rpm.macros @@ -645,7 +645,7 @@ fi; }; __spec_install_post_chrpath } } } fail=0; \ printf "Searching for shared objects with unresolved symbols..."; \ for f in $(find $RPM_BUILD_ROOT -type f -name '*.so.*' -print); do \ - %{?skip_post_check_so:echo %{skip_post_check_so} | LC_ALL=C awk '{ gsub(/[ \t]+/,"\n"); print }' | LC_ALL=C awk -v "file=$f" 'file ~ "(^|/)" $0 "$" { exit(1) }' || continue ;} \ + %{?skip_post_check_so:awk -v "file=$f" 'BEGIN { split("%{skip_post_check_so}", R); for (i=1; i in R; i++) { if (file ~ "(^|/)" R[i] "$") exit(1); } }' || continue;} \ LC_ALL=C objdump -T $f 2> /dev/null | LC_ALL=C awk -v "file=$f" 'BEGIN { found=0; skip["program_name"]=1; symbols = "" } /^[0-9a-z]+ +D +\*UND\*/ { if ($NF in skip) { next; }; found = 1; symbols = symbols "\n\t" $NF } END { if (found) { print "\nUnresolved symbols found in: " file symbols; exit(1); } } ' || fail=1 ; \ done ; \ echo " DONE"; \