aboutsummaryrefslogtreecommitdiff
path: root/Makefile
AgeCommit message (Collapse)Author
2024-05-24rename common to srcKimplul
+ I keep starting to type src and wondering why autocomplete won't work, I guess src is just uncounciously a better name
2023-07-24split makefile into two partsKimplul
+ First part generates deps.mk, second part reads it. Allows us to use both bmake and gmake with the same makefiles. Only drawback seems to be that the first makefile considers all individual files as 'finished' targets, meaning that it's more difficult to do something like make kernel.elf though I haven't found this to be an issue.
2023-06-07slight improvements to buildingKimplul
+ User can now specify debug, release and assert handling
2023-05-29start trying to boot on visionfive 2Kimplul
+ Not bootable quite yet. Among other things, I couldn't get the current starfive u-boot fork to boot, so try adding support for booting with precompiled u-boot via the `go` command. Initial testing with qemu shows that this should be possible, and if it works, might be useful in the (far) future with other slightly janky SBCs. Also, NS16550 is 8250-based, and I'm really only using the base 8250, so rename and add visionfive 2 uart to list of compatibles. Visionfive 2 is still completely untested.
2023-05-11fix riscv64-linux-gnu- buildKimplul
2023-05-11only init is pic and fix a warningKimplul
2023-05-11arbitrary load address and RAM base detectionKimplul
+ Both kind of go hand in hand, made sense to do both at the same time. Some parts feel slightly hacky, the loader works by placing everything on the stack and avoiding global values. Still, seems to work?
2023-05-08improve undocumented file warningKimplul
2023-05-06make cross compile more conformantKimplul
2023-05-06always use debug flagKimplul
2023-05-01update license stuffKimplul
2023-04-30rename to kmiKimplul
2022-11-21make syscall handlers voidKimplul
2022-11-21possible optimisationsKimplul
2022-11-13NDEBUG with release modeKimplul
+ Might be a good idea to add some command line variable as debugging release mode can be useful for performance profiling (until I start writing proper serial userspace drivers)
2022-11-12release mode, ~600k requestsKimplul
2022-09-11allow building with riscv64-linux-gnuKimplul
+ May warn about PHDR not being in LOAD, there is a flag to silence it (--no-warn-rwx-segment) but it doesn't seem to exist in riscv64-unknown-elf for some reason.
2022-06-16small changed to formattingKimplul
2022-05-29add clean_all directiveKimplul
2022-05-28start implementing new proc/rpc handlingKimplul
+ Essentially, separate root process and remote procedure call handling. I really should write down some documentation so I don't forget, but essentially: All threads share a common process virtual memory, and when a thread wants to make an rpc, it switches over to its own rpc vmem space that is linked to the remote process.
2022-05-23modify file genKimplul
2022-05-23new include structure, make parse easier for doxyKimplul
2022-05-23switch from clang-format to uncrustifyKimplul
The output is close enough, and I like that uncrustify is a third-party tool, so people can install a single tool for formatting instead of having to lug around a whole toolchain. I fully expect to have to add settings to uncrustify.conf, but let's see how this goes.
2022-05-22fixed accidental removal of CLEANUP_CMDKimplul
2022-05-22add @file info to all filesKimplul
+ Next step, start documenting contents of each file.
2022-05-05add make depend which explicitly generates deps.mkKimplul
+ Completely unnecessary with gmake, but bmake seems to be a little more fussy with runtime dependency generation. No big deal.
2022-05-05remove deps.mk from repoKimplul
+ GNU make knows how to automatically generate new include files, whereas BSD make apparently doesn't. The solution might be to add in a very simple configure script that just touches deps.mk?
2022-05-05apos compiles on netbsd with LLVM=1Kimplul
+ Turns out I had a dumb debugging echo that was messing up my variables. Oh well. + I'd still like to get riscv64-unknown-elf-gcc to compile, currently I've only managed with riscv64--netbsd-gcc, weird. Also, I have learned that BSD make doesn't use $< for some reason, so all rules should reference the full file name henceforth. BSD make does use $@, but for consistency I did away with it as well.
2022-05-05fix makefiles on netbsdKimplul
+ Doesn't quite compile all the way unfortunately, building the GNU toolchain on NetBSD is a bit more difficult than I was expecting. LLVM does compile, but fails to link for some reason.
2022-05-05riscv64 boots with clang (sort of)Kimplul
2022-04-29continue building base for irq handlingKimplul
2022-04-23ran clang-formatKimplul
2022-04-21fix warnings on 32bit riscvKimplul
+ Will most probably not work on 32bit, but nice to make 'portable' code.
2022-04-10add basic ubsan and fix issues reported by itKimplul
2022-04-10add clang format and run itKimplul
2022-04-10added -DNDEBUG to release flagsKimplul
2022-01-07Allow building with clangKimplul
+ Release mode is sort of broken, as lto doesn't work with linker relaxation and turning the relaxation off causes issues with the jump from init to kernel (as I've currently implemented it, could probably be fixed with a manual jump from assembly, I'll add it to my TODO list)
2022-01-06Added lint rule to MakefileKimplul
+ Runs a syntax check on all files of the selected arch
2021-12-27Started work on syscallsKimplul
2021-12-20More sensible initKimplul
+ Who knew some reservations were a good thing? (at least relativelyy speaking)
2021-12-20Revert "still some issues with vmem"Kimplul
This reverts commit 69d13626a37e33f31627a1144605a8fb93684d25.
2021-12-20still some issues with vmemKimplul
+ Not sure if I should go with noinit or init, fuck
2021-12-20Added init backKimplul
2021-12-19Massive changes to jump to userspaceKimplul
2021-12-08Added some C11 atomic operationsKimplul
Mainly to be used in spinlocks etc.
2021-10-11Start designing vmem frameworkKimplul
2021-10-11Moved some functions to common/Kimplul
2021-09-25Added default stack locationKimplul
2021-09-19Pmap populationKimplul
2021-09-19Added basic awareness of kernel size/boundsKimplul