binutils-gdb/gprofng/libcollector/CHK_LIBC_OBJ
Alan Modra 76bdc7266a Update year range in gprofng copyright notices
This adds 'Innovative Computing Labs' as an external author to
update-copyright.py, to cover the copyright notice in
gprofng/common/opteron_pcbe.c, and uses that plus another external
author 'Oracle and' to update gprofng copyright dates.  I'm not going
to commit 'Oracle and' as an accepted author, but that covers the
string "Copyright (c) 2006, 2012, Oracle and/or its affiliates. All
rights reserved." found in gprofng/testsuite/gprofng.display/jsynprog
files.
2023-01-01 23:26:30 +10:30

83 lines
2.4 KiB
Bash
Executable File

#!/bin/sh
#
# Copyright (C) 2021-2023 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
#
# CHK_LIBC_OBJ -- a script to scan the .o's in an output directory,
# which is one of ../{intel-S2,sparc-S2,intel-Linux,sparc-Linux}
#
# usage: cd to the output directory, and invoke ../src/CHK_LIBC_OBJ
check_obj() {
logF="nm.`basename $1`.log"
if [ `uname` = 'Linux' ]; then
nm $1 | grep -v GLIBC_ > ${logF}
else
nm $1 > ${logF}
fi
FUNC_LIST="strcpy strlcpy strncpy strcat strlcat strncat strncmp strlen \
strerror strchr strrchr strpbrk strstr strtok strtok_r \
printf fprintf sprintf snprintf asprintf wsprintf \
vprintf vfprintf vsprintf vsnprintf vasprintf \
memset memcmp memcpy strtol strtoll strtoul strtoull \
getcpuid calloc malloc free strdup"
res=0
echo " -- Checking Object file '$1' for functions from libc"
for j in `echo ${FUNC_LIST}` ; do
grep -w ${j} ${logF} | grep UNDEF> grep.log 2>&1
if [ $? -eq 0 ]; then
grep -w ${j} ${logF}
res=1
fi
done
return ${res}
}
STATUS=0
for i in *.o ; do
echo ""
check_obj ${i}
res=$?
if [ ${res} -eq 0 ]; then
echo "Object file ${i} does not reference functions in libc"
else
echo "======Object file: ${i} DOES reference functions in libc"
fi
if [ ${STATUS} -eq 0 ]; then
STATUS=${res}
fi
done
for i in *.so ; do
echo ""
check_obj ${i}
res=$?
if [ ${res} -eq 0 ]; then
echo "Object file ${i} does not reference functions in libc"
else
echo "======Object file: ${i} DOES reference functions in libc"
fi
if [ ${STATUS} -eq 0 ]; then
STATUS=${res}
fi
done
exit $STATUS