66 lines
1.6 KiB
Bash
Executable File
66 lines
1.6 KiB
Bash
Executable File
#!/bin/sh
|
|
#BHEADER**********************************************************************
|
|
# Copyright (c) 2008, Lawrence Livermore National Security, LLC.
|
|
# Produced at the Lawrence Livermore National Laboratory.
|
|
# This file is part of HYPRE. See file COPYRIGHT for details.
|
|
#
|
|
# HYPRE is free software; you can redistribute it and/or modify it under the
|
|
# terms of the GNU Lesser General Public License (as published by the Free
|
|
# Software Foundation) version 2.1 dated February 1999.
|
|
#
|
|
# $Revision$
|
|
#EHEADER**********************************************************************
|
|
|
|
testname=`basename $0 .sh`
|
|
|
|
# Echo usage information
|
|
case $1 in
|
|
-h|-help)
|
|
cat <<EOF
|
|
|
|
$0 [-h|-help] {src_dir}
|
|
|
|
where: {src_dir} is the hypre source directory
|
|
-h|-help prints this usage information and exits
|
|
|
|
This script checks if there are any globally defined symbols in libHYPRE.a
|
|
without the appropriate namespace protection.
|
|
|
|
Example usage: $0 ..
|
|
|
|
EOF
|
|
exit
|
|
;;
|
|
esac
|
|
|
|
# Setup
|
|
src_dir=$1
|
|
shift
|
|
|
|
cd $src_dir
|
|
|
|
# find global symbols
|
|
if [ -f lib/libHYPRE.a ]; then
|
|
nm -o --extern-only --defined-only lib/libHYPRE.a |
|
|
grep -vi hypre_ |
|
|
grep -vi mli_ |
|
|
grep -vi fei_ |
|
|
grep -vi Euclid |
|
|
grep -vi ParaSails |
|
|
grep -v " _Z" > check-glob-symb.temp
|
|
else
|
|
echo "check-glob-symb.sh can't find lib/libHYPRE.a"
|
|
fi
|
|
|
|
# find the '.o' file directories and add them to the output for filtering
|
|
while read line
|
|
do
|
|
sym=`echo $line | awk -F: '{print $2}'`
|
|
for dir in `find . -name $sym`
|
|
do
|
|
echo $line | awk -v dir=$dir -F: 'BEGIN {OFS=FS} {print $1,dir,$3}'
|
|
done
|
|
done < check-glob-symb.temp >&2
|
|
|
|
rm -f check-glob-symb.temp
|