]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Refinement: OpenMP tests are now only run if libgomp.so has debug information and...
authorBart Van Assche <bvanassche@acm.org>
Sun, 16 Mar 2008 10:41:25 +0000 (10:41 +0000)
committerBart Van Assche <bvanassche@acm.org>
Sun, 16 Mar 2008 10:41:25 +0000 (10:41 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7703

exp-drd/tests/run_openmp_test

index 19e93cc1e304f6b892495bd32ab16ad56b46b7cf..e329e6c5bde4ad75367dd73a403f54988893c91b 100755 (executable)
@@ -4,6 +4,25 @@
 # 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.
 
+# Inspect the output of nm. If nm does not find any symbol information,
+# echo 1. If the symbol gomp_barrier_init is found, echo 0. Otherwise echo
+# nothing. The second case occurs if gcc has been compiled with 
+# --disable-linux-futex, and the last case occurs if gcc has been compiled with
+# --enable-linux-futex.
+function parse_libgomp {
+  nm "$1" 2>&1 \
+  |
+  while read line
+  do
+    if [ "${line%: no symbols}" != "${line}" ]; then
+      echo 1
+    elif [ "${line% gomp_barrier_init}" != "${line}" ]; then
+      echo 0
+    fi
+  done
+}
+
+
 test -e "$1" || exit $?
 
 if [ "$(uname)" = Linux ]; then
@@ -13,17 +32,7 @@ if [ "$(uname)" = Linux ]; then
     | 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
+  rc="$(parse_libgomp "${libgomp_path}")"
+  exit ${rc:-1}
 
 fi