-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ELF Loader Implementation #18
Comments
For testing, I imported https://hg.icculus.org/icculus/mojoelf/file/78de07f0b181 |
After adding more types, that code gets to:
|
Imported FreeBSD implementations of strcmp/memcpy |
Imported FreeBSD's strerror |
If we want to try using MojoELF, we need pthreads (see #19). :( |
Looking at https://hg.icculus.org/icculus/mojoelf/file/tip/README.txt, there seems to be various definitions for disabling the use of certain functions |
For x86, the specification at http://www.sco.com/developers/devspecs/abi386-4.pdf exists (we should also implement some of the extra functionality, and types, above-and-beyond ELF loading, later), https://www.freebsd.org/cgi/man.cgi?query=elf&sektion=3&manpath=FreeBSD+7.0-RELEASE documents some APIs/defines, http://uw714doc.sco.com/en/man/html.5/types.5.html defines some types referred to in the UNIX System V ABI, UNIXWare sysconf() is at https://pubs.opengroup.org/onlinepubs/009695399/functions/sysconf.html, https://www.sco.com/developers/gabi/latest/ch4.eheader.html documents the ELF header. For PowerPC, Wii U RPXes are documented in https://github.com/libretro/RetroArch/blob/master/wiiu/hbl.c. |
Added some of the CellOS ELF segment types, from https://www.psdevwiki.com/ps3/SELF_File_Format_and_Decryption, for future-proofing, in support of #10... |
The current state of this is, that after implementing Enryo's liballoc, as part of #20, we now get this far:
|
After importing more functions:
|
Status is now:
|
The current status is :
|
Linkage status:
|
Current status is now :
We need to properly implement mprotect/mmap/munmap, later, instead of just implementing stubs. |
Now we're at :
|
In order to implement #7, and the JUEL vision, we need to have a robust implementation of ELF, as well as support for things like
execv()
, andfork()
, in either Sigma0, a userland library, KickStart, or the root task, where everything can easily access it.It would also be useful to support dynamic linking, ABI branding, switchable syscall tables, and advanced functionality exposed by the ELF specification, and executables.
Conveniently, inside /user/contrib/elf-loader, we have some kind of ELF implementation, which when I tried to compile under PPC64, resulted in:
I'd need to see what functionality it provides, the APIs exposed, and if it can be extended, without breaking it for the pre-boot environment, before we can try to exploit it.
The text was updated successfully, but these errors were encountered: