aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xscripts/dump_exported_symbols.sh12
-rwxr-xr-xtravis/install.sh2
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