mirror of
https://github.com/cirosantilli/linux-kernel-module-cheat.git
synced 2026-01-23 02:05:57 +01:00
c++ baremetal hello world move to issue tracker
This commit is contained in:
43
README.adoc
43
README.adoc
@@ -19589,48 +19589,7 @@ with the prebuilt toolchain, and I'm lazy to debug.
|
||||
[[baremetal-cpp]]
|
||||
=== Baremetal C++
|
||||
|
||||
TODO not working as of 8825222579767f2ee7e46ffd8204b9e509440759 + 1. Not yet properly researched / reported upstream yet.
|
||||
|
||||
Should not be hard in theory since `libstdc++` is just part of GCC, as shown at: https://stackoverflow.com/questions/21872229/how-to-edit-and-re-build-the-gcc-libstdc-c-standard-library-source/51946224#51946224
|
||||
|
||||
To test it out, I first hack link:common.py[] to enable `C++`:
|
||||
|
||||
....
|
||||
consts['baremetal_build_in_exts'] = consts['build_in_exts']
|
||||
....
|
||||
|
||||
and then I hack link:userland/arch/aarch64/inline_asm/multiline.cpp[] to consist only of an empty main:
|
||||
|
||||
....
|
||||
int main() {}
|
||||
....
|
||||
|
||||
then for example:
|
||||
|
||||
....
|
||||
./build-baremetal --arch aarch64
|
||||
./run --arch aarch64 --baremetal userland/arch/aarch64/inline_asm/multiline.cpp
|
||||
....
|
||||
|
||||
fails with:
|
||||
|
||||
....
|
||||
rom: requested regions overlap (rom dtb. free=0x00000000000000a0, addr=0x0000000000000000)
|
||||
qemu-system-aarch64: rom check and register reset failed
|
||||
....
|
||||
|
||||
and the gem5 build fails completely:
|
||||
|
||||
....
|
||||
./build-baremetal --arch aarch64 --emulator gem5 userland/arch/aarch64/inline_asm/multiline.cpp
|
||||
....
|
||||
|
||||
fails with:
|
||||
|
||||
....
|
||||
/tmp/ccFd2YIB.o:(.eh_frame+0x1c): relocation truncated to fit: R_AARCH64_PREL32 against `.text'
|
||||
collect2: error: ld returned 1 exit status
|
||||
....
|
||||
Didn't get it working, traking at: https://github.com/cirosantilli/linux-kernel-module-cheat/issues/119
|
||||
|
||||
=== GDB builtin CPU simulator
|
||||
|
||||
|
||||
Reference in New Issue
Block a user