From: Bart Van Assche Date: Sun, 16 Mar 2008 07:44:29 +0000 (+0000) Subject: Shell script that tests whether or not the specified executable will be loaded with... X-Git-Tag: svn/VALGRIND_3_4_0~872 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=dde823a6c81a7b964deb2508bc5546f2fdaba4d4;p=thirdparty%2Fvalgrind.git Shell script that tests whether or not the specified executable will be loaded with a libgomp.so library that contains debug information. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7692 --- diff --git a/exp-drd/tests/run_openmp_test b/exp-drd/tests/run_openmp_test new file mode 100755 index 0000000000..19e93cc1e3 --- /dev/null +++ b/exp-drd/tests/run_openmp_test @@ -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