From d7d08595e2c354d4c7245e3986ceed353d336ff5 Mon Sep 17 00:00:00 2001
From: Tom Callaway <spot@fedoraproject.org>
Date: Sat, 12 Sep 2020 04:28:27 -0400
Subject: [PATCH] Update Travis to Ubuntu Bionic

---
 .travis.yml          |  7 +++++--
 meson.build          | 13 +++++++++----
 test/pytest.ini      |  2 ++
 test/travis-build.sh |  2 +-
 4 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 48a92ff..bcee2f2 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,16 +1,19 @@
 sudo: required
 dist: bionic
 
+before_install:
+    - curl https://spot.fedorapeople.org/spotfoss-ppa.key | sudo apt-key add -
+    - wget https://launchpad.net/~spotfoss/+archive/ubuntu/ppa/+files/valgrind_3.16.1-2_amd64.deb
+    - sudo apt install ./valgrind_3.16.1-2_amd64.deb
 language:
     - c
     - c++
 addons:
   apt:
     sources:
-    - ubuntu-toolchain-r-test
+    - sourceline: 'ppa:ubuntu-toolchain-r/test'
     packages:
     - doxygen
-    - valgrind
     - clang
     - libstdc++-7-dev 
     - libstdc++-10-dev
diff --git a/meson.build b/meson.build
index e17ebb0..b2b85da 100644
--- a/meson.build
+++ b/meson.build
@@ -89,12 +89,17 @@ endif
 
 # gcc-10 and newer support the symver attribute which we need to use if we
 # want to support LTO
+# recent clang and gcc both support __has_attribute (and if they are too old
+# to have __has_attribute, then they are too old to support symver)
+# other compilers might not have __has_attribute, but in those cases
+# it is safe for this check to fail and for us to fallback to the old _asm_
+# method for symver
 code = '''
-__attribute__((symver ("get@@TEST_0"))) int get_4() {
-    return 4;
-}
+#if defined __has_attribute && !__has_attribute (symver)
+#error symver attribute not supported
+#endif
+
 int main(void) {
-    (void) get_4();
     return 0;
 }'''
 if cc.compiles(code, args: [ '-O0', '-c'])
diff --git a/test/pytest.ini b/test/pytest.ini
index 9516154..036a9f4 100644
--- a/test/pytest.ini
+++ b/test/pytest.ini
@@ -1,2 +1,4 @@
 [pytest]
 addopts = --verbose --assert=rewrite --tb=native -x -r a
+markers = 
+    uses_fuse: Indicates that FUSE is supported.
diff --git a/test/travis-build.sh b/test/travis-build.sh
index 6e2afd5..3685909 100755
--- a/test/travis-build.sh
+++ b/test/travis-build.sh
@@ -36,7 +36,7 @@ for CC in gcc gcc-7 gcc-10 clang; do
         build_opts=''
     fi
     if [ ${CC} == 'gcc-10' ]; then
-        build_opts='-Dc_args="-flto=auto -ffat-lto-objects"'
+        build_opts='-Dc_args=-flto=auto'
     else
         build_opts=''
     fi
-- 
2.30.2