| Age | Commit message (Collapse) | Author |
|
|
|
|
|
+ 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)
|
|
|
|
+ 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.
|
|
|
|
|
|
+ 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.
|
|
|
|
|
|
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.
|
|
|
|
+ Next step, start documenting contents of each file.
|
|
+ Completely unnecessary with gmake, but bmake seems to be a little more fussy with runtime dependency generation. No big deal.
|
|
+ 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?
|
|
+ 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.
|
|
+ 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.
|
|
|
|
|
|
|
|
+ Will most probably not work on 32bit, but nice to make 'portable'
code.
|
|
|
|
|
|
|
|
+ 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)
|
|
+ Runs a syntax check on all files of the selected arch
|
|
|
|
+ Who knew some reservations were a good thing? (at least relativelyy
speaking)
|
|
This reverts commit 69d13626a37e33f31627a1144605a8fb93684d25.
|
|
+ Not sure if I should go with noinit or init, fuck
|
|
|
|
|
|
Mainly to be used in spinlocks etc.
|
|
|
|
|
|
|
|
|
|
|
|
+ For future reference, apos now requires initrd to be found in fdt.
|
|
+ Will probably still need a fair bit of tweakind and documentation
improvements, but seems to work outside of the kernel. Also no valgrind
errors, which is quite promising I guess.
|
|
|
|
|
|
At least as far as reading memory info, cool.
One issue I have is that .(ro)data is apparently accessed by absolute
addresses, so I need to know at which address the kernel is going to be
loaded. I would prefer completely position independent code, but if
that's not possible then eh.
|
|
+ Added new common/ directory, into which code that should be shared
with init and kernel is to be added. Currently string.c and bytes.c.
Code in common/ should be marked with __weak, so as to allow the arch to
implement a better, more optimised version of the function if
possible/required.
+ Created include/apos/types.h with macros essentially providing the
libc limits.h and stdint.h. At the moment I use gcc/clang predefined
macros for most things.
|
|
|
|
|
|
|
|
|