Skip to content

Commit 263e6d9

Browse files
jcfrodidev
andcommitted
aarch64/ci: Install OpenSSL to fix build error
This commit explicit sets the path to the strip executable to ensure the cmake aarch64 executable can be stripped. See #96 Co-authored-by: odidev <[email protected]>
1 parent 8e166dd commit 263e6d9

File tree

4 files changed

+81
-0
lines changed

4 files changed

+81
-0
lines changed

Diff for: CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,11 @@ if(CMakePythonDistributions_SUPERBUILD)
163163
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
164164
)
165165
endif()
166+
if(DEFINED CMAKE_TOOLCHAIN_FILE)
167+
list(APPEND _common_cache_args
168+
-DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE}
169+
)
170+
endif()
166171
foreach(var_name IN ITEMS
167172
CMAKE_BUILD_PARALLEL_LEVEL
168173
CMAKE_JOB_POOLS

Diff for: scikit-ci.yml

+7
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ before_install:
1313
PATH: /opt/python/$<MANYLINUX_PYTHON>/bin:$<PATH>
1414
SETUP_CMAKE_ARGS: -DCMAKE_JOB_POOL_COMPILE:STRING=compile -DCMAKE_JOB_POOL_LINK:STRING=link '-DCMAKE_JOB_POOLS:STRING=compile=4;link=3'
1515
commands:
16+
- |
17+
if [[ ${DEFAULT_DOCKCROSS_IMAGE} == *"manylinux2014-aarch64"* ]]; then
18+
sudo ./scripts/manylinux2014-aarch64-build-and-install-openssl.sh
19+
fi
1620
- python: |
1721
import ci, os
1822
image_name=os.environ["DEFAULT_DOCKCROSS_IMAGE"].split(":")[0].split("/")[1]
@@ -29,6 +33,9 @@ before_install:
2933
# SETUP_BDIST_WHEEL_ARGS
3034
if arch == "aarch64":
3135
os.environ["SETUP_BDIST_WHEEL_ARGS"] = "--plat-name %s" % os.environ["AUDITWHEEL_PLAT"]
36+
setup_cmake_args = []
37+
setup_cmake_args.append("-DSTRIP_EXECUTABLE:FILEPATH=" + os.environ["CROSS_ROOT"] + "/" + os.environ["CROSS_TRIPLE"] + "/bin/strip")
38+
os.environ["SETUP_CMAKE_ARGS"] = " ".join(setup_cmake_args) + " " + os.environ["SETUP_CMAKE_ARGS"]
3239
ci.driver.Driver.save_env(os.environ)
3340
3441
travis:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#!/usr/bin/env bash
2+
3+
#
4+
# Configure, build and install OpenSSL to support building of CMake using manylinux2014-aarch64 docker image
5+
#
6+
7+
set -eux
8+
set -o pipefail
9+
10+
MY_DIR=$(dirname "${BASH_SOURCE[0]}")
11+
source $MY_DIR/utils.sh
12+
13+
OPENSSL_ROOT=openssl-1.1.1g
14+
15+
# Hash from https://www.openssl.org/source/openssl-1.1.1g.tar.gz.sha256
16+
OPENSSL_HASH=ddb04774f1e32f0c49751e21b67216ac87852ceb056b75209af2443400636d46
17+
18+
# Environment variables defined in "dockcross/manylinux2014-aarch64/Dockerfile.in"
19+
check_var CROSS_ROOT
20+
check_var CROSS_TRIPLE
21+
22+
OPENSSL_INSTALL_DIR=${CROSS_ROOT}/${CROSS_TRIPLE}
23+
24+
cd /tmp
25+
26+
# Download
27+
wget http://www.openssl.org/source/${OPENSSL_ROOT}.tar.gz
28+
check_sha256sum ${OPENSSL_ROOT}.tar.gz ${OPENSSL_HASH}
29+
tar -xzf ${OPENSSL_ROOT}.tar.gz
30+
rm -rf ${OPENSSL_ROOT}.tar.gz
31+
32+
# Configure
33+
cd ${OPENSSL_ROOT}
34+
./Configure \
35+
linux-aarch64 \
36+
--cross-compile-prefix= \
37+
--prefix=${OPENSSL_INSTALL_DIR} \
38+
shared
39+
40+
# Build
41+
make -j$(grep -c processor /proc/cpuinfo)
42+
43+
# Install
44+
make install
45+

Diff for: scripts/utils.sh

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/usr/bin/env bash
2+
3+
set -e
4+
5+
# Copied from https://github.com/pypa/manylinux/blob/master/docker/build_scripts/build_utils.sh
6+
function check_var {
7+
if [ -z "$1" ]; then
8+
echo "required variable not defined"
9+
exit 1
10+
fi
11+
}
12+
13+
# Copied from https://github.com/pypa/manylinux/blob/master/docker/build_scripts/build_utils.sh
14+
function check_sha256sum {
15+
local fname=$1
16+
check_var ${fname}
17+
local sha256=$2
18+
check_var ${sha256}
19+
20+
echo "${sha256} ${fname}" > ${fname}.sha256
21+
sha256sum -c ${fname}.sha256
22+
rm -f ${fname}.sha256
23+
}
24+

0 commit comments

Comments
 (0)