From e7fc87b21ed9a3f193e750d24371c47615689831 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 26 Nov 2020 20:19:15 +0100 Subject: travis/install.sh: make it robust to objdump on 20.04 and/or clang outputing symbols in different order --- travis/install.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/travis/install.sh b/travis/install.sh index 8897f823..a4d8352a 100755 --- a/travis/install.sh +++ b/travis/install.sh @@ -41,8 +41,9 @@ make >/dev/null if [ "$(uname)" == "Linux" -a -f src/.libs/libproj.so ]; then if objdump -TC "src/.libs/libproj.so" | grep "elf64-x86-64">/dev/null; then echo "Checking exported symbols..." - $TRAVIS_BUILD_DIR/scripts/dump_exported_symbols.sh src/.libs/libproj.so > /tmp/got_symbols.txt - diff -u $TRAVIS_BUILD_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) + cat $TRAVIS_BUILD_DIR/scripts/reference_exported_symbols.txt | sort > /tmp/reference_exported_symbols.txt + $TRAVIS_BUILD_DIR/scripts/dump_exported_symbols.sh src/.libs/libproj.so | sort > /tmp/got_symbols.txt + diff -u /tmp/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 -- cgit v1.2.3 From 7562eee171f3a70acd7e012bff7c150b8dcd647c Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 26 Nov 2020 19:52:14 +0100 Subject: Github action: add a clang linux build job --- .github/workflows/clang_linux.yml | 24 ++++++++++++++++++++++++ .github/workflows/clang_linux/start.sh | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 .github/workflows/clang_linux.yml create mode 100755 .github/workflows/clang_linux/start.sh diff --git a/.github/workflows/clang_linux.yml b/.github/workflows/clang_linux.yml new file mode 100644 index 00000000..ba52cc95 --- /dev/null +++ b/.github/workflows/clang_linux.yml @@ -0,0 +1,24 @@ +name: CLang Linux + +on: [push, pull_request] + +jobs: + + clang_linux: + runs-on: ubuntu-latest + if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')" + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Cache + uses: actions/cache@v2 + id: cache + with: + path: | + ${{ github.workspace }}/ccache.tar.gz + key: ${{ runner.os }}-cache-clang-${{ github.run_id }} + restore-keys: ${{ runner.os }}-cache-clang- + + - name: Run + run: docker run -e CI -e TRAVIS_BUILD_DIR="$PWD" -e WORK_DIR="$PWD" -e TRAVIS_OS_NAME=linux -e BUILD_NAME=linux_clang -v $PWD:$PWD ubuntu:20.04 $PWD/.github/workflows/clang_linux/start.sh diff --git a/.github/workflows/clang_linux/start.sh b/.github/workflows/clang_linux/start.sh new file mode 100755 index 00000000..83d2f8c2 --- /dev/null +++ b/.github/workflows/clang_linux/start.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +set -e + +apt-get update -y +DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + sudo autoconf automake libtool clang++-10 python3-clang-10 make cmake ccache pkg-config tar zip \ + sqlite3 libsqlite3-dev libtiff-dev libcurl4-openssl-dev jq python3-pip + +pip3 install --user jsonschema + +cd "$WORK_DIR" + +if test -f "$WORK_DIR/ccache.tar.gz"; then + echo "Restoring ccache..." + (cd $HOME && tar xzf "$WORK_DIR/ccache.tar.gz") +fi + +export CCACHE_CPP2=yes +export PROJ_DB_CACHE_DIR="$HOME/.ccache" + +ccache -M 500M +ccache -s + +# -fno-use-cxa-atexit is needed to build with -coverage +CC="ccache clang-10" CXX="ccache clang++-10" CFLAGS="-Werror -fsanitize=address -fno-use-cxa-atexit" CXXFLAGS="-Werror -fsanitize=address -fno-use-cxa-atexit" LDFLAGS="-fsanitize=address" ./travis/install.sh + +ccache -s + +echo "Saving ccache..." +rm -f "$WORK_DIR/ccache.tar.gz" +(cd $HOME && tar czf "$WORK_DIR/ccache.tar.gz" .ccache) -- cgit v1.2.3 From f0842bb0b079801d9457579013e8aea5616d5f77 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Thu, 26 Nov 2020 19:52:56 +0100 Subject: Travis-CI: remove linux_clang job --- .travis.yml | 9 --------- travis/linux_clang/after_success.sh | 5 ----- travis/linux_clang/before_install.sh | 8 -------- travis/linux_clang/install.sh | 9 --------- 4 files changed, 31 deletions(-) delete mode 100755 travis/linux_clang/after_success.sh delete mode 100755 travis/linux_clang/before_install.sh delete mode 100755 travis/linux_clang/install.sh diff --git a/.travis.yml b/.travis.yml index a258ee2e..f0720523 100644 --- a/.travis.yml +++ b/.travis.yml @@ -57,15 +57,6 @@ matrix: - autoconf - automake - - os: linux - dist: xenial - compiler: clang - services: - - docker - env: - - BUILD_NAME=linux_clang - - DETAILS="linux, clang" - - os: linux dist: bionic compiler: gcc diff --git a/travis/linux_clang/after_success.sh b/travis/linux_clang/after_success.sh deleted file mode 100755 index 9618f673..00000000 --- a/travis/linux_clang/after_success.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -e - -# nothing diff --git a/travis/linux_clang/before_install.sh b/travis/linux_clang/before_install.sh deleted file mode 100755 index c4b8acad..00000000 --- a/travis/linux_clang/before_install.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -set -e - -./travis/before_install_apt.sh -./travis/before_install_pip.sh - -sudo apt-get install -qq sqlite3 libsqlite3-dev libtiff-dev libcurl4-openssl-dev diff --git a/travis/linux_clang/install.sh b/travis/linux_clang/install.sh deleted file mode 100755 index 50c02882..00000000 --- a/travis/linux_clang/install.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e - -export CCACHE_CPP2=yes -export PROJ_DB_CACHE_DIR="$HOME/.ccache" - -# -fno-use-cxa-atexit is needed to build with -coverage -CC="ccache clang" CXX="ccache clang++" CFLAGS="-Werror -fsanitize=address -fno-use-cxa-atexit" CXXFLAGS="-Werror -fsanitize=address -fno-use-cxa-atexit" LDFLAGS="-fsanitize=address" ./travis/install.sh -- cgit v1.2.3