Hi Waldemar, On 06/05/16 05:06, Waldemar Brodkorb wrote: > Hi Greg, > Waldemar Brodkorb wrote, > >> Hi Greg, >> Greg Ungerer wrote, >> >>> Attached is a kernel patch that modifies binfmt_flat to print >>> out the reloc number along with the reloc error. That way we can >>> map that back to the reloc entry number printed out in the verbose >>> output from elf2flt at compile time. >> >> The stm32 is now working, here is the output with patched >> kernel: >> ~ # /hello >> [ 162.460000] BINFMT_FLAT: Loading file: /hello >> [ 162.460000] Mapping is 90520000, Entry point is 45, data_start is 8984 >> [ 162.460000] Load /hello: TEXT=90520040-90528984 DATA=905289a0-9052e1b0 >> BSS=9052e1b0-9053240c >> [ 162.460000] BINFMT_FLAT: reference 0x870000 to shared library 237, >> killing hello! >> SEGV >> >> /hello >> [ 11.230000] BINFMT_FLAT: reference 0x870000 to shared library 237, >> killing hello! >> SEGV >> >> Hmm, on the stm32 with latest buildroot, I now get this errors. >> >> But I just use UCLIBC_FORMAT_FLAT. The kernel defconfig used has >> CONFIG_BINFMT_SHARED_FLAT enabled. > > I disabled CONFIG_BINFMT_SHARED_FLAT in the kernel. > And now I get: > ~ # /hello > [ 90.830000] BINFMT_FLAT: reloc[405] outside program 0xed870000 (0 > - 0x123b0/0x8944), killing hello! > SEGV > > Compiling with > ./output/host/usr/bin/arm-buildroot-uclinux-uclibcgnueabi-gcc > -Wl,-elf2flt=-v -o hello hello.c -lpthread : > .. > reloc[403] = 0xe140 > RELOC[404]: offset=0x5724 symbol=frame_dummy+0x0 section=.text > size=0 fixup=0xac (reloc=0xe144) > reloc[404] = 0xe144 > RELOC[405]: offset=0x5728 symbol=pthread_initialize+0x0 > section=.text size=0 fixup=0x87ec (reloc=0xe148) > reloc[405] = 0xe148 > RELOC[406]: offset=0x572c symbol=__do_global_dtors_aux+0x0 > section=.text size=0 fixup=0x80 (reloc=0xe14c) > reloc[406] = 0xe14c > .. > > So pthread_initialize() is the problem?
Sure does look that way. I am not sure why looking at the above details though. Can you run again with the "Kernel-Traced-Load" flag set on the hello program (so run the flthdr -k on it first). I want to see what the actual memory regions allocated where and how far out of those bounds the relocation ended up. Regards Greg _______________________________________________ uClinux-dev mailing list uClinux-dev@uclinux.org http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by uclinux-dev@uclinux.org To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev