On Thursday 09 June 2005 14:45, Derick Swanepoel wrote:
On 6/9/05, Frank Mehnert fm3@os.inf.tu-dresden.de wrote:
On Thursday 09 June 2005 14:06, Derick Swanepoel wrote:
I need to load shared objects in my application. I've got .so loading working in a loader-mode app, but my app uses the l4env_freebsd mode so I cannot link against libloader.s.so. I've tried to link against libloaderif.a, but the l4loader_attach_relocateable() function is only available in libloader.s.so.
I do not fully understand your problem. Why do you cannot link against the libloaders.s.so when you are using l4env_freebsd_mode?
The example loader applications use the loader mode, which links the application dynamically, and it links against libloader.s.so (it uses -lloader.s as a linker argument). When using the l4env_freebsd mode the application is linked statically so it wants to link against libloader.s.a (which doesn't exist) when using -lloader.s. I see that there is a static loader library (libloaderif.a), but it doesn't contain the l4loader_attach_relocateable() function which I need.
If you need the libraries of the l4env_freebsd_mode, it should be possible to add these libraries using the LIBS= parameter. If you look at the appropriate Makefile you will see, that libloaderif.a contains only the client stub of the loader IDL and therefore has nothing to do with the shared library stuff.
The point is that you should start from the loader mode and enhance this mode for your needs since the loader mode uses a different startup strategy than the sigma0 mode.
Frank