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: ...@@ -15,12 +15,12 @@ matrix:
include: include:
- os: linux - os: linux
dist: trusty dist: trusty
# 64-bit builds # # 64-bit builds
- os: linux # - os: linux
dist: xenial # dist: xenial
env: # env:
- TEST_BUILDS=1 # - TEST_BUILDS=1
# 64-bit builds, manylinux2010 # # 64-bit builds, manylinux2010
# - os: linux # - os: linux
# dist: xenial # dist: xenial
# env: # env:
...@@ -32,6 +32,12 @@ matrix: ...@@ -32,6 +32,12 @@ matrix:
# env: # env:
# - TEST_BUILDS=1 # - TEST_BUILDS=1
# - PLAT=i686 # - PLAT=i686
- os: linux
dist: xenial
env:
- TEST_BUILDS=1
- PLAT=i686
- MB_ML_VER=2010
# # Builds with caching # # Builds with caching
# - os: linux # - os: linux
# dist: xenial # dist: xenial
...@@ -216,7 +222,22 @@ matrix: ...@@ -216,7 +222,22 @@ matrix:
- MB_ML_VER=2014 - MB_ML_VER=2014
- TEST_BUILDS=1 - TEST_BUILDS=1
- PLAT=aarch64 - 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: script:
- export ENV_VARS_PATH="tests/env_vars.sh" - 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 ...@@ -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 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`. 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,
At the time of writing, Manylinux2010 only supports 64-bit PowerPC, and ARM builds, respectively. The default is `x86_64`.
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.
``multibuild/travis_linux_steps.sh`` defines the ``build_wheel`` function, ``multibuild/travis_linux_steps.sh`` defines the ``build_wheel`` function,
which starts up the Manylinux1 Docker container to run a wrapper script which starts up the Manylinux1 Docker container to run a wrapper script
......
...@@ -13,7 +13,6 @@ set -e ...@@ -13,7 +13,6 @@ set -e
MULTIBUILD_DIR=$(dirname "${BASH_SOURCE[0]}") MULTIBUILD_DIR=$(dirname "${BASH_SOURCE[0]}")
if [ $(uname) == "Darwin" ]; then IS_OSX=1; fi 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 # Work round bug in travis xcode image described at
# https://github.com/direnv/direnv/issues/210 # https://github.com/direnv/direnv/issues/210
...@@ -311,6 +310,9 @@ function get_platform { ...@@ -311,6 +310,9 @@ function get_platform {
python -c 'import platform; print(platform.uname()[4])' 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 { function get_distutils_platform {
# Report platform as given by distutils get_platform. # Report platform as given by distutils get_platform.
# This is the platform tag that pip will use. # This is the platform tag that pip will use.
......
...@@ -94,7 +94,7 @@ function build_openblas { ...@@ -94,7 +94,7 @@ function build_openblas {
if [ -n "$IS_OSX" ]; then if [ -n "$IS_OSX" ]; then
brew install openblas brew install openblas
brew link --force 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 # Skip this for now until we can build a suitable tar.gz
return; return;
else else
......
...@@ -86,10 +86,13 @@ actual="$(set -e; suppress bad_mid_cmd)" ...@@ -86,10 +86,13 @@ actual="$(set -e; suppress bad_mid_cmd)"
# Reset options # Reset options
set_opts $ORIG_OPTS 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)" == x86_64 ] || \
[ "$(get_platform)" == i686 ] || \ [ "$(get_platform)" == i686 ] || \
[ "$(get_platform)" == aarch64 ] || \ [ "$(get_platform)" == aarch64 ] || \
[ "$(get_platform)" == ppc64le ] || \
[ "$(get_platform)" == s390x ] || \
exit 1 exit 1
# Crudest possible check for get_distutils_platform # 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