Skip to content
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

Implement dlclose(), dlerror(), dlopen(), and dlsym() #37

Open
danielinux opened this issue May 19, 2016 · 2 comments
Open

Implement dlclose(), dlerror(), dlopen(), and dlsym() #37

danielinux opened this issue May 19, 2016 · 2 comments

Comments

@danielinux
Copy link
Contributor

Straight from the wishlist.
http://linux.die.net/man/3/dlopen

@maximevince please provide some starting pointers from your deep knowledge of the obscurities (elf2flt, bflt, ...)!

@sferrini
Copy link
Member

sferrini commented Oct 6, 2016

Hey @maximevince are you working on this?

Unfortunately I've no in-depth experience in dynamic loading but if you guide me, I can help you implementing this.
What file format have you choose for dynamic libraries?

@danielinux
Copy link
Contributor Author

The format we use for execution in place is bFLT. For the libraries, it'd be nice if we could execute code in place from flash as well, so the objects can be placed somewhat in xipfs, preserving the symbol addresses. LibC should act accordingly, and provide those addresses when the symbol is requested via dlsym().

I think that a harder part is making (part of) libc dynamic, as we need to identify the symbols used by all the apps in the Xipfs, and discard the rest; which obviously can't be done automatically by the linker at this time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants