docandrew / cubit Goto Github PK
View Code? Open in Web Editor NEWGeneral-purpose, formally-verified, 64-bit operating system in SPARK/Ada for x86-64
License: GNU General Public License v3.0
General-purpose, formally-verified, 64-bit operating system in SPARK/Ada for x86-64
License: GNU General Public License v3.0
When running make
with GNAT CE 2020 the following error occurs:
mkdir -p runtime/adalib
mkdir -p build
gprbuild -Pcubit_runtime.gpr
Changing to object directory of "cubit_runtime": "/.../CuBit/build/"
/usr/local/adacore/gnat-community.2020/bin/gcc -c -x ada -gnatA --RTS=/.../CuBit/runtime/ -g -gnatpgn -gnatwa -gnatw.X -mno-red-zone -mcmodel=kernel -fno-pic -mno-sse -I- -gnatec=/tmp/GNAT-TEMP-000014.TMP -gnatem=/tmp/GNAT-TEMP-000015.TMP /.../CuBit/runtime/gnat/ada.ads
/usr/local/adacore/gnat-community.2020/bin/gcc -c -x ada -gnatA --RTS=/.../CuBit/runtime/ -g -gnatpgn -gnatwa -gnatw.X -mno-red-zone -mcmodel=kernel -fno-pic -mno-sse -I- -gnatec=/tmp/GNAT-TEMP-000014.TMP -gnatem=/tmp/GNAT-TEMP-000015.TMP /.../runtime/gnat/unchdeal.ads
/usr/local/adacore/gnat-community.2020/bin/gcc -c -x ada -gnatA --RTS=/.../CuBit/runtime/ -g -gnatpgn -gnatwa -gnatw.X -mno-red-zone -mcmodel=kernel -fno-pic -mno-sse -I- -gnatec=/tmp/GNAT-TEMP-000014.TMP -gnatem=/tmp/GNAT-TEMP-000015.TMP /.../runtime/gnat/a-except.adb
/usr/local/adacore/gnat-community.2020/bin/gcc -c -x ada -gnatA --RTS=/.../CuBit/runtime/ -g -gnatpgn -gnatwa -gnatw.X -mno-red-zone -mcmodel=kernel -fno-pic -mno-sse -I- -gnatec=/tmp/GNAT-TEMP-000014.TMP -gnatem=/tmp/GNAT-TEMP-000015.TMP /.../CuBit/runtime/gnat/s-imgint.adb
/usr/local/adacore/gnat-community.2020/bin/gcc -c -x ada -gnatA --RTS=/.../CuBit/runtime/ -g -gnatpgn -gnatwa -gnatw.X -mno-red-zone -mcmodel=kernel -fno-pic -mno-sse -I- -gnatec=/tmp/GNAT-TEMP-000014.TMP -gnatem=/tmp/GNAT-TEMP-000015.TMP /.../CuBit/runtime/gnat/s-pooglo.adb
s-stopoo.ads:41:09: run-time library configuration error
gprbuild: *** compilation phase failed
make: *** [Makefile:10: build/libcubit.a] Error 4
Writing to video memory at higher resolutions is painfully slow. Enabled write-combining for video memory which seems to help, but more work on the VGA driver needs to be done.
Hi
When running make it fails:
process.ads:145:05: error: unit "Process" requires pragma "Elaborate_All" for "LinkedList"
process.ads:145:05: error: spec of unit "Process" elaborated
process.ads:145:05: error: package "LinkedList" instantiated as "FrameList" at line 145
process.ads:145:05: error: instantiation error at linkedlist.ads:21
process.ads:145:05: error: initialization actions for type "Slab" during elaboration in SPARK
process.ads:145:05: error: unit "Process" requires pragma "Elaborate_All" for "SlabAllocator"
process.ads:145:05: error: spec of unit "Process" elaborated
process.ads:145:05: error: initialization actions for type "Slab" at linkedlist.ads:21, instance at line 145
gprbuild: *** compilation phase failed
make: *** [Makefile:35: cubit_kernel] Error 4
If I switch SPARK_MODE off for LinkedList, then it works.
This is with GNAT CE 2021 (gcc 10.3.1) on Ubuntu.
Kind regards
Bent Bracke
The (unpublished) make target run-raw
should be able to run the kernel binary directly, however newer versions of QEMU appear to have an issue, refusing to run the binary. On Linux I get the error "Cannot load x86-64 image, give a 32bit one", and on Windows I get an error referring to PVH.
It seems that this latter error refers to an ELF header flag for para-virtualized kernel entry as an optimization that skips the firmware. QEMU can still boot from the CDROM fine, but it would be nice to have the option of a binary boot.
Interesting little OS, trying to compile it on my Raspberry Pi400.
I got the runtime to compile I think, no luck on cubit.gr
Would be handy for CM4 embedded use.
Or even Pico's
RISC-V version should be possible?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.