summaryrefslogtreecommitdiff
path: root/usr/src/make_src/exe/sanity-check.sh
diff options
context:
space:
mode:
authorIgor Pashev <igor.pashev@nexenta.com>2012-06-29 14:36:07 +0400
committerIgor Pashev <igor.pashev@nexenta.com>2012-06-29 14:36:07 +0400
commite0463df9c3d2ee6155221cc443c571d5da47098a (patch)
tree5c6b99e64c1b65d986e2722728c74f202a578be6 /usr/src/make_src/exe/sanity-check.sh
downloadsunmake-orig.tar.gz
Initial import of DevPro make sourcesorig
Downloaded from http://dlc.sun.com/osol/devpro/downloads/current/ Licensed under CDDL http://www.opensource.org/licenses/CDDL-1.0
Diffstat (limited to 'usr/src/make_src/exe/sanity-check.sh')
-rw-r--r--usr/src/make_src/exe/sanity-check.sh60
1 files changed, 60 insertions, 0 deletions
diff --git a/usr/src/make_src/exe/sanity-check.sh b/usr/src/make_src/exe/sanity-check.sh
new file mode 100644
index 0000000..f59def8
--- /dev/null
+++ b/usr/src/make_src/exe/sanity-check.sh
@@ -0,0 +1,60 @@
+#! /bin/sh
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright 1996 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+# @(#)sanity-check.sh 1.6 06/12/12
+#
+
+# Run a sanity check on $1. Sanity is loosely defined as "ok to ship to a customer".
+# Currently checks for the following:
+# no forbidden RPATH
+# no forbidden shared libraries
+# Since sanity is only important for those things we ship to customers, don't
+# check it on debugging builds.
+
+top=$1
+variant=`/bin/sh $top/exe/variant.sh`
+if [ -f $top/debug-$variant.opt ]; then
+ exit 0
+fi
+
+prog=$2
+status=0
+
+/usr/ccs/bin/dump -Lv $prog \
+ | /bin/grep RPATH | \
+ /bin/egrep 'net|export|set' > /dev/null
+if [ $? -eq 0 ]; then
+ echo Error: $prog has forbidden RPATH
+ /usr/ccs/bin/dump -Lv $prog | /bin/grep RPATH
+ status=1
+fi
+
+/bin/ldd $prog |/bin/egrep 'libC|libsunmath|net|export|set' > /dev/null
+if [ $? -eq 0 ]; then
+ echo Error: $prog has forbidden libraries
+ /bin/ldd $prog |/bin/egrep 'libC|libsunmath|net|export|set'
+ status=2
+fi
+
+exit $status