diff options
| -rwxr-xr-x | scripts/dump_exported_symbols.sh | 12 | ||||
| -rwxr-xr-x | travis/install.sh | 2 |
2 files changed, 13 insertions, 1 deletions
diff --git a/scripts/dump_exported_symbols.sh b/scripts/dump_exported_symbols.sh index b03d711a..4bd23d64 100755 --- a/scripts/dump_exported_symbols.sh +++ b/scripts/dump_exported_symbols.sh @@ -1,2 +1,12 @@ #!/bin/sh -objdump -TC "$1" | grep " g DF .text" | cut -b 62- | grep -v "thunk to" | sed "s/internal_//" | grep -v "Java_" | sed "s/std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >/std::string/g" | sed "s/std::string >/std::string>/g" | sed "s/\[abi:cxx11\]//g" | sort -u
\ No newline at end of file + +if objdump -TC "$1" | grep "elf64-x86-64">/dev/null; then + COLUMN=62 +#elif objdump -TC "$1" | grep "elf32-i386">/dev/null; then +# COLUMN=46 +else + echo "Unsupported architecture" + exit 1 +fi + +objdump -TC "$1" | grep " g DF .text" | cut -b "${COLUMN}-" | grep -v "thunk to" | sed "s/internal_//" | grep -v "Java_" | sed "s/std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >/std::string/g" | sed "s/std::string >/std::string>/g" | sed "s/\[abi:cxx11\]//g" | sort -u diff --git a/travis/install.sh b/travis/install.sh index a8b98f98..56533d21 100755 --- a/travis/install.sh +++ b/travis/install.sh @@ -43,9 +43,11 @@ cd build_autoconf make -j${NPROC} if [ "$(uname)" == "Linux" -a -f src/.libs/libproj.so ]; then + if objdump -TC "$1" | grep "elf64-x86-64">/dev/null; then echo "Checking exported symbols..." ${TOP_DIR}/scripts/dump_exported_symbols.sh src/.libs/libproj.so > /tmp/got_symbols.txt diff -u ${TOP_DIR}/scripts/reference_exported_symbols.txt /tmp/got_symbols.txt || (echo "Difference(s) found in exported symbols. If intended, refresh scripts/reference_exported_symbols.txt with 'scripts/dump_exported_symbols.sh src/.libs/libproj.so > scripts/reference_exported_symbols.txt'"; exit 1) + fi fi make check |
