]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Shell script that tests whether or not the specified executable will be loaded with...
authorBart Van Assche <bvanassche@acm.org>
Sun, 16 Mar 2008 07:44:29 +0000 (07:44 +0000)
committerBart Van Assche <bvanassche@acm.org>
Sun, 16 Mar 2008 07:44:29 +0000 (07:44 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7692

exp-drd/tests/run_openmp_test [new file with mode: 0755]

diff --git a/exp-drd/tests/run_openmp_test b/exp-drd/tests/run_openmp_test
new file mode 100755 (executable)
index 0000000..19e93cc
--- /dev/null
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+# Shell script with one argument (path of an OpenMP executable) that exits
+# with status 0 if the OpenMP test program should be run and that exits with
+# status 1 if the OpenMP test program should not be run.
+
+test -e "$1" || exit $?
+
+if [ "$(uname)" = Linux ]; then
+
+  # Let the dynamic linker/loader print the path of libgomp. See also man ld.so
+  libgomp_path="$(LD_TRACE_LOADED_OBJECTS=1 "$1" \
+    | while read soname arrow path offset; \
+   do if [ "${soname#libgomp.so}" != "${soname}" ]; then echo $path; fi; done)"
+
+  # Inspect the first line of the output of nm. If nm does not find any symbol
+  # information, return exit code 1, and otherwise return exit code 0.
+  nm "${libgomp_path}" 2>&1 \
+  |
+  while read line
+  do
+    if [ "${line%: no symbols}" != "${line}" ]; then
+      exit 1
+    else
+      exit 0
+    fi
+  done
+
+fi