Add nightly ARM & IBM platform builds
This commit is contained in:
parent
01728f719e
commit
2f4830830e
11 changed files with 76 additions and 0 deletions
47
.github/workflows/platforms.yml
vendored
Normal file
47
.github/workflows/platforms.yml
vendored
Normal file
|
@ -0,0 +1,47 @@
|
|||
name: Platform builds
|
||||
|
||||
on:
|
||||
schedule: [cron: '0 14 * * *']
|
||||
|
||||
jobs:
|
||||
build_linux_platforms:
|
||||
runs-on: ubuntu-latest
|
||||
name: ${{ matrix.conf.name }}
|
||||
if: github.event_name != 'pull_request' || contains('dreamer,kcgen,ant-222', github.actor) == false
|
||||
strategy:
|
||||
matrix:
|
||||
conf:
|
||||
- name: ARMv6 (Debian Buster)
|
||||
architecture: armv6
|
||||
distribution: buster
|
||||
- name: ARMv7 (Debian Buster)
|
||||
architecture: armv7
|
||||
distribution: buster
|
||||
- name: AArch64 (Ubuntu 18.04)
|
||||
architecture: aarch64
|
||||
distribution: ubuntu18.04
|
||||
- name: LinuxONE (Ubuntu 18.04)
|
||||
architecture: s390x
|
||||
distribution: ubuntu18.04
|
||||
- name: POWER8 (Ubuntu 18.04)
|
||||
architecture: ppc64le
|
||||
distribution: ubuntu18.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Check repo for commits
|
||||
id: repo-meta
|
||||
shell: bash
|
||||
run: 'echo ::set-output name=has-commits::$(./scripts/has-commits-since.sh "24 hours ago")'
|
||||
|
||||
- uses: uraimo/run-on-arch-action@master
|
||||
if: steps.repo-meta.outputs.has-commits == 'true'
|
||||
with:
|
||||
architecture: ${{ matrix.conf.architecture }}
|
||||
distribution: ${{ matrix.conf.distribution }}
|
||||
run: |
|
||||
set -x
|
||||
apt-get update
|
||||
apt-get install -y $(./scripts/list-build-dependencies.sh -c gcc -m apt)
|
||||
./scripts/log-env.sh
|
||||
./scripts/build.sh -c gcc -t release
|
3
scripts/automator/build/gcc-linux_aarch64
Normal file
3
scripts/automator/build/gcc-linux_aarch64
Normal file
|
@ -0,0 +1,3 @@
|
|||
# GCC flags for generically identified AArch64
|
||||
# Note: Advanced SIMD (aka NEON) is mandatory for AArch64 and implied
|
||||
cflags_release+=(-mcpu=native -mstrict-align)
|
2
scripts/automator/build/gcc-linux_armv6
Normal file
2
scripts/automator/build/gcc-linux_armv6
Normal file
|
@ -0,0 +1,2 @@
|
|||
# GCC flags for generically identified ARMv6 SBCs
|
||||
cflags_release+=(-marm -mfpu=vfpv2 -mfloat-abi=hard)
|
14
scripts/automator/build/gcc-linux_armv7l
Normal file
14
scripts/automator/build/gcc-linux_armv7l
Normal file
|
@ -0,0 +1,14 @@
|
|||
# GCC flags for generically identified ARMv7 SBCs
|
||||
|
||||
# Note: NEON SIMD instructions for floating-point operations are
|
||||
# not generated by GCC’s auto-vectorization pass unless
|
||||
# -funsafe-math-optimizations is also specified. This is because
|
||||
# NEON hardware does not fully implement the IEEE 754 standard for
|
||||
# some floating-point arithmetic operations, specifically
|
||||
# "denormal" values are treated as zero, so in these corner-cases,
|
||||
# the use of NEON instructions may lead to a loss of precision.
|
||||
# For our purposes, we expect to perform normal calculations and
|
||||
# thus accept this risk for release builds.
|
||||
|
||||
cflags_release+=(-mcpu=generic-armv7-a -march=armv7-a -mfloat-abi=hard
|
||||
-funsafe-math-optimizations -mfpu=auto)
|
2
scripts/automator/build/gcc-linux_ppc64le
Normal file
2
scripts/automator/build/gcc-linux_ppc64le
Normal file
|
@ -0,0 +1,2 @@
|
|||
# GCC flags specific to the IBM POWER8 platform
|
||||
cflags_release+=(-mcpu=power8)
|
8
scripts/automator/build/gcc-linux_s390x
Normal file
8
scripts/automator/build/gcc-linux_s390x
Normal file
|
@ -0,0 +1,8 @@
|
|||
# GCC flags for the IBM S/390 and zSeries platform
|
||||
|
||||
# Defaults include:
|
||||
# -mlong-double-128, 128-bit long doubles
|
||||
# -m64, generate 64-bit instructions
|
||||
# -mfused-madd, use floating point multiply and accumulate instructions
|
||||
|
||||
cflags_release+=(-march=native -mhard-float)
|
0
scripts/automator/build/machine-aarch64
Normal file
0
scripts/automator/build/machine-aarch64
Normal file
0
scripts/automator/build/machine-armv6
Normal file
0
scripts/automator/build/machine-armv6
Normal file
0
scripts/automator/build/machine-armv7l
Normal file
0
scripts/automator/build/machine-armv7l
Normal file
0
scripts/automator/build/machine-ppc64le
Normal file
0
scripts/automator/build/machine-ppc64le
Normal file
0
scripts/automator/build/machine-s390x
Normal file
0
scripts/automator/build/machine-s390x
Normal file
Loading…
Add table
Reference in a new issue