1
0
Fork 0

Add nightly ARM & IBM platform builds

This commit is contained in:
kcgen 2020-04-26 13:55:48 -07:00 committed by Patryk Obara
parent 01728f719e
commit 2f4830830e
11 changed files with 76 additions and 0 deletions

47
.github/workflows/platforms.yml vendored Normal file
View 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

View 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)

View file

@ -0,0 +1,2 @@
# GCC flags for generically identified ARMv6 SBCs
cflags_release+=(-marm -mfpu=vfpv2 -mfloat-abi=hard)

View file

@ -0,0 +1,14 @@
# GCC flags for generically identified ARMv7 SBCs
# Note: NEON SIMD instructions for floating-point operations are
# not generated by GCCs 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)

View file

@ -0,0 +1,2 @@
# GCC flags specific to the IBM POWER8 platform
cflags_release+=(-mcpu=power8)

View 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)

View file

View file

View file

View file

View file