[Mesa-dev] [PATCH 08/18] travis: flip to distro xenial, sudo true

Dylan Baker dylan at pnwbakers.com
Fri Dec 14 17:42:43 UTC 2018


Quoting Emil Velikov (2018-12-13 08:05:57)
> From: Emil Velikov <emil.velikov at collabora.com>
> 
> The latter is the default these days and Travis will be removing sudo
> soonish.
> 
> Flipping to xenial, allows us to remove a bunch of hacks we have. Plus
> it prevents us from adding new ones, to workaround what seems like a
> gcc/binutils bug. For example (from the upcoming meson build):
> 
> FAILED: ccache c++  -o src/gallium/targets/pipe-loader/pipe_r600.so ...
>   ... src/util/libmesa_util.a ... /usr/lib/x86_64-linux-gnu/libz.so ...
> 
> src/util/libmesa_util.a(disk_cache.c.o): In function `deflate_and_write_to_disk':
> _build/../src/util/disk_cache.c:746: undefined reference to `deflateInit_'
> _build/../src/util/disk_cache.c:765: undefined reference to `deflate'
> ...
> 
> As we can see, even though libz.so is explicitly passed after the
> object that requires it - the linker still fails to see the symbols.
> Avoid all those situations - flip the switch.
> 
> Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
> ---
>  .travis.yml | 99 +++++++++++++++--------------------------------------
>  1 file changed, 27 insertions(+), 72 deletions(-)
> 
> diff --git a/.travis.yml b/.travis.yml
> index 8eceb4e86f5..deec40cb135 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -1,7 +1,6 @@
>  language: c
>  
> -sudo: false
> -dist: trusty
> +dist: xenial
>  
>  cache:
>    apt: true
> @@ -43,12 +42,9 @@ matrix:
>        addons:
>          apt:
>            sources:
> -            - sourceline: 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-7 main'
> +            - sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
>                key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
> -            # llvm-7 requires libstdc++4.9 which is not in main repo
> -            - ubuntu-toolchain-r-test
>            packages:
> -            # From sources above
>              - llvm-7-dev
>              # Common
>              - xz-utils
> @@ -57,6 +53,7 @@ matrix:
>              - libelf-dev
>              - python3.5
>              - python3-pip
> +            - python3-setuptools
>      - env:
>          - LABEL="meson loaders/classic DRI"
>          - BUILD=meson
> @@ -68,12 +65,14 @@ matrix:
>            packages:
>              - xz-utils
>              - x11proto-xf86vidmode-dev
> +            - libxxf86vm-dev
>              - libexpat1-dev
>              - libx11-xcb-dev
>              - libxdamage-dev
>              - libxfixes-dev
>              - python3.5
>              - python3-pip
> +            - python3-setuptools
>      - env:
>          - LABEL="make loaders/classic DRI"
>          - BUILD=make
> @@ -90,11 +89,13 @@ matrix:
>            packages:
>              - xz-utils
>              - x11proto-xf86vidmode-dev
> +            - libxxf86vm-dev
>              - libexpat1-dev
>              - libx11-xcb-dev
>              - libxdamage-dev
>              - libxfixes-dev
>              - python3-pip
> +            - python3-setuptools
>      - env:
>          # NOTE: Building SWR is 2x (yes two) times slower than all the other
>          # gallium drivers combined.
> @@ -113,12 +114,7 @@ matrix:
>          - LIBUNWIND_FLAGS="--enable-libunwind"
>        addons:
>          apt:
> -          sources:
> -            - llvm-toolchain-trusty-6.0
> -            # llvm-6 requires libstdc++4.9 which is not in main repo
> -            - ubuntu-toolchain-r-test
>            packages:
> -            # From sources above
>              - llvm-6.0-dev
>              # Common
>              - xz-utils
> @@ -127,6 +123,7 @@ matrix:
>              - libelf-dev
>              - libunwind8-dev
>              - python3-pip
> +            - python3-setuptools
>      - env:
>          - LABEL="make Gallium Drivers RadeonSI"
>          - BUILD=make
> @@ -143,10 +140,8 @@ matrix:
>        addons:
>          apt:
>            sources:
> -            - sourceline: 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-7 main'
> +            - sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
>                key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
> -            # llvm-7 requires libstdc++4.9 which is not in main repo
> -            - ubuntu-toolchain-r-test
>            packages:
>              # From sources above
>              - llvm-7-dev
> @@ -157,6 +152,7 @@ matrix:
>              - libelf-dev
>              - libunwind8-dev
>              - python3-pip
> +            - python3-setuptools
>      - env:
>          - LABEL="make Gallium Drivers Other"
>          - BUILD=make
> @@ -164,8 +160,6 @@ matrix:
>          - MAKE_CHECK_COMMAND="true"
>          - LLVM_VERSION=3.9
>          - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
> -        # New binutils linker is required for llvm-3.9
> -        - OVERRIDE_PATH=/usr/lib/binutils-2.26/bin
>          - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
>          - DRI_DRIVERS=""
>          - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
> @@ -174,13 +168,9 @@ matrix:
>          - LIBUNWIND_FLAGS="--enable-libunwind"
>        addons:
>          apt:
> -          sources:
> -            - llvm-toolchain-trusty-3.9
>            packages:
> -            - binutils-2.26
>              # LLVM packaging is broken and misses these dependencies
>              - libedit-dev
> -            # From sources above
>              - llvm-3.9-dev
>              # Common
>              - xz-utils
> @@ -189,6 +179,7 @@ matrix:
>              - libelf-dev
>              - libunwind8-dev
>              - python3-pip
> +            - python3-setuptools
>      - env:
>          - LABEL="make Gallium ST Clover LLVM-3.9"
>          - BUILD=make
> @@ -196,10 +187,6 @@ matrix:
>          - MAKE_CHECK_COMMAND="true"
>          - LLVM_VERSION=3.9
>          - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
> -        - OVERRIDE_CC=gcc-4.7
> -        - OVERRIDE_CXX=g++-4.7
> -        # New binutils linker is required for llvm-3.9
> -        - OVERRIDE_PATH=/usr/lib/binutils-2.26/bin
>          - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
>          - DRI_DRIVERS=""
>          - GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
> @@ -208,15 +195,10 @@ matrix:
>          - LIBUNWIND_FLAGS="--enable-libunwind"
>        addons:
>          apt:
> -          sources:
> -            - llvm-toolchain-trusty-3.9
>            packages:
> -            - binutils-2.26
>              - libclc-dev
>              # LLVM packaging is broken and misses these dependencies
>              - libedit-dev
> -            - g++-4.7
> -            # From sources above
>              - llvm-3.9-dev
>              - clang-3.9
>              - libclang-3.9-dev
> @@ -227,6 +209,7 @@ matrix:
>              - libelf-dev
>              - libunwind8-dev
>              - python3-pip
> +            - python3-setuptools
>      - env:
>          - LABEL="make Gallium ST Clover LLVM-4.0"
>          - BUILD=make
> @@ -234,8 +217,6 @@ matrix:
>          - MAKE_CHECK_COMMAND="true"
>          - LLVM_VERSION=4.0
>          - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
> -        - OVERRIDE_CC=gcc-4.8
> -        - OVERRIDE_CXX=g++-4.8
>          - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
>          - DRI_DRIVERS=""
>          - GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
> @@ -244,14 +225,10 @@ matrix:
>          - LIBUNWIND_FLAGS="--enable-libunwind"
>        addons:
>          apt:
> -          sources:
> -            - llvm-toolchain-trusty-4.0
>            packages:
>              - libclc-dev
>              # LLVM packaging is broken and misses these dependencies
>              - libedit-dev
> -            - g++-4.8
> -            # From sources above
>              - llvm-4.0-dev
>              - clang-4.0
>              - libclang-4.0-dev
> @@ -262,6 +239,7 @@ matrix:
>              - libelf-dev
>              - libunwind8-dev
>              - python3-pip
> +            - python3-setuptools
>      - env:
>          - LABEL="make Gallium ST Clover LLVM-5.0"
>          - BUILD=make
> @@ -269,8 +247,6 @@ matrix:
>          - MAKE_CHECK_COMMAND="true"
>          - LLVM_VERSION=5.0
>          - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
> -        - OVERRIDE_CC=gcc-4.8
> -        - OVERRIDE_CXX=g++-4.8
>          - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
>          - DRI_DRIVERS=""
>          - GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
> @@ -279,14 +255,10 @@ matrix:
>          - LIBUNWIND_FLAGS="--enable-libunwind"
>        addons:
>          apt:
> -          sources:
> -            - llvm-toolchain-trusty-5.0
>            packages:
>              - libclc-dev
>              # LLVM packaging is broken and misses these dependencies
>              - libedit-dev
> -            - g++-4.8
> -            # From sources above
>              - llvm-5.0-dev
>              - clang-5.0
>              - libclang-5.0-dev
> @@ -297,6 +269,7 @@ matrix:
>              - libelf-dev
>              - libunwind8-dev
>              - python3-pip
> +            - python3-setuptools
>      - env:
>          - LABEL="make Gallium ST Clover LLVM-6.0"
>          - BUILD=make
> @@ -312,13 +285,8 @@ matrix:
>          - LIBUNWIND_FLAGS="--enable-libunwind"
>        addons:
>          apt:
> -          sources:
> -            - llvm-toolchain-trusty-6.0
> -            # llvm-6 requires libstdc++4.9 which is not in main repo
> -            - ubuntu-toolchain-r-test
>            packages:
>              - libclc-dev
> -            # From sources above
>              - llvm-6.0-dev
>              - clang-6.0
>              - libclang-6.0-dev
> @@ -329,6 +297,7 @@ matrix:
>              - libelf-dev
>              - libunwind8-dev
>              - python3-pip
> +            - python3-setuptools
>      - env:
>          - LABEL="make Gallium ST Clover LLVM-7"
>          - BUILD=make
> @@ -345,10 +314,8 @@ matrix:
>        addons:
>          apt:
>            sources:
> -            - sourceline: 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-7 main'
> +            - sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
>                key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
> -            # llvm-7 requires libstdc++4.9 which is not in main repo
> -            - ubuntu-toolchain-r-test
>            packages:
>              - libclc-dev
>              # From sources above
> @@ -366,7 +333,7 @@ matrix:
>          - BUILD=make
>          - MAKEFLAGS="-j4"
>          - MAKE_CHECK_COMMAND="true"
> -        - LLVM_VERSION=3.3
> +        - LLVM_VERSION=3.5
>          - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
>          - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
>          - DRI_DRIVERS=""
> @@ -380,8 +347,8 @@ matrix:
>        addons:
>          apt:
>            packages:
> -            # We actually want to test against llvm-3.3
> -            - llvm-3.3-dev
> +            # We actually want to test against llvm-3.3, yet 3.5 is available
> +            - llvm-3.5-dev
>              # Nine requires gcc 4.6... which is the one we have right ?
>              - libxvmc-dev
>              # Build locally, for now.
> @@ -397,6 +364,7 @@ matrix:
>              - libelf-dev
>              - libunwind8-dev
>              - python3-pip
> +            - python3-setuptools
>      - env:
>          - LABEL="make Vulkan"
>          - BUILD=make
> @@ -413,10 +381,8 @@ matrix:
>        addons:
>          apt:
>            sources:
> -            - sourceline: 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-7 main'
> +            - sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
>                key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
> -            # llvm-7 requires libstdc++4.9 which is not in main repo
> -            - ubuntu-toolchain-r-test
>            packages:
>              # From sources above
>              - llvm-7-dev
> @@ -426,6 +392,7 @@ matrix:
>              - libx11-xcb-dev
>              - libelf-dev
>              - python3-pip
> +            - python3-setuptools
>      - env:
>          - LABEL="scons"
>          - BUILD=scons
> @@ -450,14 +417,15 @@ matrix:
>          - SCONS_TARGET="llvm=1"
>          # Keep it symmetrical to the make build.
>          - SCONS_CHECK_COMMAND="scons llvm=1 check"
> -        - LLVM_VERSION=3.3
> +        - LLVM_VERSION=3.5
>          - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
>        addons:
>          apt:
>            packages:
>              # LLVM packaging is broken and misses these dependencies
>              - libedit-dev
> -            - llvm-3.3-dev
> +            # We actually want to test against llvm-3.3, yet 3.5 is available
> +            - llvm-3.5-dev
>              # Common
>              - xz-utils
>              - x11proto-xf86vidmode-dev
> @@ -475,12 +443,7 @@ matrix:
>          - SCONS_CHECK_COMMAND="true"
>        addons:
>          apt:
> -          sources:
> -            - llvm-toolchain-trusty-6.0
> -            # llvm-6 requires libstdc++4.9 which is not in main repo
> -            - ubuntu-toolchain-r-test
>            packages:
> -            # From sources above
>              - llvm-6.0-dev
>              # Common
>              - xz-utils
> @@ -525,10 +488,8 @@ before_install:
>  
>  install:
>    # Install a more modern meson from pip, since the version in the
> -  # ubuntu repos is often quite old. This requires python>=3.5, so
> -  # let's make it default
> +  # ubuntu repos is often quite old.
>    - if test "x$BUILD" = xmeson; then
> -      sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 10;
>        pip3 install --user meson;
>        pip3 install --user mako;
>      fi
> @@ -615,7 +576,7 @@ install:
>        tar -axvf $WAYLAND_PROTOCOLS_VERSION.tar.xz
>        (cd $WAYLAND_PROTOCOLS_VERSION && ./configure --prefix=$HOME/prefix && make install)
>  
> -      # Meson requires ninja >= 1.6, but trusty has 1.3.x
> +      # Meson requires ninja >= 1.6, but xenial has 1.3.x
>        wget https://github.com/ninja-build/ninja/releases/download/v1.6.0/ninja-linux.zip
>        unzip ninja-linux.zip
>        mv ninja $HOME/prefix/bin/
> @@ -658,10 +619,6 @@ install:
>  
>  script:
>    - if test "x$BUILD" = xmake; then
> -      test -n "$OVERRIDE_CC" && export CC="$OVERRIDE_CC";
> -      test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX";
> -      test -n "$OVERRIDE_PATH" && export PATH="$OVERRIDE_PATH:$PATH";
> -
>        export CFLAGS="$CFLAGS -isystem`pwd`";
>  
>        mkdir build &&
> @@ -679,8 +636,6 @@ script:
>      fi
>  
>    - if test "x$BUILD" = xscons; then
> -      test -n "$OVERRIDE_CC" && export CC="$OVERRIDE_CC";
> -      test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX";
>        scons $SCONS_TARGET && eval $SCONS_CHECK_COMMAND;
>      fi
>  
> -- 
> 2.19.2
> 

yes please! I struggled so much with this trying to make travis work
Reviewed-by: Dylan Baker <dylan at pnwbakers.com>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20181214/b8b6a8f4/attachment-0001.sig>


More information about the mesa-dev mailing list