fix page size on aarch64 (#226)

debian/ubuntu use 4k pages while centos uses 64k pages. 64k pages work
on 4k page systems while a 4k compiled binary will throw this error:
ELF load command alignment not page-aligned

This patch attempts to pass a linker flag that should force 64k page
alignment at all times
This commit is contained in:
Paul Kehrer 2020-08-17 09:23:18 -05:00 committed by GitHub
parent 0b88cb2273
commit 8d35d8acb8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -112,6 +112,9 @@ jobs:
- uses: docker://quay.io/pypa/manylinux2014_aarch64
# The weird pip cache nonsense below is due to docker ownership issues. We want
# a cache because otherwise we end up building cffi twice.
# The bizarro max-page-size linker flag is to enforce 64k alignment even on 4k
# systems so we don't get ELF load command alignment not page-aligned on 64k
# systems.
with:
args: |
bash -c "set -xe;
@ -123,7 +126,7 @@ jobs:
tar zxvf bcrypt*.tar.gz;
mkdir tmpwheelhouse;
pushd bcrypt*;
../.venv/bin/python setup.py bdist_wheel --py-limited-api=${{ matrix.PYTHON.ABI_VERSION }};
CFLAGS=\"-Wl,-z,max-page-size=0x10000\" ../.venv/bin/python setup.py bdist_wheel --py-limited-api=${{ matrix.PYTHON.ABI_VERSION }};
mv dist/bcrypt*.whl ../tmpwheelhouse;
popd;
auditwheel repair tmpwheelhouse/bcrypt*.whl -w wheelhouse/;