Commit 9844b2ad authored by mattip's avatar mattip
Browse files

Add support for s390x, ppc64le on manylinux2014, i386 on manylinux2010

parent 69893741
......@@ -15,12 +15,12 @@ matrix:
include:
- os: linux
dist: trusty
# 64-bit builds
- os: linux
dist: xenial
env:
- TEST_BUILDS=1
# 64-bit builds, manylinux2010
# # 64-bit builds
# - os: linux
# dist: xenial
# env:
# - TEST_BUILDS=1
# # 64-bit builds, manylinux2010
# - os: linux
# dist: xenial
# env:
......@@ -32,6 +32,12 @@ matrix:
# env:
# - TEST_BUILDS=1
# - PLAT=i686
- os: linux
dist: xenial
env:
- TEST_BUILDS=1
- PLAT=i686
- MB_ML_VER=2010
# # Builds with caching
# - os: linux
# dist: xenial
......@@ -216,7 +222,22 @@ matrix:
- MB_ML_VER=2014
- TEST_BUILDS=1
- PLAT=aarch64
# s390x builds
- os: linux
arch: s390x
env:
- MB_PYTHON_VERSION=3.7
- MB_ML_VER=2014
- TEST_BUILDS=1
- PLAT=s390x
# ppc64le builds
- os: linux
arch: ppc64le
env:
- MB_PYTHON_VERSION=3.7
- MB_ML_VER=2014
- TEST_BUILDS=1
- PLAT=ppc64le
script:
- export ENV_VARS_PATH="tests/env_vars.sh"
......
......@@ -92,12 +92,9 @@ Specify the Manylinux version to build for with the `MB_ML_VER` environment vari
The environment variable specified which Manylinux docker container you are building in.
The `PLAT` environment variable can be one of `x86_64`, `i686` or `aarch64`, specifying 64-bit x86, 32-bit x86, and 64-bit ARM builds, respectively. The default is `x86_64`.
At the time of writing, Manylinux2010 only supports 64-bit
builds, so `MB_ML_VER=2010` and `PLAT=i686` is an invalid
combination, and will generate an error when trying to find the
matching Docker image.
The `PLAT` environment variable can be one of `x86_64`, `i686` `s390x`,
`ppc64le`, or `aarch64`, specifying 64-bit x86, 32-bit x86, 64-bit s390x,
PowerPC, and ARM builds, respectively. The default is `x86_64`.
``multibuild/travis_linux_steps.sh`` defines the ``build_wheel`` function,
which starts up the Manylinux1 Docker container to run a wrapper script
......
......@@ -13,7 +13,6 @@ set -e
MULTIBUILD_DIR=$(dirname "${BASH_SOURCE[0]}")
if [ $(uname) == "Darwin" ]; then IS_OSX=1; fi
if [ "$PLAT" == "aarch64" ]; then IS_AARCH64=1; fi
# Work round bug in travis xcode image described at
# https://github.com/direnv/direnv/issues/210
......@@ -311,6 +310,9 @@ function get_platform {
python -c 'import platform; print(platform.uname()[4])'
}
if [ "$(get_platform)" == x86_64 ] || \
[ "$(get_platform)" == i686 ]; then IS_X86=1; fi
function get_distutils_platform {
# Report platform as given by distutils get_platform.
# This is the platform tag that pip will use.
......
......@@ -94,7 +94,7 @@ function build_openblas {
if [ -n "$IS_OSX" ]; then
brew install openblas
brew link --force openblas
elif [ -n "$IS_AARCH64" ]; then
elif [ ! -v IS_X86 ]; then
# Skip this for now until we can build a suitable tar.gz
return;
else
......
......@@ -86,10 +86,13 @@ actual="$(set -e; suppress bad_mid_cmd)"
# Reset options
set_opts $ORIG_OPTS
# On Linux docker containers in travis, can be x86_64, i686, or aarch64
# On Linux docker containers in travis, can be x86_64, i686, s390x, ppc64le, or
# aarch64
[ "$(get_platform)" == x86_64 ] || \
[ "$(get_platform)" == i686 ] || \
[ "$(get_platform)" == aarch64 ] || \
[ "$(get_platform)" == ppc64le ] || \
[ "$(get_platform)" == s390x ] || \
exit 1
# Crudest possible check for get_distutils_platform
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment