Hello Alexander,
On Mon, Aug 05, 2019 at 01:10:57 CEST, Alexander Tormasov via users wrote:
I write some sample application to run inside Genode over seL4 inside VM with 4Gb. and, I see a problem with LD, saying something with memory (in the end of log): [init -> test-go] Error: LD: exception during program load: 'Genode::Region_map::Region_conflict'
The loader is not able to load the binary because it cannot fulfill the memory-region requirements of the application.
any ideas what cause and how to get mode info? I suspect again incorrect config in runscript, while similar test-cache app runs ok
First we need to know how your sample application looks like. Please investigate the binary with the following command.
genode-x86-objdump -p <binary>
For example the output with the log test looks like follows.
genode-x86-objdump -p bin/test-log
bin/test-log: file format elf64-x86-64
Program Header: PHDR off 0x0000000000000040 vaddr 0x0000000000200040 paddr 0x0000000000000000 align 2**3 filesz 0x0000000000000150 memsz 0x0000000000000150 flags r-- INTERP off 0x000000000000430b vaddr 0x000000000100330b paddr 0x000000000100330b align 2**0 filesz 0x000000000000000a memsz 0x000000000000000a flags r-- LOAD off 0x0000000000001000 vaddr 0x0000000001000000 paddr 0x0000000001000000 align 2**12 filesz 0x0000000000004a44 memsz 0x0000000000004a44 flags r-x LOAD off 0x0000000000006000 vaddr 0x0000000001005000 paddr 0x0000000001005000 align 2**12 filesz 0x0000000000000de4 memsz 0x0000000000000fd0 flags rw- DYNAMIC off 0x0000000000006b38 vaddr 0x0000000001005b38 paddr 0x0000000001005b38 align 2**5 filesz 0x00000000000002ac memsz 0x00000000000002ac flags rw- EH_FRAME off 0x0000000000005920 vaddr 0x0000000001004920 paddr 0x0000000001004920 align 2**2 filesz 0x0000000000000124 memsz 0x0000000000000124 flags r--
Dynamic Section: NEEDED ld.lib.so HASH 0x0000000001003318 STRTAB 0x0000000001003930 SYMTAB 0x0000000001003480 STRSZ 0x0000000000000516 SYMENT 0x0000000000000018 DEBUG 0x0000000000000000 PLTGOT 0x0000000001005c78 PLTRELSZ 0x00000000000002a0 PLTREL 0x0000000000000007 JMPREL 0x0000000001004070 RELA 0x0000000001003e48 RELASZ 0x0000000000000228 RELAENT 0x0000000000000018
This tells us which RAM regions are used
LOAD off 0x0000000000001000 vaddr 0x0000000001000000 paddr 0x0000000001000000 align 2**12 filesz 0x0000000000004a44 memsz 0x0000000000004a44 flags r-x LOAD off 0x0000000000006000 vaddr 0x0000000001005000 paddr 0x0000000001005000 align 2**12 filesz 0x0000000000000de4 memsz 0x0000000000000fd0 flags rw-
and that the binary is indeed dynamically linked.
NEEDED ld.lib.so
Also may I ask if test-go is a custom application (and if it uses Go as the binary name hints)?
Greets