2019-10-21 09:08:57 +00:00
|
|
|
# In the YML below each job gets an environment that includes
|
|
|
|
# BUILD_OS and BUILD_MODE. The variables are used in the driver
|
|
|
|
# scripts and is used to select a test. For example, BUILD_OS=linux
|
|
|
|
# and BUILD_MODE=all means run 'make all' on Linux. Travis supplies
|
|
|
|
# Linux based on 'os: linux' key so BUILD_OS is effectively ignored.
|
|
|
|
# The Android and iOS tests specify a BUILD_ARCH. BUILD_ARCH is passed
|
|
|
|
# to the underlying setenv-*.sh scripts. For example, testing on iOS,
|
|
|
|
# BUILD_ARCH=arm64 means 'setenv-ios.sh arm64' is called before
|
|
|
|
# 'make GNUmakefile-cross' is called.
|
|
|
|
|
|
|
|
# DO NOT create top level (global) keys like env, arch, os, compiler.
|
|
|
|
# The top level/global keys invoke [unwanted] matrix expansion. Also
|
|
|
|
# see https://stackoverflow.com/q/58473000/608639 and
|
|
|
|
# https://docs.travis-ci.com/user/reference/overview/ and
|
|
|
|
# https://docs.travis-ci.com/user/multi-cpu-architectures and
|
|
|
|
# https://github.com/travis-ci/travis-yml/blob/master/schema.json.
|
2017-05-26 14:08:44 +00:00
|
|
|
|
2019-10-21 01:46:05 +00:00
|
|
|
language: cpp
|
2019-10-22 20:59:39 +00:00
|
|
|
dist: bionic
|
2017-05-26 14:08:44 +00:00
|
|
|
|
|
|
|
git:
|
2018-12-09 08:31:50 +00:00
|
|
|
depth: 5
|
2017-05-26 14:08:44 +00:00
|
|
|
|
2019-10-21 01:46:05 +00:00
|
|
|
# Use jobs rather than matrix since we are precisely
|
|
|
|
# specifiying our test cases. Do not move any of the
|
|
|
|
# keys (env, os, arch, compiler, etc) into global.
|
|
|
|
# Putting them in global invokes the matrix expansion.
|
|
|
|
jobs:
|
2018-01-21 14:05:34 +00:00
|
|
|
include:
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Standard build, GCC, Linux, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: gcc
|
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=all
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Native build, GCC, Linux, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: gcc
|
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=native
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: No-asm build, GCC, Linux, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: gcc
|
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=no-asm
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Debug build, GCC, Linux, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: gcc
|
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=debug
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Asan build, GCC, Linux, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: gcc
|
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=asan
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: UBsan build, GCC, Linux, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: gcc
|
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=ubsan
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: PEM build, GCC, Linux, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: gcc
|
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=pem
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Autotools build, GCC, Linux, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: gcc
|
2018-01-21 14:05:34 +00:00
|
|
|
env:
|
2018-08-02 01:33:24 +00:00
|
|
|
- BUILD_OS=linux
|
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are available.
We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.
ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.
Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 12:35:14 +00:00
|
|
|
- BUILD_MODE=autotools
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: CMake build, GCC, Linux, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: gcc
|
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are available.
We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.
ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.
Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 12:35:14 +00:00
|
|
|
env:
|
2018-08-02 01:33:24 +00:00
|
|
|
- BUILD_OS=linux
|
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are available.
We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.
ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.
Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 12:35:14 +00:00
|
|
|
- BUILD_MODE=cmake
|
2019-10-21 01:46:05 +00:00
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Standard build, Clang, Linux, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: clang
|
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=all
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Native build, Clang, Linux, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: clang
|
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=native
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: No-asm build, Clang, Linux, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: clang
|
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=no-asm
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Debug build, Clang, Linux, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: clang
|
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=debug
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Asan build, Clang, Linux, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: clang
|
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=asan
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: UBsan build, Clang, Linux, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: clang
|
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=ubsan
|
2019-10-15 03:05:05 +00:00
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: PEM build, Clang, Linux, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: clang
|
2019-10-15 03:05:05 +00:00
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=pem
|
2019-10-21 01:46:05 +00:00
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Autotools build, Clang, Linux, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: clang
|
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=autotools
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: CMake build, Clang, Linux, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: clang
|
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=cmake
|
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are available.
We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.
ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.
Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 12:35:14 +00:00
|
|
|
- os: osx
|
2019-10-21 01:46:05 +00:00
|
|
|
osx_image: xcode10.1
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Standard build, Clang, OS X, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: clang
|
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are available.
We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.
ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.
Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 12:35:14 +00:00
|
|
|
env:
|
2018-08-02 01:33:24 +00:00
|
|
|
- BUILD_OS=osx
|
2019-10-21 01:46:05 +00:00
|
|
|
- BUILD_MODE=all
|
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are available.
We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.
ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.
Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 12:35:14 +00:00
|
|
|
- os: osx
|
2019-10-21 01:46:05 +00:00
|
|
|
osx_image: xcode10.1
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Native build, Clang, OS X, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: clang
|
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are available.
We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.
ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.
Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 12:35:14 +00:00
|
|
|
env:
|
2018-08-02 01:33:24 +00:00
|
|
|
- BUILD_OS=osx
|
2019-10-21 01:46:05 +00:00
|
|
|
- BUILD_MODE=native
|
2019-10-15 03:05:05 +00:00
|
|
|
- os: osx
|
2019-10-21 01:46:05 +00:00
|
|
|
osx_image: xcode10.1
|
2020-03-10 01:53:08 +00:00
|
|
|
name: No-asm build, Clang, OS X, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: clang
|
2019-10-15 03:01:27 +00:00
|
|
|
env:
|
2019-10-15 03:05:05 +00:00
|
|
|
- BUILD_OS=osx
|
2019-10-21 01:46:05 +00:00
|
|
|
- BUILD_MODE=no-asm
|
|
|
|
- os: osx
|
|
|
|
osx_image: xcode10.1
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Debug build, Clang, OS X, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: clang
|
|
|
|
env:
|
|
|
|
- BUILD_OS=osx
|
|
|
|
- BUILD_MODE=debug
|
|
|
|
- os: osx
|
|
|
|
osx_image: xcode10.1
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Asan build, Clang, OS X, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: clang
|
|
|
|
env:
|
|
|
|
- BUILD_OS=osx
|
|
|
|
- BUILD_MODE=asan
|
|
|
|
- os: osx
|
|
|
|
osx_image: xcode10.1
|
2020-03-10 01:53:08 +00:00
|
|
|
name: UBsan build, Clang, OS X, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: clang
|
|
|
|
env:
|
|
|
|
- BUILD_OS=osx
|
|
|
|
- BUILD_MODE=ubsan
|
|
|
|
- os: osx
|
|
|
|
osx_image: xcode10.1
|
2020-03-10 01:53:08 +00:00
|
|
|
name: PEM build, Clang, OS X, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: clang
|
|
|
|
env:
|
|
|
|
- BUILD_OS=osx
|
|
|
|
- BUILD_MODE=pem
|
|
|
|
- os: osx
|
|
|
|
osx_image: xcode10.1
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Autotools build, Clang, OS X, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: clang
|
|
|
|
env:
|
|
|
|
- BUILD_OS=osx
|
|
|
|
- BUILD_MODE=autotools
|
|
|
|
- os: osx
|
|
|
|
osx_image: xcode10.1
|
2020-03-10 01:53:08 +00:00
|
|
|
name: CMake build, Clang, OS X, amd64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
|
|
|
compiler: clang
|
|
|
|
env:
|
|
|
|
- BUILD_OS=osx
|
|
|
|
- BUILD_MODE=cmake
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Standard build, GCC, Linux, arm64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: arm64
|
|
|
|
compiler: gcc
|
2019-10-23 00:13:47 +00:00
|
|
|
dist: bionic
|
2019-10-21 01:46:05 +00:00
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=all
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Native build, GCC, Linux, arm64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: arm64
|
|
|
|
compiler: gcc
|
2019-10-23 00:13:47 +00:00
|
|
|
dist: bionic
|
2019-10-21 01:46:05 +00:00
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=native
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: No-asm build, GCC, Linux, arm64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: arm64
|
|
|
|
compiler: gcc
|
2019-10-23 00:13:47 +00:00
|
|
|
dist: bionic
|
2019-10-21 01:46:05 +00:00
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=no-asm
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Debug build, GCC, Linux, arm64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: arm64
|
|
|
|
compiler: gcc
|
2019-10-23 00:13:47 +00:00
|
|
|
dist: bionic
|
2019-10-21 01:46:05 +00:00
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=debug
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Asan build, GCC, Linux, arm64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: arm64
|
|
|
|
compiler: gcc
|
2019-10-23 00:13:47 +00:00
|
|
|
dist: bionic
|
2019-10-21 01:46:05 +00:00
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=asan
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: UBsan build, GCC, Linux, arm64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: arm64
|
|
|
|
compiler: gcc
|
2019-10-23 00:13:47 +00:00
|
|
|
dist: bionic
|
2019-10-21 01:46:05 +00:00
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=ubsan
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: PEM build, GCC, Linux, arm64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: arm64
|
|
|
|
compiler: gcc
|
2019-10-23 00:13:47 +00:00
|
|
|
dist: bionic
|
2019-10-21 01:46:05 +00:00
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
2019-10-15 03:01:27 +00:00
|
|
|
- BUILD_MODE=pem
|
2019-10-21 01:46:05 +00:00
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Autotools build, GCC, Linux, arm64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: arm64
|
|
|
|
compiler: gcc
|
2019-10-23 00:13:47 +00:00
|
|
|
dist: bionic
|
2019-10-21 01:46:05 +00:00
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=autotools
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: CMake build, GCC, Linux, arm64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: arm64
|
|
|
|
compiler: gcc
|
2019-10-23 00:13:47 +00:00
|
|
|
dist: bionic
|
2019-10-21 01:46:05 +00:00
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=cmake
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Standard build, Clang, Linux, arm64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: arm64
|
|
|
|
compiler: clang
|
2019-10-23 00:13:47 +00:00
|
|
|
dist: bionic
|
2019-10-21 01:46:05 +00:00
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=all
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Native build, Clang, Linux, arm64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: arm64
|
|
|
|
compiler: clang
|
2019-10-23 00:13:47 +00:00
|
|
|
dist: bionic
|
2019-10-21 01:46:05 +00:00
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=native
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: No-asm build, Clang, Linux, arm64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: arm64
|
|
|
|
compiler: clang
|
2019-10-23 00:13:47 +00:00
|
|
|
dist: bionic
|
2019-10-21 01:46:05 +00:00
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=no-asm
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Debug build, Clang, Linux, arm64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: arm64
|
|
|
|
compiler: clang
|
2019-10-23 00:13:47 +00:00
|
|
|
dist: bionic
|
2019-10-21 01:46:05 +00:00
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=debug
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Asan build, Clang, Linux, arm64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: arm64
|
|
|
|
compiler: clang
|
2019-10-23 00:13:47 +00:00
|
|
|
dist: bionic
|
2019-10-21 01:46:05 +00:00
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=asan
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: UBsan build, Clang, Linux, arm64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: arm64
|
|
|
|
compiler: clang
|
2019-10-23 00:13:47 +00:00
|
|
|
dist: bionic
|
2019-10-21 01:46:05 +00:00
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=ubsan
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: PEM build, Clang, Linux, arm64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: arm64
|
|
|
|
compiler: clang
|
2019-10-23 00:13:47 +00:00
|
|
|
dist: bionic
|
2019-10-21 01:46:05 +00:00
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=pem
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Autotools build, Clang, Linux, arm64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: arm64
|
|
|
|
compiler: clang
|
2019-10-23 00:13:47 +00:00
|
|
|
dist: bionic
|
2019-10-21 01:46:05 +00:00
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=autotools
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: CMake build, Clang, Linux, arm64
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: arm64
|
|
|
|
compiler: clang
|
2019-10-23 00:13:47 +00:00
|
|
|
dist: bionic
|
2019-10-21 01:46:05 +00:00
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=cmake
|
2019-10-22 20:59:39 +00:00
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Standard build, GCC, Linux, ppc64le
|
2019-10-22 20:59:39 +00:00
|
|
|
arch: ppc64le
|
|
|
|
compiler: gcc
|
|
|
|
dist: bionic
|
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=all
|
2019-11-16 23:26:04 +00:00
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Debug build, GCC, Linux, ppc64le
|
2019-11-16 23:26:04 +00:00
|
|
|
arch: ppc64le
|
|
|
|
compiler: gcc
|
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=debug
|
2019-10-22 20:59:39 +00:00
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Standard build, Clang, Linux, ppc64le
|
2019-10-22 20:59:39 +00:00
|
|
|
arch: ppc64le
|
|
|
|
compiler: clang
|
|
|
|
dist: bionic
|
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=all
|
2019-11-16 23:26:04 +00:00
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Debug build, Clang, Linux, ppc64le
|
2019-11-16 23:26:04 +00:00
|
|
|
arch: ppc64le
|
|
|
|
compiler: clang
|
|
|
|
dist: bionic
|
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=debug
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Standard build, GCC, Linux, s390x
|
2019-11-16 23:26:04 +00:00
|
|
|
arch: s390x
|
|
|
|
compiler: gcc
|
|
|
|
dist: bionic
|
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=all
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Debug build, GCC, Linux, s390x
|
2019-11-16 23:26:04 +00:00
|
|
|
arch: s390x
|
|
|
|
compiler: gcc
|
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=debug
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Standard build, Clang, Linux, s390x
|
2019-11-16 23:26:04 +00:00
|
|
|
arch: s390x
|
|
|
|
compiler: clang
|
|
|
|
dist: bionic
|
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=all
|
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Debug build, Clang, Linux, s390x
|
2019-11-16 23:26:04 +00:00
|
|
|
arch: s390x
|
|
|
|
compiler: clang
|
|
|
|
dist: bionic
|
|
|
|
env:
|
|
|
|
- BUILD_OS=linux
|
|
|
|
- BUILD_MODE=debug
|
2019-10-15 03:05:05 +00:00
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Android, armv7a, Linux
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
2018-01-21 14:05:34 +00:00
|
|
|
env:
|
2018-08-02 01:33:24 +00:00
|
|
|
- BUILD_OS=linux
|
2018-01-21 14:05:34 +00:00
|
|
|
- BUILD_MODE=android
|
2020-03-10 01:53:08 +00:00
|
|
|
- ANDROID_CPU=armv7a
|
|
|
|
- ANDROID_API=23
|
|
|
|
- ANDROID_SDK_ROOT="$HOME/android-sdk"
|
|
|
|
- ANDROID_NDK_ROOT="$HOME/android-ndk"
|
2018-01-21 14:05:34 +00:00
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Android, aarch64, Linux
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
2018-01-21 14:05:34 +00:00
|
|
|
env:
|
2018-08-02 01:33:24 +00:00
|
|
|
- BUILD_OS=linux
|
2018-01-21 14:05:34 +00:00
|
|
|
- BUILD_MODE=android
|
2020-03-10 01:53:08 +00:00
|
|
|
- ANDROID_CPU=aarch64
|
|
|
|
- ANDROID_API=23
|
|
|
|
- ANDROID_SDK_ROOT="$HOME/android-sdk"
|
|
|
|
- ANDROID_NDK_ROOT="$HOME/android-ndk"
|
2018-01-21 14:05:34 +00:00
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Android, x86, Linux
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
2018-01-21 14:05:34 +00:00
|
|
|
env:
|
2018-08-02 01:33:24 +00:00
|
|
|
- BUILD_OS=linux
|
2018-01-21 14:05:34 +00:00
|
|
|
- BUILD_MODE=android
|
2020-03-10 01:53:08 +00:00
|
|
|
- ANDROID_CPU=x86
|
|
|
|
- ANDROID_API=23
|
|
|
|
- ANDROID_SDK_ROOT="$HOME/android-sdk"
|
|
|
|
- ANDROID_NDK_ROOT="$HOME/android-ndk"
|
2018-01-21 14:05:34 +00:00
|
|
|
- os: linux
|
2020-03-10 01:53:08 +00:00
|
|
|
name: Android, x86_64, Linux
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
2018-01-21 14:05:34 +00:00
|
|
|
env:
|
2018-08-02 01:33:24 +00:00
|
|
|
- BUILD_OS=linux
|
2018-01-21 14:05:34 +00:00
|
|
|
- BUILD_MODE=android
|
2020-03-10 01:53:08 +00:00
|
|
|
- ANDROID_CPU=x86_64
|
|
|
|
- ANDROID_API=23
|
|
|
|
- ANDROID_SDK_ROOT="$HOME/android-sdk"
|
|
|
|
- ANDROID_NDK_ROOT="$HOME/android-ndk"
|
2018-04-01 06:37:32 +00:00
|
|
|
- os: osx
|
2019-10-21 01:46:05 +00:00
|
|
|
osx_image: xcode10.1
|
2020-03-10 01:53:08 +00:00
|
|
|
name: iPhoneOS, armv7, iOS
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
2018-04-01 06:37:32 +00:00
|
|
|
env:
|
2018-08-02 01:33:24 +00:00
|
|
|
- BUILD_OS=osx
|
2018-04-01 06:37:32 +00:00
|
|
|
- BUILD_MODE=ios
|
2020-03-10 01:53:08 +00:00
|
|
|
- IOS_CPU=armv7s
|
|
|
|
- IOS_SDK=iPhoneOS
|
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are available.
We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.
ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.
Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 12:35:14 +00:00
|
|
|
- os: osx
|
2019-10-21 01:46:05 +00:00
|
|
|
osx_image: xcode10.1
|
2020-03-10 01:53:08 +00:00
|
|
|
name: iPhoneOS, arm64, iOS
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are available.
We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.
ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.
Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 12:35:14 +00:00
|
|
|
env:
|
2018-08-02 01:33:24 +00:00
|
|
|
- BUILD_OS=osx
|
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are available.
We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.
ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.
Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 12:35:14 +00:00
|
|
|
- BUILD_MODE=ios
|
2020-03-10 01:53:08 +00:00
|
|
|
- IOS_CPU=arm64
|
|
|
|
- IOS_SDK=iPhoneOS
|
2018-04-01 06:37:32 +00:00
|
|
|
- os: osx
|
2019-10-21 01:46:05 +00:00
|
|
|
osx_image: xcode10.1
|
2020-03-10 01:53:08 +00:00
|
|
|
name: AppleTVOS, arm64, iOS
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
2018-04-01 06:37:32 +00:00
|
|
|
env:
|
2018-08-02 01:33:24 +00:00
|
|
|
- BUILD_OS=osx
|
2018-04-01 06:37:32 +00:00
|
|
|
- BUILD_MODE=ios
|
2020-03-10 01:53:08 +00:00
|
|
|
- IOS_CPU=arm64
|
|
|
|
- IOS_SDK=AppleTVOS
|
2018-04-01 06:37:32 +00:00
|
|
|
- os: osx
|
2019-10-21 01:46:05 +00:00
|
|
|
osx_image: xcode10.1
|
2020-03-10 01:53:08 +00:00
|
|
|
name: WatchOS, armv7, iOS
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
2018-04-01 06:37:32 +00:00
|
|
|
env:
|
2018-08-02 01:33:24 +00:00
|
|
|
- BUILD_OS=osx
|
2018-04-01 06:37:32 +00:00
|
|
|
- BUILD_MODE=ios
|
2020-03-10 01:53:08 +00:00
|
|
|
- IOS_CPU=armv7k
|
|
|
|
- IOS_SDK=WatchOS
|
2019-10-17 01:13:36 +00:00
|
|
|
- os: osx
|
2019-10-21 01:46:05 +00:00
|
|
|
osx_image: xcode10.1
|
2020-03-10 01:53:08 +00:00
|
|
|
name: iPhoneSimulator, i386, OS X
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
2019-10-17 01:13:36 +00:00
|
|
|
env:
|
|
|
|
- BUILD_OS=osx
|
|
|
|
- BUILD_MODE=ios
|
2020-03-10 01:53:08 +00:00
|
|
|
- IOS_CPU=i386
|
|
|
|
- IOS_SDK=iPhoneSimulator
|
2018-12-08 17:50:16 +00:00
|
|
|
- os: osx
|
2019-10-21 01:46:05 +00:00
|
|
|
osx_image: xcode10.1
|
2020-03-10 01:53:08 +00:00
|
|
|
name: iPhoneSimulator, x86_64, OS X
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
2018-12-08 17:50:16 +00:00
|
|
|
env:
|
|
|
|
- BUILD_OS=osx
|
|
|
|
- BUILD_MODE=ios
|
2020-03-10 01:53:08 +00:00
|
|
|
- IOS_CPU=x86_64
|
|
|
|
- IOS_SDK=iPhoneSimulator
|
2018-12-08 17:50:16 +00:00
|
|
|
- os: osx
|
2019-10-21 01:46:05 +00:00
|
|
|
osx_image: xcode10.1
|
2020-03-10 01:53:08 +00:00
|
|
|
name: AppleTVSimulator, x86_64, OS X
|
2019-10-21 01:46:05 +00:00
|
|
|
arch: amd64
|
2018-12-08 17:50:16 +00:00
|
|
|
env:
|
|
|
|
- BUILD_OS=osx
|
|
|
|
- BUILD_MODE=ios
|
2020-03-10 01:53:08 +00:00
|
|
|
- IOS_CPU=x86_64
|
|
|
|
- IOS_SDK=AppleTVSimulator
|
|
|
|
- os: osx
|
|
|
|
osx_image: xcode10.1
|
|
|
|
name: WatchSimulator, i386, OS X
|
|
|
|
arch: amd64
|
|
|
|
env:
|
|
|
|
- BUILD_OS=osx
|
|
|
|
- BUILD_MODE=ios
|
|
|
|
- IOS_CPU=i386
|
|
|
|
- IOS_SDK=WatchSimulator
|
2018-12-08 16:40:53 +00:00
|
|
|
|
|
|
|
allow_failures:
|
2019-11-16 23:26:04 +00:00
|
|
|
# Clang has a fair amount of trouble
|
|
|
|
# on platforms Apple does not support
|
|
|
|
- os: linux
|
|
|
|
arch: s390x
|
|
|
|
compiler: clang
|
|
|
|
# Clang 7.0 and below will likely have trouble due to
|
|
|
|
# https://bugs.llvm.org/show_bug.cgi?id=39704
|
|
|
|
- os: linux
|
|
|
|
arch: ppc64le
|
|
|
|
compiler: clang
|
2018-04-06 11:21:53 +00:00
|
|
|
|
2018-01-21 14:05:34 +00:00
|
|
|
before_install:
|
|
|
|
- |
|
2018-08-02 01:33:24 +00:00
|
|
|
if [[ "$BUILD_OS" == "linux" ]] && [[ "$BUILD_MODE" == "android" ]]; then
|
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are available.
We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.
ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.
Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 12:35:14 +00:00
|
|
|
# https://github.com/travis-ci/travis-ci/issues/9037
|
|
|
|
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A145
|
2018-08-02 01:33:24 +00:00
|
|
|
sudo apt-get update
|
2020-03-10 01:53:08 +00:00
|
|
|
bash TestScripts/install-ndk.sh
|
2018-08-02 01:33:24 +00:00
|
|
|
fi
|
|
|
|
if [[ "$BUILD_OS" == "linux" ]] && [[ "$BUILD_MODE" == "autotools" ]]; then
|
|
|
|
# https://github.com/travis-ci/travis-ci/issues/9037
|
|
|
|
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A145
|
2019-10-23 12:36:52 +00:00
|
|
|
sudo apt-get -y install autoconf automake libtool
|
2018-01-21 14:05:34 +00:00
|
|
|
fi
|
|
|
|
|
2017-05-26 14:08:44 +00:00
|
|
|
script:
|
2017-08-11 02:59:00 +00:00
|
|
|
- |
|
2018-01-21 16:02:42 +00:00
|
|
|
if [[ "$BUILD_MODE" == "ios" ]]; then
|
2020-03-10 01:53:08 +00:00
|
|
|
source TestScripts/setenv-ios.sh
|
|
|
|
make -f GNUmakefile-cross -j 2 all static dynamic
|
2018-01-21 14:05:34 +00:00
|
|
|
elif [[ "$BUILD_MODE" == "android" ]]; then
|
2020-03-10 01:53:08 +00:00
|
|
|
source TestScripts/setenv-android.sh
|
|
|
|
make -f GNUmakefile-cross -j 2 all static dynamic
|
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are available.
We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.
ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.
Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 12:35:14 +00:00
|
|
|
elif [[ "$BUILD_MODE" == "autotools" ]]; then
|
2020-03-10 01:53:08 +00:00
|
|
|
bash TestScripts/cryptest-autotools.sh
|
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are available.
We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.
ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.
Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 12:35:14 +00:00
|
|
|
elif [[ "$BUILD_MODE" == "cmake" ]]; then
|
2020-03-10 01:53:08 +00:00
|
|
|
bash TestScripts/cryptest-cmake.sh
|
2019-10-15 03:05:05 +00:00
|
|
|
elif [[ "$BUILD_MODE" == "pem" ]]; then
|
2020-03-10 01:53:08 +00:00
|
|
|
bash TestScripts/cryptest-pem.sh
|
2017-08-17 05:47:08 +00:00
|
|
|
elif [[ "$BUILD_MODE" == "debug" ]]; then
|
2020-03-10 01:53:08 +00:00
|
|
|
CXXFLAGS="-DDEBUG -g2 -O1" make -j 2
|
2017-08-23 20:13:20 +00:00
|
|
|
./cryptest.exe v
|
|
|
|
./cryptest.exe tv all
|
2017-08-11 02:59:00 +00:00
|
|
|
else
|
2020-03-10 01:53:08 +00:00
|
|
|
make "$BUILD_MODE" -j 2
|
2017-08-11 02:59:00 +00:00
|
|
|
./cryptest.exe v
|
|
|
|
./cryptest.exe tv all
|
|
|
|
fi
|
2017-05-27 07:08:07 +00:00
|
|
|
|
2019-10-21 01:46:05 +00:00
|
|
|
# Whitelist branches to avoid testing feature branches twice
|
2017-05-26 14:08:44 +00:00
|
|
|
branches:
|
|
|
|
only:
|
|
|
|
- master
|
2019-10-21 01:46:05 +00:00
|
|
|
- /\/ci$/
|
2017-05-26 14:08:44 +00:00
|
|
|
|
2017-05-31 08:36:31 +00:00
|
|
|
notifications:
|
2017-05-31 11:22:04 +00:00
|
|
|
email:
|
|
|
|
recipients:
|
|
|
|
- cryptopp-build@googlegroups.com
|
|
|
|
on_success: always # default: change
|
2017-08-11 02:59:00 +00:00
|
|
|
on_failure: always # default: always
|