summaryrefslogtreecommitdiff
path: root/build.sh
diff options
context:
space:
mode:
authorJan Vorlicek <janvorli@microsoft.com>2016-10-27 21:53:35 +0200
committerGitHub <noreply@github.com>2016-10-27 21:53:35 +0200
commitc26e5c5e23446a8c46eab7a071edb8fe6c2ef216 (patch)
tree9511e2a6395121a3a01867ae196b804053c7f73a /build.sh
parent675622bb85f3c78de1967a78052d7280a2834611 (diff)
downloadcoreclr-c26e5c5e23446a8c46eab7a071edb8fe6c2ef216.tar.gz
coreclr-c26e5c5e23446a8c46eab7a071edb8fe6c2ef216.tar.bz2
coreclr-c26e5c5e23446a8c46eab7a071edb8fe6c2ef216.zip
Add verification of System.Globalization.Native.so symbols (#7848)
This change adds check of undefined dependencies of the System.Globalization.Native.so to the build.sh. The recent change that made the ICU APIs resolving driven by the shared library itself creates a potential for someone adding usage of an ICU API that is not defined in the icushim.h. With this change, such problem will be caught during the build and cause it to fail.
Diffstat (limited to 'build.sh')
-rwxr-xr-xbuild.sh9
1 files changed, 9 insertions, 0 deletions
diff --git a/build.sh b/build.sh
index c9ef04f3c8..706ee98dd6 100755
--- a/build.sh
+++ b/build.sh
@@ -217,6 +217,15 @@ build_coreclr()
echo "Failed to build coreclr components."
exit 1
fi
+
+ echo "Verifying System.Globalization.Native.so dependencies"
+
+ ldd -r $__BinDir/System.Globalization.Native.so | awk 'BEGIN {count=0} /undefined symbol:/ { if (count==0) {print "Undefined symbol(s) found:"} print " " $3; count++ } END {if (count>0) exit(1)}'
+ if [ $? != 0 ]; then
+ echo "Failed. System.Globalization.Native.so has undefined dependencies. These are likely ICU APIs that need to be added to icushim.h"
+ exit 1
+ fi
+
popd
}