Hi List,
I am trying to add some libraries in my build.conf:
LIBS = base libm
But it doesn't seem to load. The error message I get is:
[init] Could not open file "ld.lib.so" [init] Dynamically linked file found, but no dynamic linker binary present [init] unknown exception? [init] Dynamically linked file found, but no dynamic linker binary present [init] unknown exception?
I am using the nova_x86_32 kernel, but on other kernels this also happens. If I remove libm my image works again. I haven't found anything to build a dynamic linker in the source.
Steps I did:
create build dir.
add libports to etc/build.conf add my source repository to the build dir
make prepare PKG=libc && make prepare PKG=stdcxx
make run/something
The run script starts up qemu. The kernel boots.
And then in qemu it cannot find a linker binary.
How should I add libraries to my project? I am probably missing some stupid step.
Greets,
Edgar Klerks
Hi Edgar,
I am trying to add some libraries in my build.conf:
LIBS = base libm
The LIBS declaration does not belong in your 'build.conf' but in your 'target.mk' file. If declared, the libraries on which the target depends are built automatically. Because 'libm' is a shared library, 'ld.lib.so' will be built as well.
But it doesn't seem to load. The error message I get is:
[init] Could not open file "ld.lib.so http://ld.lib.so" [init] Dynamically linked file found, but no dynamic linker binary present [init] unknown exception? [init] Dynamically linked file found, but no dynamic linker binary present [init] unknown exception?
I am using the nova_x86_32 kernel, but on other kernels this also happens. If I remove libm my image works again. I haven't found anything to build a dynamic linker in the source.
Steps I did:
create build dir.
add libports to etc/build.conf add my source repository to the build dir
make prepare PKG=libc && make prepare PKG=stdcxx
make run/something
The run script starts up qemu. The kernel boots.
And then in qemu it cannot find a linker binary.
After adding the LIBS declaration in your 'target.mk' file, the build system should have built the following libraries for you:
libm.lib.so (the math library) libc.lib.so (the C library, on which libm depends) ld.lib.so (the dynamic linker)
Just take a look at your '<build-dir>/bin/' directory to see if the build succeeded.
In order to let Genode access those libraries, we need to include them in the boot image. This can be done by adding the corresponding file names to the list of 'boot_modules' in your 'something.run' script.
How should I add libraries to my project? I am probably missing some stupid step.
Not stupid at all. Please keep asking! :-)
Cheers Norman
Hi Norman,
Thank you, this helped me a lot: After adding the LIBS declaration in your 'target.mk' file, the build system should have built the following libraries for you:
libm.lib.so (the math library) libc.lib.so (the C library, on which libm depends) ld.lib.so (the dynamic linker)
Just take a look at your '<build-dir>/bin/' directory to see if the build succeeded.
In order to let Genode access those libraries, we need to include them in the boot image. This can be done by adding the corresponding file names to the list of 'boot_modules' in your 'something.run' script.
I hadn't included them to the boot image. I also found, that I needed to add the ROM service. I am now reading the os repository, there is a lot of useful stuff to find.
Greets,
Edgar
On Mon, Dec 9, 2013 at 7:06 PM, Norman Feske <norman.feske@...1...>wrote:
Hi Edgar,
I am trying to add some libraries in my build.conf:
LIBS = base libm
The LIBS declaration does not belong in your 'build.conf' but in your 'target.mk' file. If declared, the libraries on which the target depends are built automatically. Because 'libm' is a shared library, 'ld.lib.so' will be built as well.
But it doesn't seem to load. The error message I get is:
[init] Could not open file "ld.lib.so http://ld.lib.so" [init] Dynamically linked file found, but no dynamic linker binary
present
[init] unknown exception? [init] Dynamically linked file found, but no dynamic linker binary
present
[init] unknown exception?
I am using the nova_x86_32 kernel, but on other kernels this also happens. If I remove libm my image works again. I haven't found anything to build a dynamic linker in the source.
Steps I did:
create build dir.
add libports to etc/build.conf add my source repository to the build dir
make prepare PKG=libc && make prepare PKG=stdcxx
make run/something
The run script starts up qemu. The kernel boots.
And then in qemu it cannot find a linker binary.
After adding the LIBS declaration in your 'target.mk' file, the build system should have built the following libraries for you:
libm.lib.so (the math library) libc.lib.so (the C library, on which libm depends) ld.lib.so (the dynamic linker)
Just take a look at your '<build-dir>/bin/' directory to see if the build succeeded.
In order to let Genode access those libraries, we need to include them in the boot image. This can be done by adding the corresponding file names to the list of 'boot_modules' in your 'something.run' script.
How should I add libraries to my project? I am probably missing some stupid step.
Not stupid at all. Please keep asking! :-)
Cheers Norman
-- Dr.-Ing. Norman Feske Genode Labs
http://www.genode-labs.com · http://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Sponsored by Intel(R) XDK Develop, test and display web and hybrid apps with a single code base. Download it for free now!
http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.cl... _______________________________________________ Genode-main mailing list Genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main