ci: Enable format checking in many builds.

Signed-off-by: Jeff Epler <jepler@gmail.com>
This commit is contained in:
Jeff Epler 2025-07-05 11:39:48 +01:00
parent b02f562bbf
commit ffea37149a
3 changed files with 77 additions and 46 deletions

View file

@ -152,6 +152,9 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
- uses: actions/checkout@v4
- name: Install packages
run: source tools/ci.sh && ci_unix_float_setup
- name: Build - name: Build
run: source tools/ci.sh && ci_unix_float_build run: source tools/ci.sh && ci_unix_float_build
- name: Run main test suite - name: Run main test suite

View file

@ -141,10 +141,14 @@ jobs:
run: python run-tests.py --print-failures run: python run-tests.py --print-failures
cross-build-on-linux: cross-build-on-linux:
strategy:
fail-fast: false
matrix:
sys: [i686, x86_64]
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
- name: Install packages - name: Install packages
run: source tools/ci.sh && ci_windows_setup run: source tools/ci.sh && ci_windows_setup
- name: Build - name: Build
run: source tools/ci.sh && ci_windows_build run: source tools/ci.sh && ci_windows_build ${{ matrix.sys }}

View file

@ -24,6 +24,16 @@ function ci_gcc_riscv_setup {
riscv64-unknown-elf-gcc --version riscv64-unknown-elf-gcc --version
} }
function ci_gcc_plugin_setup {
if [ $# -eq 0 ]; then
GCC_VER=$(echo __GNUC__ | gcc -P -E -)
sudo apt-get install gcc-${GCC_VER}-plugin-dev
else
GCC_VER=$(echo __GNUC__ | ${1}-gcc -P -E -)
sudo apt-get install gcc-${GCC_VER}-plugin-dev-${1}
fi
}
function ci_picotool_setup { function ci_picotool_setup {
# Manually installing picotool ensures we use a release version, and speeds up the build. # Manually installing picotool ensures we use a release version, and speeds up the build.
git clone https://github.com/raspberrypi/pico-sdk.git git clone https://github.com/raspberrypi/pico-sdk.git
@ -129,6 +139,7 @@ function ci_mpy_format_setup {
sudo apt-get update sudo apt-get update
sudo apt-get install python2.7 sudo apt-get install python2.7
sudo pip3 install pyelftools sudo pip3 install pyelftools
ci_gcc_plugin_setup
python2.7 --version python2.7 --version
python3 --version python3 --version
} }
@ -276,11 +287,11 @@ function ci_mimxrt_setup {
function ci_mimxrt_build { function ci_mimxrt_build {
make ${MAKEOPTS} -C mpy-cross make ${MAKEOPTS} -C mpy-cross
make ${MAKEOPTS} -C ports/mimxrt BOARD=MIMXRT1020_EVK submodules make ${MAKEOPTS} -C ports/mimxrt BOARD=MIMXRT1020_EVK submodules
make ${MAKEOPTS} -C ports/mimxrt BOARD=MIMXRT1020_EVK make ${MAKEOPTS} -C ports/mimxrt BOARD=MIMXRT1020_EVK MICROPY_USE_COMPILER_PLUGIN=gcc
make ${MAKEOPTS} -C ports/mimxrt BOARD=TEENSY40 submodules make ${MAKEOPTS} -C ports/mimxrt BOARD=TEENSY40 submodules
make ${MAKEOPTS} -C ports/mimxrt BOARD=TEENSY40 make ${MAKEOPTS} -C ports/mimxrt BOARD=TEENSY40 MICROPY_USE_COMPILER_PLUGIN=gcc
make ${MAKEOPTS} -C ports/mimxrt BOARD=MIMXRT1060_EVK submodules make ${MAKEOPTS} -C ports/mimxrt BOARD=MIMXRT1060_EVK submodules
make ${MAKEOPTS} -C ports/mimxrt BOARD=MIMXRT1060_EVK CFLAGS_EXTRA=-DMICROPY_HW_USB_MSC=1 make ${MAKEOPTS} -C ports/mimxrt BOARD=MIMXRT1060_EVK CFLAGS_EXTRA=-DMICROPY_HW_USB_MSC=1 MICROPY_USE_COMPILER_PLUGIN=gcc
} }
######################################################################################## ########################################################################################
@ -294,10 +305,10 @@ function ci_nrf_build {
ports/nrf/drivers/bluetooth/download_ble_stack.sh s140_nrf52_6_1_1 ports/nrf/drivers/bluetooth/download_ble_stack.sh s140_nrf52_6_1_1
make ${MAKEOPTS} -C mpy-cross make ${MAKEOPTS} -C mpy-cross
make ${MAKEOPTS} -C ports/nrf submodules make ${MAKEOPTS} -C ports/nrf submodules
make ${MAKEOPTS} -C ports/nrf BOARD=PCA10040 make ${MAKEOPTS} -C ports/nrf BOARD=PCA10040 MICROPY_USE_COMPILER_PLUGIN=gcc
make ${MAKEOPTS} -C ports/nrf BOARD=MICROBIT make ${MAKEOPTS} -C ports/nrf BOARD=MICROBIT MICROPY_USE_COMPILER_PLUGIN=gcc
make ${MAKEOPTS} -C ports/nrf BOARD=PCA10056 SD=s140 make ${MAKEOPTS} -C ports/nrf BOARD=PCA10056 SD=s140 MICROPY_USE_COMPILER_PLUGIN=gcc
make ${MAKEOPTS} -C ports/nrf BOARD=PCA10090 make ${MAKEOPTS} -C ports/nrf BOARD=PCA10090 MICROPY_USE_COMPILER_PLUGIN=gcc
} }
######################################################################################## ########################################################################################
@ -306,11 +317,12 @@ function ci_nrf_build {
function ci_powerpc_setup { function ci_powerpc_setup {
sudo apt-get update sudo apt-get update
sudo apt-get install gcc-powerpc64le-linux-gnu libc6-dev-ppc64el-cross sudo apt-get install gcc-powerpc64le-linux-gnu libc6-dev-ppc64el-cross
ci_gcc_plugin_setup powerpc64le-linux-gnu
} }
function ci_powerpc_build { function ci_powerpc_build {
make ${MAKEOPTS} -C ports/powerpc UART=potato make ${MAKEOPTS} -C ports/powerpc UART=potato MICROPY_USE_COMPILER_PLUGIN=gcc
make ${MAKEOPTS} -C ports/powerpc UART=lpc_serial make ${MAKEOPTS} -C ports/powerpc UART=lpc_serial MICROPY_USE_COMPILER_PLUGIN=gcc
} }
######################################################################################## ########################################################################################
@ -341,17 +353,18 @@ function ci_qemu_build_arm_prepare {
function ci_qemu_build_arm_bigendian { function ci_qemu_build_arm_bigendian {
ci_qemu_build_arm_prepare ci_qemu_build_arm_prepare
make ${MAKEOPTS} -C ports/qemu CFLAGS_EXTRA=-DMP_ENDIANNESS_BIG=1 make ${MAKEOPTS} -C ports/qemu CFLAGS_EXTRA=-DMP_ENDIANNESS_BIG=1 MICROPY_USE_COMPILER_PLUGIN=gcc
} }
function ci_qemu_build_arm_sabrelite { function ci_qemu_build_arm_sabrelite {
ci_qemu_build_arm_prepare ci_qemu_build_arm_prepare
make ${MAKEOPTS} -C ports/qemu BOARD=SABRELITE test_full make ${MAKEOPTS} -C ports/qemu BOARD=SABRELITE test_full MICROPY_USE_COMPILER_PLUGIN=gcc
} }
function ci_qemu_build_arm_thumb_softfp { function ci_qemu_build_arm_thumb_softfp {
ci_qemu_build_arm_prepare ci_qemu_build_arm_prepare
make BOARD=MPS2_AN385 ${MAKEOPTS} -C ports/qemu test_full make BOARD=MPS2_AN385 ${MAKEOPTS} -C ports/qemu MICROPY_USE_COMPILER_PLUGIN=gcc test_full
make ${MAKEOPTS} -C ports/qemu test_full MICROPY_USE_COMPILER_PLUGIN=gcc
# Test building native .mpy with ARM-M softfp architectures. # Test building native .mpy with ARM-M softfp architectures.
ci_native_mpy_modules_build armv6m ci_native_mpy_modules_build armv6m
@ -378,7 +391,7 @@ function ci_qemu_build_arm_thumb_hardfp {
function ci_qemu_build_rv32 { function ci_qemu_build_rv32 {
make ${MAKEOPTS} -C mpy-cross make ${MAKEOPTS} -C mpy-cross
make ${MAKEOPTS} -C ports/qemu BOARD=VIRT_RV32 submodules make ${MAKEOPTS} -C ports/qemu BOARD=VIRT_RV32 submodules
make ${MAKEOPTS} -C ports/qemu BOARD=VIRT_RV32 test_full make ${MAKEOPTS} -C ports/qemu BOARD=VIRT_RV32 test_full MICROPY_USE_COMPILER_PLUGIN=gcc
# Test building and running native .mpy with rv32imc architecture. # Test building and running native .mpy with rv32imc architecture.
ci_native_mpy_modules_build rv32imc ci_native_mpy_modules_build rv32imc
@ -396,13 +409,13 @@ function ci_renesas_ra_setup {
function ci_renesas_ra_board_build { function ci_renesas_ra_board_build {
make ${MAKEOPTS} -C mpy-cross make ${MAKEOPTS} -C mpy-cross
make ${MAKEOPTS} -C ports/renesas-ra submodules make ${MAKEOPTS} -C ports/renesas-ra submodules
make ${MAKEOPTS} -C ports/renesas-ra BOARD=RA4M1_CLICKER make ${MAKEOPTS} -C ports/renesas-ra BOARD=RA4M1_CLICKER MICROPY_USE_COMPILER_PLUGIN=gcc
make ${MAKEOPTS} -C ports/renesas-ra BOARD=EK_RA6M2 make ${MAKEOPTS} -C ports/renesas-ra BOARD=EK_RA6M2 MICROPY_USE_COMPILER_PLUGIN=gcc
make ${MAKEOPTS} -C ports/renesas-ra BOARD=EK_RA6M1 make ${MAKEOPTS} -C ports/renesas-ra BOARD=EK_RA6M1 MICROPY_USE_COMPILER_PLUGIN=gcc
make ${MAKEOPTS} -C ports/renesas-ra BOARD=EK_RA4M1 make ${MAKEOPTS} -C ports/renesas-ra BOARD=EK_RA4M1 MICROPY_USE_COMPILER_PLUGIN=gcc
make ${MAKEOPTS} -C ports/renesas-ra BOARD=EK_RA4W1 make ${MAKEOPTS} -C ports/renesas-ra BOARD=EK_RA4W1 MICROPY_USE_COMPILER_PLUGIN=gcc
make ${MAKEOPTS} -C ports/renesas-ra BOARD=ARDUINO_PORTENTA_C33 submodules make ${MAKEOPTS} -C ports/renesas-ra BOARD=ARDUINO_PORTENTA_C33 submodules
make ${MAKEOPTS} -C ports/renesas-ra BOARD=ARDUINO_PORTENTA_C33 make ${MAKEOPTS} -C ports/renesas-ra BOARD=ARDUINO_PORTENTA_C33 MICROPY_USE_COMPILER_PLUGIN=gcc
} }
######################################################################################## ########################################################################################
@ -440,8 +453,8 @@ function ci_samd_setup {
function ci_samd_build { function ci_samd_build {
make ${MAKEOPTS} -C mpy-cross make ${MAKEOPTS} -C mpy-cross
make ${MAKEOPTS} -C ports/samd submodules make ${MAKEOPTS} -C ports/samd submodules
make ${MAKEOPTS} -C ports/samd BOARD=ADAFRUIT_ITSYBITSY_M0_EXPRESS make ${MAKEOPTS} -C ports/samd BOARD=ADAFRUIT_ITSYBITSY_M0_EXPRESS MICROPY_USE_COMPILER_PLUGIN=gcc
make ${MAKEOPTS} -C ports/samd BOARD=ADAFRUIT_ITSYBITSY_M4_EXPRESS make ${MAKEOPTS} -C ports/samd BOARD=ADAFRUIT_ITSYBITSY_M4_EXPRESS MICROPY_USE_COMPILER_PLUGIN=gcc
} }
######################################################################################## ########################################################################################
@ -460,12 +473,12 @@ function ci_stm32_pyb_build {
make ${MAKEOPTS} -C ports/stm32 BOARD=PYBD_SF2 submodules make ${MAKEOPTS} -C ports/stm32 BOARD=PYBD_SF2 submodules
git submodule update --init lib/btstack git submodule update --init lib/btstack
git submodule update --init lib/mynewt-nimble git submodule update --init lib/mynewt-nimble
make ${MAKEOPTS} -C ports/stm32 BOARD=PYBV11 MICROPY_PY_NETWORK_WIZNET5K=5200 USER_C_MODULES=../../examples/usercmodule make ${MAKEOPTS} -C ports/stm32 BOARD=PYBV11 MICROPY_PY_NETWORK_WIZNET5K=5200 USER_C_MODULES=../../examples/usercmodule MICROPY_USE_COMPILER_PLUGIN=gcc
make ${MAKEOPTS} -C ports/stm32 BOARD=PYBD_SF2 make ${MAKEOPTS} -C ports/stm32 BOARD=PYBD_SF2 MICROPY_USE_COMPILER_PLUGIN=gcc
make ${MAKEOPTS} -C ports/stm32 BOARD=PYBD_SF6 COPT=-O2 NANBOX=1 MICROPY_BLUETOOTH_NIMBLE=0 MICROPY_BLUETOOTH_BTSTACK=1 make ${MAKEOPTS} -C ports/stm32 BOARD=PYBD_SF6 COPT=-O2 NANBOX=1 MICROPY_BLUETOOTH_NIMBLE=0 MICROPY_BLUETOOTH_BTSTACK=1 MICROPY_USE_COMPILER_PLUGIN=gcc
make ${MAKEOPTS} -C ports/stm32/mboot BOARD=PYBV10 CFLAGS_EXTRA='-DMBOOT_FSLOAD=1 -DMBOOT_VFS_LFS2=1' make ${MAKEOPTS} -C ports/stm32/mboot BOARD=PYBV10 CFLAGS_EXTRA='-DMBOOT_FSLOAD=1 -DMBOOT_VFS_LFS2=1' MICROPY_USE_COMPILER_PLUGIN=gcc
make ${MAKEOPTS} -C ports/stm32/mboot BOARD=PYBD_SF6 make ${MAKEOPTS} -C ports/stm32/mboot BOARD=PYBD_SF6 MICROPY_USE_COMPILER_PLUGIN=gcc
make ${MAKEOPTS} -C ports/stm32/mboot BOARD=STM32F769DISC CFLAGS_EXTRA='-DMBOOT_ADDRESS_SPACE_64BIT=1 -DMBOOT_SDCARD_ADDR=0x100000000ULL -DMBOOT_SDCARD_BYTE_SIZE=0x400000000ULL -DMBOOT_FSLOAD=1 -DMBOOT_VFS_FAT=1' make ${MAKEOPTS} -C ports/stm32/mboot BOARD=STM32F769DISC CFLAGS_EXTRA='-DMBOOT_ADDRESS_SPACE_64BIT=1 -DMBOOT_SDCARD_ADDR=0x100000000ULL -DMBOOT_SDCARD_BYTE_SIZE=0x400000000ULL -DMBOOT_FSLOAD=1 -DMBOOT_VFS_FAT=1' MICROPY_USE_COMPILER_PLUGIN=gcc
} }
function ci_stm32_nucleo_build { function ci_stm32_nucleo_build {
@ -474,15 +487,15 @@ function ci_stm32_nucleo_build {
git submodule update --init lib/mynewt-nimble git submodule update --init lib/mynewt-nimble
# Test building various MCU families, some with additional options. # Test building various MCU families, some with additional options.
make ${MAKEOPTS} -C ports/stm32 BOARD=NUCLEO_F091RC make ${MAKEOPTS} -C ports/stm32 BOARD=NUCLEO_F091RC MICROPY_USE_COMPILER_PLUGIN=gcc
make ${MAKEOPTS} -C ports/stm32 BOARD=STM32H573I_DK make ${MAKEOPTS} -C ports/stm32 BOARD=STM32H573I_DK MICROPY_USE_COMPILER_PLUGIN=gcc
make ${MAKEOPTS} -C ports/stm32 BOARD=NUCLEO_H743ZI COPT=-O2 CFLAGS_EXTRA='-DMICROPY_PY_THREAD=1' make ${MAKEOPTS} -C ports/stm32 BOARD=NUCLEO_H743ZI COPT=-O2 CFLAGS_EXTRA='-DMICROPY_PY_THREAD=1' MICROPY_USE_COMPILER_PLUGIN=gcc
make ${MAKEOPTS} -C ports/stm32 BOARD=NUCLEO_L073RZ make ${MAKEOPTS} -C ports/stm32 BOARD=NUCLEO_L073RZ MICROPY_USE_COMPILER_PLUGIN=gcc
make ${MAKEOPTS} -C ports/stm32 BOARD=NUCLEO_L476RG DEBUG=1 make ${MAKEOPTS} -C ports/stm32 BOARD=NUCLEO_L476RG DEBUG=1 MICROPY_USE_COMPILER_PLUGIN=gcc
# Test building a board with mboot packing enabled (encryption, signing, compression). # Test building a board with mboot packing enabled (encryption, signing, compression).
make ${MAKEOPTS} -C ports/stm32 BOARD=NUCLEO_WB55 USE_MBOOT=1 MBOOT_ENABLE_PACKING=1 make ${MAKEOPTS} -C ports/stm32 BOARD=NUCLEO_WB55 USE_MBOOT=1 MBOOT_ENABLE_PACKING=1 MICROPY_USE_COMPILER_PLUGIN=gcc
make ${MAKEOPTS} -C ports/stm32/mboot BOARD=NUCLEO_WB55 USE_MBOOT=1 MBOOT_ENABLE_PACKING=1 make ${MAKEOPTS} -C ports/stm32/mboot BOARD=NUCLEO_WB55 USE_MBOOT=1 MBOOT_ENABLE_PACKING=1 MICROPY_USE_COMPILER_PLUGIN=gcc
# Test mboot_pack_dfu.py created a valid file, and that its unpack-dfu command works. # Test mboot_pack_dfu.py created a valid file, and that its unpack-dfu command works.
BOARD_WB55=ports/stm32/boards/NUCLEO_WB55 BOARD_WB55=ports/stm32/boards/NUCLEO_WB55
BUILD_WB55=ports/stm32/build-NUCLEO_WB55 BUILD_WB55=ports/stm32/build-NUCLEO_WB55
@ -497,7 +510,7 @@ function ci_stm32_nucleo_build {
function ci_stm32_misc_build { function ci_stm32_misc_build {
make ${MAKEOPTS} -C mpy-cross make ${MAKEOPTS} -C mpy-cross
make ${MAKEOPTS} -C ports/stm32 BOARD=ARDUINO_GIGA submodules make ${MAKEOPTS} -C ports/stm32 BOARD=ARDUINO_GIGA submodules
make ${MAKEOPTS} -C ports/stm32 BOARD=ARDUINO_GIGA make ${MAKEOPTS} -C ports/stm32 BOARD=ARDUINO_GIGA MICROPY_USE_COMPILER_PLUGIN=gcc
} }
######################################################################################## ########################################################################################
@ -632,12 +645,15 @@ function ci_unix_coverage_setup {
pip3 install setuptools pip3 install setuptools
pip3 install pyelftools pip3 install pyelftools
pip3 install ar pip3 install ar
ci_gcc_plugin_setup
gcc --version gcc --version
python3 --version python3 --version
} }
function ci_unix_coverage_build { function ci_unix_coverage_build {
ci_unix_build_helper VARIANT=coverage # (Ensure mpy-cross is built with the plugin too)
make ${MAKEOPTS} -C mpy-cross MICROPY_USE_COMPILER_PLUGIN=gcc
ci_unix_build_helper VARIANT=coverage MICROPY_USE_COMPILER_PLUGIN=gcc
ci_unix_build_ffi_lib_helper gcc ci_unix_build_ffi_lib_helper gcc
} }
@ -678,6 +694,7 @@ function ci_unix_32bit_setup {
sudo dpkg --add-architecture i386 sudo dpkg --add-architecture i386
sudo apt-get update sudo apt-get update
sudo apt-get install gcc-multilib g++-multilib libffi-dev:i386 python2.7 sudo apt-get install gcc-multilib g++-multilib libffi-dev:i386 python2.7
ci_gcc_plugin_setup
sudo pip3 install setuptools sudo pip3 install setuptools
sudo pip3 install pyelftools sudo pip3 install pyelftools
sudo pip3 install ar sudo pip3 install ar
@ -687,7 +704,7 @@ function ci_unix_32bit_setup {
} }
function ci_unix_coverage_32bit_build { function ci_unix_coverage_32bit_build {
ci_unix_build_helper VARIANT=coverage MICROPY_FORCE_32BIT=1 ci_unix_build_helper VARIANT=coverage MICROPY_FORCE_32BIT=1 MICROPY_USE_COMPILER_PLUGIN=gcc
ci_unix_build_ffi_lib_helper gcc -m32 ci_unix_build_ffi_lib_helper gcc -m32
} }
@ -701,7 +718,7 @@ function ci_unix_coverage_32bit_run_native_mpy_tests {
function ci_unix_nanbox_build { function ci_unix_nanbox_build {
# Use Python 2 to check that it can run the build scripts # Use Python 2 to check that it can run the build scripts
ci_unix_build_helper PYTHON=python2.7 VARIANT=nanbox CFLAGS_EXTRA="-DMICROPY_PY_MATH_CONSTANTS=1" ci_unix_build_helper PYTHON=python2.7 VARIANT=nanbox CFLAGS_EXTRA="-DMICROPY_PY_MATH_CONSTANTS=1" MICROPY_USE_COMPILER_PLUGIN=gcc
ci_unix_build_ffi_lib_helper gcc -m32 ci_unix_build_ffi_lib_helper gcc -m32
} }
@ -710,15 +727,19 @@ function ci_unix_nanbox_run_tests {
} }
function ci_unix_longlong_build { function ci_unix_longlong_build {
ci_unix_build_helper VARIANT=longlong "${CI_UNIX_OPTS_SANITIZE_UNDEFINED[@]}" ci_unix_build_helper VARIANT=longlong "${CI_UNIX_OPTS_SANITIZE_UNDEFINED[@]}" MICROPY_USE_COMPILER_PLUGIN=gcc
} }
function ci_unix_longlong_run_tests { function ci_unix_longlong_run_tests {
ci_unix_run_tests_full_helper longlong ci_unix_run_tests_full_helper longlong
} }
function ci_unix_float_setup {
ci_gcc_plugin_setup
}
function ci_unix_float_build { function ci_unix_float_build {
ci_unix_build_helper VARIANT=standard CFLAGS_EXTRA="-DMICROPY_FLOAT_IMPL=MICROPY_FLOAT_IMPL_FLOAT" ci_unix_build_helper VARIANT=standard CFLAGS_EXTRA="-DMICROPY_FLOAT_IMPL=MICROPY_FLOAT_IMPL_FLOAT" MICROPY_USE_COMPILER_PLUGIN=gcc
ci_unix_build_ffi_lib_helper gcc ci_unix_build_ffi_lib_helper gcc
} }
@ -815,15 +836,16 @@ function ci_unix_macos_run_tests {
function ci_unix_qemu_mips_setup { function ci_unix_qemu_mips_setup {
sudo apt-get update sudo apt-get update
sudo apt-get install gcc-mips-linux-gnu g++-mips-linux-gnu libc6-mips-cross sudo apt-get install gcc-10-mips-linux-gnu g++-mips-linux-gnu libc6-mips-cross
sudo apt-get install qemu-user sudo apt-get install qemu-user
ci_gcc_plugin_setup mips-linux-gnu
qemu-mips --version qemu-mips --version
sudo mkdir /etc/qemu-binfmt sudo mkdir /etc/qemu-binfmt
sudo ln -s /usr/mips-linux-gnu/ /etc/qemu-binfmt/mips sudo ln -s /usr/mips-linux-gnu/ /etc/qemu-binfmt/mips
} }
function ci_unix_qemu_mips_build { function ci_unix_qemu_mips_build {
ci_unix_build_helper "${CI_UNIX_OPTS_QEMU_MIPS[@]}" ci_unix_build_helper "${CI_UNIX_OPTS_QEMU_MIPS[@]}" MICROPY_USE_COMPILER_PLUGIN=gcc
ci_unix_build_ffi_lib_helper mips-linux-gnu-gcc ci_unix_build_ffi_lib_helper mips-linux-gnu-gcc
} }
@ -839,13 +861,14 @@ function ci_unix_qemu_arm_setup {
sudo apt-get update sudo apt-get update
sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi
sudo apt-get install qemu-user sudo apt-get install qemu-user
ci_gcc_plugin_setup arm-linux-gnueabi
qemu-arm --version qemu-arm --version
sudo mkdir /etc/qemu-binfmt sudo mkdir /etc/qemu-binfmt
sudo ln -s /usr/arm-linux-gnueabi/ /etc/qemu-binfmt/arm sudo ln -s /usr/arm-linux-gnueabi/ /etc/qemu-binfmt/arm
} }
function ci_unix_qemu_arm_build { function ci_unix_qemu_arm_build {
ci_unix_build_helper "${CI_UNIX_OPTS_QEMU_ARM[@]}" ci_unix_build_helper "${CI_UNIX_OPTS_QEMU_ARM[@]}" MICROPY_USE_COMPILER_PLUGIN=gcc
ci_unix_build_ffi_lib_helper arm-linux-gnueabi-gcc ci_unix_build_ffi_lib_helper arm-linux-gnueabi-gcc
} }
@ -862,13 +885,14 @@ function ci_unix_qemu_riscv64_setup {
sudo apt-get update sudo apt-get update
sudo apt-get install gcc-riscv64-linux-gnu g++-riscv64-linux-gnu sudo apt-get install gcc-riscv64-linux-gnu g++-riscv64-linux-gnu
sudo apt-get install qemu-user sudo apt-get install qemu-user
ci_gcc_plugin_setup riscv64-linux-gnu
qemu-riscv64 --version qemu-riscv64 --version
sudo mkdir /etc/qemu-binfmt sudo mkdir /etc/qemu-binfmt
sudo ln -s /usr/riscv64-linux-gnu/ /etc/qemu-binfmt/riscv64 sudo ln -s /usr/riscv64-linux-gnu/ /etc/qemu-binfmt/riscv64
} }
function ci_unix_qemu_riscv64_build { function ci_unix_qemu_riscv64_build {
ci_unix_build_helper "${CI_UNIX_OPTS_QEMU_RISCV64[@]}" ci_unix_build_helper "${CI_UNIX_OPTS_QEMU_RISCV64[@]}" MICROPY_USE_COMPILER_PLUGIN=gcc
ci_unix_build_ffi_lib_helper riscv64-linux-gnu-gcc ci_unix_build_ffi_lib_helper riscv64-linux-gnu-gcc
} }
@ -891,7 +915,7 @@ function ci_windows_setup {
function ci_windows_build { function ci_windows_build {
make ${MAKEOPTS} -C mpy-cross make ${MAKEOPTS} -C mpy-cross
make ${MAKEOPTS} -C ports/windows submodules make ${MAKEOPTS} -C ports/windows submodules
make ${MAKEOPTS} -C ports/windows CROSS_COMPILE=i686-w64-mingw32- make ${MAKEOPTS} -C ports/windows CROSS_COMPILE=${1-i686}-w64-mingw32- MICROPY_USE_COMPILER_PLUGIN=gcc
} }
######################################################################################## ########################################################################################