Skip to content

Commit 1b6a2f9

Browse files
quic-kquic-seaswara
authored andcommitted
Test AArch64 Picolibc with multiple configs
Run Picolibc tests over multiple configs for AArch64 Signed-off-by: Kushal Pal <[email protected]>
1 parent 0408d0a commit 1b6a2f9

File tree

1 file changed

+73
-6
lines changed

1 file changed

+73
-6
lines changed

.github/workflows/picolibc-builder.yml

Lines changed: 73 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ jobs:
1515
ENABLED_ARCHS: aarch64
1616
CCACHE_DIR: $GITHUB_WORKSPACE/ccache/
1717
CCACHE_BASEDIR: $GITHUB_WORKSPACE/
18+
PICOLIBC_CONFIG_DEFAULT: ""
19+
PICOLIBC_CONFIG_1: "-Dio-float-exact=false -Dio-long-long=true -Dio-percent-b=true -Dio-long-double=true -Dnewlib-obsolete-math=false -Dwant-math-errno=true -Dsingle-thread=true -Dmb-capable=true -Dmb-extended-charsets=true -Dnewlib-nano-malloc=false -Dpicoexit=false -Dprintf-small-ultoa=true -Dprintf-percent-n=true"
20+
PICOLIBC_CONFIG_2: "-Dio-float-exact=false -Dio-long-long=true -Dio-percent-b=true -Dio-long-double=true -Dnewlib-obsolete-math=false -Dwant-math-errno=true -Dsingle-thread=true -Dmb-capable=true -Dmb-extended-charsets=true -Dnewlib-nano-malloc=false -Dpicoexit=false -Dprintf-small-ultoa=true -Dprintf-percent-n=true"
21+
PICOLIBC_CONFIG_3: "-Dtinystdio=false"
22+
# io-long-double unsupported for aarch64, riscv
23+
PICOLIBC_CONFIG_4: "-Dtinystdio=false -Dnewlib-io-float=true -Dio-long-long=true -Dio-long-double=true -Dnewlib-fvwrite-in-streamio=true -Dsingle-thread=true -Dmb-capable=true -Dmb-extended-charsets=true"
1824

1925
steps:
2026
- name: Set up Clang 20
@@ -315,16 +321,52 @@ jobs:
315321
../scripts/do-clang-arm-configure -Dc_ld=ld.eld -Dcpp_ld=ld.eld
316322
ninja
317323
318-
- name: Build Picolibc for AArch64
324+
- name: Build Picolibc for AArch64, config default
319325
if: contains(env.ENABLED_ARCHS, 'aarch64')
320326
run: |
321327
cd $GITHUB_WORKSPACE/picolibc
322-
mkdir -p build-clang-aarch64-picolibc
328+
mkdir -p build-clang-aarch64-picolibc-config-default
323329
export PATH=$GITHUB_WORKSPACE/install-aarch64-toolchain/bin:$PATH
324330
export CC_LD=eld
325331
export CXX_LD=eld
326-
cd build-clang-aarch64-picolibc
327-
../scripts/do-clang-aarch64-configure -Dc_ld=ld.eld -Dcpp_ld=ld.eld
332+
cd build-clang-aarch64-picolibc-config-default
333+
../scripts/do-clang-aarch64-configure -Dc_ld=ld.eld -Dcpp_ld=ld.eld ${{ env.PICOLIBC_CONFIG_DEFAULT }}
334+
ninja
335+
336+
- name: Build Picolibc for AArch64, config-1
337+
if: contains(env.ENABLED_ARCHS, 'aarch64')
338+
run: |
339+
cd $GITHUB_WORKSPACE/picolibc
340+
mkdir -p build-clang-aarch64-picolibc-config-1
341+
export PATH=$GITHUB_WORKSPACE/install-aarch64-toolchain/bin:$PATH
342+
export CC_LD=eld
343+
export CXX_LD=eld
344+
cd build-clang-aarch64-picolibc-config-1
345+
../scripts/do-clang-aarch64-configure -Dc_ld=ld.eld -Dcpp_ld=ld.eld ${{ env.PICOLIBC_CONFIG_1 }}
346+
ninja
347+
348+
- name: Build Picolibc for AArch64, config-2
349+
if: contains(env.ENABLED_ARCHS, 'aarch64')
350+
run: |
351+
cd $GITHUB_WORKSPACE/picolibc
352+
mkdir -p build-clang-aarch64-picolibc-config-2
353+
export PATH=$GITHUB_WORKSPACE/install-aarch64-toolchain/bin:$PATH
354+
export CC_LD=eld
355+
export CXX_LD=eld
356+
cd build-clang-aarch64-picolibc-config-2
357+
../scripts/do-clang-aarch64-configure -Dc_ld=ld.eld -Dcpp_ld=ld.eld ${{ env.PICOLIBC_CONFIG_2 }}
358+
ninja
359+
360+
- name: Build Picolibc for AArch64, config-3
361+
if: contains(env.ENABLED_ARCHS, 'aarch64')
362+
run: |
363+
cd $GITHUB_WORKSPACE/picolibc
364+
mkdir -p build-clang-aarch64-picolibc-config-3
365+
export PATH=$GITHUB_WORKSPACE/install-aarch64-toolchain/bin:$PATH
366+
export CC_LD=eld
367+
export CXX_LD=eld
368+
cd build-clang-aarch64-picolibc-config-3
369+
../scripts/do-clang-aarch64-configure -Dc_ld=ld.eld -Dcpp_ld=ld.eld ${{ env.PICOLIBC_CONFIG_3 }}
328370
ninja
329371
330372
- name: Build Picolibc for RISCV
@@ -344,21 +386,46 @@ jobs:
344386
run: |
345387
cd $GITHUB_WORKSPACE/picolibc/build-clang-hexagon-picolibc
346388
ninja test
389+
continue-on-error: true
347390

348391
- name: Run Picolibc tests for ARM
349392
if: contains(env.ENABLED_ARCHS, 'arm')
350393
run: |
351394
cd $GITHUB_WORKSPACE/picolibc/build-clang-arm-picolibc
352395
ninja test
396+
continue-on-error: true
397+
398+
- name: Run Picolibc tests for AArch64, config default
399+
if: contains(env.ENABLED_ARCHS, 'aarch64')
400+
run: |
401+
cd $GITHUB_WORKSPACE/picolibc/build-clang-aarch64-picolibc-config-default
402+
ninja test
403+
continue-on-error: true
404+
405+
- name: Run Picolibc tests for AArch64, config-1
406+
if: contains(env.ENABLED_ARCHS, 'aarch64')
407+
run: |
408+
cd $GITHUB_WORKSPACE/picolibc/build-clang-aarch64-picolibc-config-1
409+
ninja test
410+
continue-on-error: true
411+
412+
- name: Run Picolibc tests for AArch64, config-2
413+
if: contains(env.ENABLED_ARCHS, 'aarch64')
414+
run: |
415+
cd $GITHUB_WORKSPACE/picolibc/build-clang-aarch64-picolibc-config-2
416+
ninja test
417+
continue-on-error: true
353418

354-
- name: Run Picolibc tests for AArch64
419+
- name: Run Picolibc tests for AArch64, config-3
355420
if: contains(env.ENABLED_ARCHS, 'aarch64')
356421
run: |
357-
cd $GITHUB_WORKSPACE/picolibc/build-clang-aarch64-picolibc
422+
cd $GITHUB_WORKSPACE/picolibc/build-clang-aarch64-picolibc-config-3
358423
ninja test
424+
continue-on-error: true
359425

360426
- name: Run Picolibc tests for RISCV
361427
if: contains(env.ENABLED_ARCHS, 'riscv')
362428
run: |
363429
cd $GITHUB_WORKSPACE/picolibc/build-clang-riscv-picolibc
364430
ninja test
431+
continue-on-error: true

0 commit comments

Comments
 (0)