-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 02.12.2014 12:36, ba_f wrote:
Hi,
Objdump gives me the following, but i guess that comes from MODE=shared:
NEEDED libc_be_sig.so NEEDED libpthread.so NEEDED libld-l4.so NEEDED libdl.so NEEDED libc_support_misc.so NEEDED libc_be_socket_noop.so NEEDED lib4re-util.so NEEDED libc_be_l4refile.so NEEDED libc_be_l4re.so NEEDED libsupc++.so NEEDED libuc_c.so NEEDED lib4re.so NEEDED libl4util.so NEEDED libl4sys.so
There are static library equivalents for all those. Sounds like setting the proper REQUIRES_LIBS in your Makefile should do the trick.
What error are you getting if you remove MODE=shared?
There are Library dependencies missing: libld-l4 lib4re-util libuc_c lib4re libl4util libl4sys.
Although, the .a files exist.
Can you please share the whole Makefile? These are very standard L4Re libraries and they are usually linked against all programs.
Nevertheless, i can't find any .pc file in obj/pc/ for this libs; opposite to the other REQUIRED_LIBS that the make-process does find. I don't know, why .pc files haven't been built.
Btw, i had to build libld-l4.a. By default, it only sets TARGET=libld-l4.so
libld-l4 is the dynamic linker. There is no need to build a static version of it as statically linked binaries do not require a dynamic linker.
LD_DEBUG is an environment variable, so specifying it at compile time in the Makefile is not useful. Instead, add it as an environment variable to your setup:
L4.default_loader.start( { caps ...}, "rom/myProgram", { LD_DEBUG=all } };
Again, I would go for the static linking route.
Have you tried this before? I don't get any output from LD_DEBUG.
Try
{ LD_DEBUG="all" }
please.
Bjoern