Comments (6)
As a meta observation: it looks like we need a better see all minimally necessary checks passing when we accept a platform port. Currently, we need the platform to exist in the platform list for a build check to appear on GitHub, but once that platform is in the list, CI will fail until all necessary patches are merged and will block other builds.
Something that could potentially help is a way of switching on a disabled platform for a specific pull request only.
from sel4bench.
For this specific case: the platform doesn't have a timer yet, so it doesn't really make sense to build sel4bench for it. There is probably a mechanism for that already somewhere that is just not used here.
from sel4bench.
It is still failing with another issue:
[182/299] Building C object apps/sel4bench/seL4_libs/libsel4bench/CMakeFiles/sel4bench.dir/src/arch/arm/armv/armv8-a/event_counters.c.obj
FAILED: apps/sel4bench/seL4_libs/libsel4bench/CMakeFiles/sel4bench.dir/src/arch/arm/armv/armv8-a/event_counters.c.obj
/usr/bin/ccache /usr/bin/aarch64-linux-gnu-gcc --sysroot=/github/workspace/build -I/github/workspace/projects/seL4_libs/libsel4bench/include -I/github/workspace/projects/seL4_libs/libsel4bench/arch_include/arm/armv/armv8-a -I/github/workspace/projects/seL4_libs/libsel4bench/arch_include/arm/cpu/cortex-a55 -I/github/workspace/projects/seL4_libs/libsel4bench/sel4_arch_include/aarch64 -I/github/workspace/projects/seL4_libs/libsel4bench/arch_include/arm -I/github/workspace/projects/seL4_libs/libsel4bench/src -Iapps/sel4bench/musllibc/build-temp/stage/include -I/github/workspace/kernel/libsel4/include -I/github/workspace/kernel/libsel4/arch_include/arm -I/github/workspace/kernel/libsel4/sel4_arch_include/aarch64 -I/github/workspace/kernel/libsel4/sel4_plat_include/quartz64 -I/github/workspace/kernel/libsel4/mode_include/64 -Ilibsel4/include -Ilibsel4/arch_include/arm -Ilibsel4/sel4_arch_include/aarch64 -I/github/workspace/projects/util_libs/libutils/include -I/github/workspace/projects/util_libs/libutils/arch_include/arm -Iapps/sel4bench/util_libs/libutils/gen_config -Ilibsel4/autoconf -Ikernel/gen_config -Ilibsel4/gen_config -march=armv8-a -D__KERNEL_64__ -O3 -DNDEBUG -ffunction-sections -fdata-sections -nostdinc -fno-pic -fno-pie -fno-stack-protector -fno-asynchronous-unwind-tables -ftls-model=local-exec -mstrict-align -mno-outline-atomics -std=gnu11 -MD -MT apps/sel4bench/seL4_libs/libsel4bench/CMakeFiles/sel4bench.dir/src/arch/arm/armv/armv8-a/event_counters.c.obj -MF apps/sel4bench/seL4_libs/libsel4bench/CMakeFiles/sel4bench.dir/src/arch/arm/armv/armv8-a/event_counters.c.obj.d -o apps/sel4bench/seL4_libs/libsel4bench/CMakeFiles/sel4bench.dir/src/arch/arm/armv/armv8-a/event_counters.c.obj -c /github/workspace/projects/seL4_libs/libsel4bench/src/arch/arm/armv/armv8-a/event_counters.c
In file included from /github/workspace/projects/seL4_libs/libsel4bench/arch_include/arm/armv/armv8-a/sel4bench/armv/private.h:9,
from /github/workspace/projects/seL4_libs/libsel4bench/arch_include/arm/armv/armv8-a/sel4bench/armv/sel4bench.h:10,
from /github/workspace/projects/seL4_libs/libsel4bench/arch_include/arm/sel4bench/arch/sel4bench.h:12,
from /github/workspace/projects/seL4_libs/libsel4bench/include/sel4bench/sel4bench.h:13,
from /github/workspace/projects/seL4_libs/libsel4bench/src/arch/arm/armv/armv8-a/../../event_counters.h:8,
from /github/workspace/projects/seL4_libs/libsel4bench/src/arch/arm/armv/armv8-a/event_counters.c:9:
/github/workspace/projects/seL4_libs/libsel4bench/arch_include/arm/armv/armv8-a/sel4bench/armv/events.h:74:10: fatal error: sel4bench/cpu/events.h: No such file or directory
74 | #include <sel4bench/cpu/events.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
This could be a fix: seL4/seL4_libs#71
from sel4bench.
Seem this patch gets us a bit further in the build., see https://github.com/seL4/sel4bench/actions/runs/3602291771/jobs/6069082715
Now the linker fails because the (missing) timer needs to be configured
FAILED: apps/sel4bench/irquser/irquser
: && /usr/bin/ccache /usr/bin/aarch64-linux-gnu-gcc --sysroot=/github/workspace/build -march=armv8-a -D__KERNEL_64__ -O3 -DNDEBUG -D__KERNEL_64__ -Wl,--gc-sections -static -nostdlib -z max-page-size=0x1000 -Wl,-umuslcsys_init_muslc /github/workspace/build/lib/crt0.o /github/workspace/build/lib/crti.o /usr/lib/gcc-cross/aarch64-linux-gnu/10/crtbegin.o apps/sel4bench/irquser/CMakeFiles/irquser.dir/src/main.c.obj -Wl,--start-group -lgcc -lgcc_eh libsel4/libsel4.a apps/sel4bench/seL4_libs/libsel4vka/libsel4vka.a apps/sel4bench/seL4_libs/libsel4allocman/libsel4allocman.a apps/sel4bench/seL4_libs/libsel4utils/libsel4utils.a apps/sel4bench/seL4_libs/libsel4simple/libsel4simple.a apps/sel4bench/seL4_libs/libsel4muslcsys/libsel4muslcsys.a apps/sel4bench/seL4_libs/libsel4platsupport/libsel4platsupport.a apps/sel4bench/util_libs/libplatsupport/libplatsupport.a apps/sel4bench/seL4_libs/libsel4vspace/libsel4vspace.a apps/sel4bench/libsel4benchsupport/libsel4benchsupport.a apps/sel4bench/seL4_libs/libsel4debug/libsel4debug.a apps/sel4bench/seL4_libs/libsel4allocman/libsel4allocman.a apps/sel4bench/seL4_libs/libsel4muslcsys/libsel4muslcsys.a -Wl,-u -Wl,__vsyscall_ptr apps/sel4bench/seL4_libs/libsel4bench/libsel4bench.a apps/sel4bench/sel4_projects_libs/libsel4rpc/libsel4rpc.a apps/sel4bench/sel4_projects_libs/libsel4nanopb/libsel4nanopb.a apps/sel4bench/sel4_projects_libs/libsel4nanopb/libnanopb.a apps/sel4bench/seL4_libs/libsel4serialserver/libsel4serialserver.a apps/sel4bench/seL4_libs/libsel4utils/libsel4utils.a apps/sel4bench/util_libs/libelf/libelf.a apps/sel4bench/util_libs/libcpio/libcpio.a apps/sel4bench/seL4_libs/libsel4platsupport/libsel4platsupport.a apps/sel4bench/util_libs/libplatsupport/libplatsupport.a apps/sel4bench/util_libs/libfdt/libfdt.a -Wl,--undefined=arm_gic_ptr,--undefined=tegra_ictlr_ptr,--undefined=arm_gicv3_ptr,--undefined=fsl_avic_ptr,--undefined=ti_omap3_ptr apps/sel4bench/sel4runtime/libsel4runtime.a apps/sel4bench/seL4_libs/libsel4simple-default/libsel4simple-default.a apps/sel4bench/seL4_libs/libsel4simple/libsel4simple.a apps/sel4bench/seL4_libs/libsel4debug/libsel4debug.a apps/sel4bench/seL4_libs/libsel4vspace/libsel4vspace.a apps/sel4bench/seL4_libs/libsel4vka/libsel4vka.a libsel4/libsel4.a apps/sel4bench/util_libs/libutils/libutils.a apps/sel4bench/musllibc/build-temp/stage/lib/libc.a -Wl,--end-group /usr/lib/gcc-cross/aarch64-linux-gnu/10/crtend.o /github/workspace/build/lib/crtn.o -o apps/sel4bench/irquser/irquser && :
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld: apps/sel4bench/libsel4benchsupport/libsel4benchsupport.a(support.c.obj): in function `benchmark_init_timer':
support.c:(.text.benchmark_init_timer+0x70): undefined reference to `ltimer_default_init'
from sel4bench.
Now the linker fails because the (missing) timer needs to be configured
The generic timer ltimer driver can be used if the KernelArmExportPCNTUser AND KernelArmExportPTMRUser kernel features are enabled. These features are only for development, but could work for sel4bench.
from sel4bench.
I'm temporarily switching off QUARTZ64 until this issues is resolved, so that we can get sel4bench results in the meantime.
from sel4bench.
Related Issues (14)
- Delete merged branch spdx HOT 1
- Add CI action to test PRs to this repo HOT 3
- Ability to change bench app options for RiscV HOT 3
- CI actions should build with clang also HOT 4
- avoid memset warning in apps/sel4bench/src/irq.c
- CI action repo checkout python script get-prs can't find github module HOT 3
- bench/risc-v: apps/fault fails to build HOT 1
- Page-Mapping benchmark error "seL4_Fault_CapFault" HOT 2
- How can print log in a process spanwed by benchmark_spawn_process
- The results are not stable when using sel4bench. HOT 2
- Question about benchmark results HOT 1
- Remove the IRQ Benchmark
- sel4bench fails to build on gcc-11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sel4bench.