- Dec 25, 2012
-
-
Avi Kivity authored
-
- Dec 24, 2012
-
-
Avi Kivity authored
Previously, the boot code assumed (by omission) that memory is initialized to zero. Apparently that is not the case, and this caused memory to become corrupted. Initialize .bss to zero to fix.
-
Avi Kivity authored
Not working yet.
-
Avi Kivity authored
-
Avi Kivity authored
Otherwise, we use the unrelocated virtual address, which points nowhere.
-
Avi Kivity authored
lookup() is too similar to symbol lookup
-
- Dec 23, 2012
-
-
Avi Kivity authored
-
Avi Kivity authored
The 'program' object allows us to later resolve symbols (aka dlopen()/dlsym()).
-
Avi Kivity authored
-
Avi Kivity authored
-
Avi Kivity authored
No threading yet, so no real locking
-
Avi Kivity authored
-
Avi Kivity authored
-
Avi Kivity authored
Don't load it from the glibc library.
-
Avi Kivity authored
-
Avi Kivity authored
-
Avi Kivity authored
Weak symbols are allowed to fail name resolution, in which case they bind to zero.
-
Avi Kivity authored
Some libraries come without DT_HASH.
-
Avi Kivity authored
We need to parse the core's dynamic segment, which is linked to from the program header. Since the core is not an elf_file, but an elf_object, we need to move the parsing code there.
-
Avi Kivity authored
-
Avi Kivity authored
The dynamic linker itself needs to be linked before it can be used. This implements a minimal pre-linker that self-links the linker without invoking anything that needs to be linked.
-
Avi Kivity authored
-
Avi Kivity authored
Not strictly needed, but better to know exacly where things end up.
-
Avi Kivity authored
-
Avi Kivity authored
This forces the linker to add a DYNAMIC segment, allowing us to export our symbols to loaded libraries.
-
Avi Kivity authored
This gives us full control over linker options.
-
Avi Kivity authored
-
Avi Kivity authored
Not correct yet.
-
Avi Kivity authored
If .bss starts on a non-page boundary, the call to map_anon() will overwrite the last .data page. Fix by aligning the arguments to map_file() and map_anon() manually; this removes the overlap (since we round the .data section up).
-
Avi Kivity authored
-
Avi Kivity authored
-
Avi Kivity authored
not accurately though.
-
Avi Kivity authored
libgcc_s uses that (likely because it makes no syscalls)
-
Avi Kivity authored
-
Avi Kivity authored
-
Avi Kivity authored
-
Avi Kivity authored
-
Avi Kivity authored
Ignored, unneeded.
-
Avi Kivity authored
-
Avi Kivity authored
Should we warn instead?
-