Skip to content

Commit

Permalink
gh-actions: upgrade to Ubuntu 24.04 LTS; upgrade/add GCC 13 / clang 18
Browse files Browse the repository at this point in the history
  • Loading branch information
mr-c committed Jul 6, 2024
1 parent 32c959c commit 49671f0
Show file tree
Hide file tree
Showing 24 changed files with 680 additions and 143 deletions.
295 changes: 154 additions & 141 deletions .github/workflows/ci.yml

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ RUN \

# Meson on stable is too old, and we want to make sure we keep 0.55
# working for a while.
RUN pipx install meson==0.55.0
RUN pipx install meson==0.55.1

# GCC cross-compilers
RUN \
Expand All @@ -54,7 +54,7 @@ RUN \
PACKAGES_TO_INSTALL="${PACKAGES_TO_INSTALL} $(apt-file search -x "/usr/bin/$(/tmp/simde-bin/arch2gcc.sh ${ARCH})-(ar|g(cc|\+\+)-[0-9\.]+)" | awk -F: '{ print $1}')"; \
done; \
echo ${PACKAGES_TO_INSTALL} ; \
apt-get install -yq ${PACKAGES_TO_INSTALL}
apt-get install -yq $(echo ${PACKAGES_TO_INSTALL} | tr ' ' '\n' | grep -v -- -9- | tr '\n' ' ')

ENV PATH="/usr/lib/ccache:$PATH:/root/.local/bin:/root/.jsvu/bin"

Expand Down
20 changes: 20 additions & 0 deletions docker/cross-files/aarch64-clang-18-ccache.cross
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[binaries]
c = ['ccache', 'clang-18']
cpp = ['ccache', 'clang++-18']
ar = 'llvm-ar-18'
strip = 'llvm-strip-18'
objcopy = 'llvm-objcopy-18'
ld = 'llvm-ld-18'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']

[properties]
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc+bf16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc+bf16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
c_link_args = ['--target=aarch64-linux-gnu']
cpp_link_args = ['--target=aarch64-linux-gnu']

[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'
18 changes: 18 additions & 0 deletions docker/cross-files/aarch64-gcc-13-ccache.cross
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
[binaries]
c = ['ccache', 'aarch64-linux-gnu-gcc-13']
cpp = ['ccache', 'aarch64-linux-gnu-g++-13']
ar = 'aarch64-linux-gnu-ar'
strip = 'aarch64-linux-gnu-strip'
objcopy = 'aarch64-linux-gnu-objcopy'
ld = 'aarch64-linux-gnu-ld'
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']

[properties]
c_args = ['-march=armv8.2-a+simd+crypto+crc+bf16', '-Wextra', '-Werror']
cpp_args = ['-march=armv8.2-a+simd+crypto+crc+bf16', '-Wextra', '-Werror']

[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'arm64'
endian = 'little'
20 changes: 20 additions & 0 deletions docker/cross-files/armel-clang-18-ccache.cross
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[binaries]
c = ['ccache', 'clang-18']
cpp = ['ccache', 'clang++-18']
ar = 'llvm-ar-18'
strip = 'llvm-strip-18'
objcopy = 'llvm-objcopy-18'
ld = 'llvm-ld-18'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabi']

[properties]
c_args = ['--target=arm-linux-gnueabi', '-isystem=/usr/arm-linux-gnueabi/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
cpp_args = ['--target=arm-linux-gnueabi', '-isystem=/usr/arm-linux-gnueabi/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
c_link_args = ['--target=arm-linux-gnueabi']
cpp_link_args = ['--target=arm-linux-gnueabi']

[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'generic'
endian = 'little'
18 changes: 18 additions & 0 deletions docker/cross-files/armel-gcc-13-ccache.cross
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
[binaries]
c = ['ccache', 'arm-linux-gnueabi-gcc-13']
cpp = ['ccache', 'arm-linux-gnueabi-g++-13']
ar = 'arm-linux-gnueabi-ar'
strip = 'arm-linux-gnueabi-strip'
objcopy = 'arm-linux-gnueabi-objcopy'
ld = 'arm-linux-gnueabi-ld'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabi']

[properties]
c_args = ['-Wextra', '-Werror']
cpp_args = ['-Wextra', '-Werror']

[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'generic'
endian = 'little'
20 changes: 20 additions & 0 deletions docker/cross-files/armv7-clang-18-ccache.cross
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[binaries]
c = ['ccache', 'clang-18']
cpp = ['ccache', 'clang++-18']
ar = 'llvm-ar-18'
strip = 'llvm-strip-18'
objcopy = 'llvm-objcopy-18'
ld = 'llvm-ld-18'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']

[properties]
c_args = ['--target=arm-linux-gnueabihf', '-march=armv7-a', '-mfpu=neon', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
cpp_args = ['--target=arm-linux-gnueabihf', '-march=armv7-a', '-mfpu=neon', '-isystem=/usr/arm-linux-gnueabihf/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
c_link_args = ['--target=arm-linux-gnueabihf']
cpp_link_args = ['--target=arm-linux-gnueabihf']

[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'
18 changes: 18 additions & 0 deletions docker/cross-files/armv7-gcc-13-ccache.cross
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
[binaries]
c = ['ccache', 'arm-linux-gnueabihf-gcc-13']
cpp = ['ccache', 'arm-linux-gnueabihf-g++-13']
ar = 'arm-linux-gnueabihf-ar'
strip = 'arm-linux-gnueabihf-strip'
objcopy = 'arm-linux-gnueabihf-objcopy'
ld = 'arm-linux-gnueabihf-ld'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']

[properties]
c_args = ['-march=armv7-a+simd+neon-fp16', '-mfpu=auto', '-Wextra', '-Werror']
cpp_args = ['-march=armv7-a+simd+neon-fp16', '-mfpu=auto', '-Wextra', '-Werror']

[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv7-a'
endian = 'little'
18 changes: 18 additions & 0 deletions docker/cross-files/armv8-gcc-13-32bit-ccache.cross
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
[binaries]
c = 'arm-linux-gnueabihf-gcc-13'
cpp = 'arm-linux-gnueabihf-g++-13'
ar = 'arm-linux-gnueabihf-ar'
strip = 'arm-linux-gnueabihf-strip'
objcopy = 'arm-linux-gnueabihf-objcopy'
ld = 'arm-linux-gnueabihf-ld'
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabihf']

[properties]
c_args = ['-mcpu=cortex-a32', '-mfpu=crypto-neon-fp-armv8', '-Wextra', '-Werror']
cpp_args = ['-mcpu=cortex-a32', '-mfpu=crypto-neon-fp-armv8', '-Wextra', '-Werror']

[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv8-a'
endian = 'little'
20 changes: 20 additions & 0 deletions docker/cross-files/mips64el-clang-18-ccache.cross
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[binaries]
c = ['ccache', 'clang-18']
cpp = ['ccache', 'clang++-18']
ar = 'llvm-ar-18'
strip = 'llvm-strip-18'
objcopy = 'llvm-objcopy-18'
ld = 'llvm-ld-18'
exe_wrapper = ['qemu-mips64el-static', '-cpu', 'Loongson-3A4000', '-L', '/usr/mips64el-linux-gnuabi64']

[properties]
c_args = ['--target=mips64el-linux-gnuabi64', '-march=mips64r5', '-mmsa', '-isystem=/usr/mips64el-linux-gnuabi64/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default]
cpp_args = ['--target=mips64el-linux-gnuabi64', '-march=mips64r5', '-mmsa', '-isystem=/usr/mips64el-linux-gnuabi64/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default]
c_link_args = ['--target=mips64el-linux-gnuabi64']
cpp_link_args = ['--target=mips64el-linux-gnuabi64']

[host_machine]
system = 'linux'
cpu_family = 'mips64el'
cpu = 'mips64el'
endian = 'little'
18 changes: 18 additions & 0 deletions docker/cross-files/mips64el-gcc-13-ccache.cross
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
[binaries]
c = ['ccache', 'mips64el-linux-gnuabi64-gcc-13']
cpp = ['ccache', 'mips64el-linux-gnuabi64-g++-13']
ar = 'mips64el-linux-gnuabi64-ar'
strip = 'mips64el-linux-gnuabi64-strip'
objcopy = 'mips64el-linux-gnuabi64-objcopy'
ld = 'mips64el-linux-gnuabi64-ld'
exe_wrapper = ['qemu-mips64el-static', '-L', '/usr/mips64el-linux-gnuabi64']

[properties]
c_args = ['-mmsa', '-Wextra', '-Werror']
cpp_args = ['-mmsa', '-Wextra', '-Werror']

[host_machine]
system = 'linux'
cpu_family = 'mips64el'
cpu = 'mips64el'
endian = 'little'
18 changes: 18 additions & 0 deletions docker/cross-files/power9-gcc-13-ccache.cross
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
[binaries]
c = ['ccache', 'powerpc64le-linux-gnu-gcc-13']
cpp = ['ccache', 'powerpc64le-linux-gnu-g++-13']
ar = 'powerpc64le-linux-gnu-ar'
strip = 'powerpc64le-linux-gnu-strip'
objcopy = 'powerpc64le-linux-gnu-objcopy'
ld = 'powerpc64le-linux-gnu-ld'
exe_wrapper = ['qemu-ppc64le-static', '-cpu', 'power9', '-L', '/usr/powerpc64le-linux-gnu/']

[properties]
c_args = ['-mcpu=power9', '-Wextra', '-Werror']
cpp_args = ['-mcpu=power9', '-Wextra', '-Werror']

[host_machine]
system = 'linux'
cpu_family = 'ppc64'
cpu = 'ppc64el'
endian = 'little'
20 changes: 20 additions & 0 deletions docker/cross-files/ppc64el-clang-18-ccache.cross
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[binaries]
c = ['ccache', 'clang-18']
cpp = ['ccache', 'clang++-18']
ar = 'llvm-ar-18'
strip = 'llvm-strip-18'
objcopy = 'llvm-objcopy-18'
ld = 'llvm-ld-18'
exe_wrapper = ['qemu-ppc64le-static', '-L', '/usr/powerpc64le-linux-gnu/']

[properties]
c_args = ['--target=powerpc64le-linux-gnu', '-isystem=/usr/powerpc64le-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-deprecated-altivec-src-compat', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
cpp_args = ['--target=powerpc64le-linux-gnu', '-isystem=/usr/powerpc64le-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-deprecated-altivec-src-compat', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
c_link_args = ['--target=powerpc64le-linux-gnu']
cpp_link_args = ['--target=powerpc64le-linux-gnu']

[host_machine]
system = 'linux'
cpu_family = 'ppc64'
cpu = 'ppc64el'
endian = 'little'
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
[binaries]
c = ['ccache', 'clang-18']
cpp = ['ccache', 'clang++-18']
ar = 'llvm-ar-18'
strip = 'llvm-strip-18'
objcopy = 'llvm-objcopy-18'
ld = 'llvm-ld-18'
exe_wrapper = ['qemu-riscv64', '-L', '/usr/riscv64-linux-gnu/', '-cpu', 'rv64,v=true,vlen=128,elen=64,vext_spec=v1.0']

[properties]
c_args = ['--target=riscv64-linux-gnu',
'-isystem=/usr/riscv64-linux-gnu/include',
'-march=rv64gcv1',
'-menable-experimental-extensions',
'-mrvv-vector-bits=128',
'-Wextra',
'-Werror',
'-Wno-unsafe-buffer-usage']

cpp_args = ['--target=riscv64-linux-gnu',
'-isystem=/usr/riscv64-linux-gnu/include',
'-march=rv64gcv1',
'-menable-experimental-extensions',
'-mrvv-vector-bits=128',
'-Wextra',
'-Werror',
'-Wno-unsafe-buffer-usage']

c_link_args = ['--target=riscv64-linux-gnu']

cpp_link_args = ['--target=riscv64-linux-gnu']

[host_machine]
system = 'linux'
cpu_family = 'riscv64'
cpu = 'rv64,v=true,vlen=128,elen=64,vext_spec=v1.0'
endian = 'little'
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
[binaries]
c = ['ccache', 'clang-18']
cpp = ['ccache', 'clang++-18']
ar = 'llvm-ar-18'
strip = 'llvm-strip-18'
objcopy = 'llvm-objcopy-18'
ld = 'llvm-ld-18'
exe_wrapper = ['qemu-riscv64', '-L', '/usr/riscv64-linux-gnu/', '-cpu', 'rv64,v=true,Zfh=true,x-zvfh=true,vlen=128,elen=64,vext_spec=v1.0']

[properties]
c_args = ['--target=riscv64-linux-gnu',
'-isystem=/usr/riscv64-linux-gnu/include',
'-march=rv64gcv1_zfh_zvfh',
'-menable-experimental-extensions',
'-mrvv-vector-bits=128',
'-Wextra',
'-Werror',
'-Wno-unsafe-buffer-usage']

cpp_args = ['--target=riscv64-linux-gnu',
'-isystem=/usr/riscv64-linux-gnu/include',
'-march=rv64gcv1_zfh_zvfh',
'-menable-experimental-extensions',
'-mrvv-vector-bits=128',
'-Wextra',
'-Werror',
'-Wno-unsafe-buffer-usage']

c_link_args = ['--target=riscv64-linux-gnu']

cpp_link_args = ['--target=riscv64-linux-gnu']

[host_machine]
system = 'linux'
cpu_family = 'riscv64'
cpu = 'rv64,v=true,Zfh=true,x-zvfh=true,vlen=128,elen=64,vext_spec=v1.0'
endian = 'little'
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
[binaries]
c = ['ccache', 'clang-18']
cpp = ['ccache', 'clang++-18']
ar = 'llvm-ar-18'
strip = 'llvm-strip-18'
objcopy = 'llvm-objcopy-18'
ld = 'llvm-ld-18'
exe_wrapper = ['qemu-riscv64', '-L', '/usr/riscv64-linux-gnu/', '-cpu', 'rv64,v=true,vlen=256,elen=64,vext_spec=v1.0']

[properties]
c_args = ['--target=riscv64-linux-gnu',
'-isystem=/usr/riscv64-linux-gnu/include',
'-march=rv64gcv1',
'-menable-experimental-extensions',
'-mrvv-vector-bits=256',
'-Wextra',
'-Werror',
'-Wno-unsafe-buffer-usage']

cpp_args = ['--target=riscv64-linux-gnu',
'-isystem=/usr/riscv64-linux-gnu/include',
'-march=rv64gcv1',
'-menable-experimental-extensions',
'-mrvv-vector-bits=256',
'-Wextra',
'-Werror',
'-Wno-unsafe-buffer-usage']

c_link_args = ['--target=riscv64-linux-gnu']

cpp_link_args = ['--target=riscv64-linux-gnu']

[host_machine]
system = 'linux'
cpu_family = 'riscv64'
cpu = 'rv64,v=true,vlen=256,elen=64,vext_spec=v1.0'
endian = 'little'
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
[binaries]
c = ['ccache', 'clang-18']
cpp = ['ccache', 'clang++-18']
ar = 'llvm-ar-18'
strip = 'llvm-strip-18'
objcopy = 'llvm-objcopy-18'
ld = 'llvm-ld-18'
exe_wrapper = ['qemu-riscv64', '-L', '/usr/riscv64-linux-gnu/', '-cpu', 'rv64,v=true,Zfh=true,x-zvfh=true,vlen=256,elen=64,vext_spec=v1.0']

[properties]
c_args = ['--target=riscv64-linux-gnu',
'-isystem=/usr/riscv64-linux-gnu/include',
'-march=rv64gcv1_zfh_zvfh',
'-menable-experimental-extensions',
'-mrvv-vector-bits=256',
'-Wextra',
'-Werror',
'-Wno-unsafe-buffer-usage']

cpp_args = ['--target=riscv64-linux-gnu',
'-isystem=/usr/riscv64-linux-gnu/include',
'-march=rv64gcv1_zfh_zvfh',
'-menable-experimental-extensions',
'-mrvv-vector-bits=256',
'-Wextra',
'-Werror',
'-Wno-unsafe-buffer-usage']

c_link_args = ['--target=riscv64-linux-gnu']

cpp_link_args = ['--target=riscv64-linux-gnu']

[host_machine]
system = 'linux'
cpu_family = 'riscv64'
cpu = 'rv64,v=true,Zfh=true,x-zvfh=true,vlen=256,elen=64,vext_spec=v1.0'
endian = 'little'
Loading

0 comments on commit 49671f0

Please sign in to comment.