diff --git a/libnozzle/tests/api-test-coverage b/libnozzle/tests/api-test-coverage index c68f862b..06a61439 100755 --- a/libnozzle/tests/api-test-coverage +++ b/libnozzle/tests/api-test-coverage @@ -1,49 +1,52 @@ #!/bin/sh # # Copyright (C) 2016-2018 Red Hat, Inc. All rights reserved. # # Author: Fabio M. Di Nitto # # This software licensed under GPL-2.0+, LGPL-2.0+ # srcdir="$1"/libnozzle builddir="$2"/libnozzle headerapicalls="$(grep nozzle_ "$srcdir"/libnozzle.h | grep -v "^ \*" | grep -v ^struct | grep -v "^[[:space:]]" | grep -v typedef | sed -e 's/(.*//g' -e 's/^const //g' -e 's/\*//g' | awk '{print $2}')" -exportedapicalls="$(nm -B -D "$builddir"/.libs/libnozzle.so | grep ' T ' | awk '{print $3}')" +# The PowerPC64 ELFv1 ABI defines the address of a function as that of a +# function descriptor defined in .opd, a data (D) section. Other ABIs +# use the entry address of the function itself in the text (T) section. +exportedapicalls="$(nm -B -D "$builddir"/.libs/libnozzle.so | grep ' [DT] ' | awk '{print $3}')" echo "Checking for exported symbols NOT available in header file" for i in $exportedapicalls; do found=0 for x in $headerapicalls; do if [ "$x" = "$i" ]; then found=1 break; fi done if [ "$found" = 0 ]; then echo "Symbol $i not found in header file" exit 1 fi done echo "Checking for symbols in header file NOT exported by binary lib" for i in $headerapicalls; do found=0 for x in $exportedapicalls; do if [ "$x" = "$i" ]; then found=1 break; fi done if [ "$found" = 0 ]; then echo "Symbol $i not found in binary lib" exit 1 fi done exit 0