Hi,
Greg Ungerer wrote,

> Hi Waldemar,
> 
> On 19/08/16 08:48, Waldemar Brodkorb wrote:
> > Hi Greg,
> > Greg Ungerer wrote,
> > 
> >> Hi Waldemar,
> >>
> >> On 19/03/16 13:53, Greg Ungerer wrote:
> >>> Hi Waldemar,
> >>>
> >>> On 14/03/16 15:01, Waldemar Brodkorb wrote:
> >>>> Add patchset from ptxdist which is required to produce working
> >>>> ARM flat binaries. Tested with busybox on Kinetis K70.
> >>>>
> >>>> Signed-off-by: Waldemar Brodkorb <w...@openadk.org>
> >>>
> >>> Thanks. Applied to the github elf2flt repository (with Thomas'
> >>> Tested-by).
> >>
> >> The adding of the ARM.eidx section in this patch breaks binaries
> >> that have a global offset table (GOT). I propose the attached fix
> >> that puts it within the data section proper - and not effectively
> >> at the start of the data section.
> >>
> >> The original patch would have no impact on fully relocated
> >> binaries, generally only those compiled with -fpic or similar.
> > 
> > I tested your patch with Buildroot on a STM32F29 device, but it
> > fails on boot while executing one of the startup scripts:
> > 
> > [    0.650000] STM32 USART driver initialized
> > [    0.650000] 40011000.serial: ttyS0 at MMIO 0x40011000 (irq = 17, 
> > base_baud = 5625000) is a stm32-usart
> > [    0.890000] console [ttyS0] enabled
> > [    0.910000] Freeing unused kernel memory: 12K (9000a000 - 9000d000) In
> > [    1.260000]
> > [    1.260000] Unhandled exception: IPSR = 00000003 LR = fffffff1
> > [    1.260000] CPU: 0 PID: 26 Comm: S20urandom Not tainted 4.5.0 #2
> > [    1.260000] Hardware name: STM32 (Device Tree Support)
> > [    1.260000] task: 90550000 ti: 9055a000 task.ti: 9055a000
> > [    1.260000] PC is at 0x21000000
> > [    1.260000] LR is at 0xfffffffd
> > [    1.260000] pc : [<21000000>]    lr : [<fffffffd>]    psr: 40000035
> > [    1.260000] sp : 9055bff8  ip : 9055bfe0  fp : 90555008
> > [    1.260000] r10: 00000000  r9 : 00000003  r8 : 00000024
> > [    1.260000] r7 : 00000072  r6 : 906ccad8  r5 : 00000000  r4 : 00000072
> > [    1.260000] r3 : 00000000  r2 : 00000003  r1 : 906ccafc  r0 : ffffffff
> > [    1.260000] xPSR: 40000035
> > [    1.260000] CPU: 0 PID: 26 Comm: S20urandom Not tainted 4.5.0 #2
> > [    1.260000] Hardware name: STM32 (Device Tree Support)
> > [    1.260000] [<0800bd41>] (unwind_backtrace) from [<0800b0df>] 
> > (show_stack+0xb/0xc)
> > [    1.260000] [<0800b0df>] (show_stack) from [<0800b68f>] 
> > (__invalid_entry+0x4b/0x4c)
> > 
> > Without the patch the system boots up fine.
> 
> Ok, thanks for the feedback.
> 
> Can you try this patch instead then?
> It keeps the ARM.edix table at the same relative position, but moves
> the _etext symbol to be after the ARM.eidx table. The ARM.eidx section
> is marked as read-only in the linked ELF file.

This works for me.
What application is breaking without it?

best regards
 Waldemar
_______________________________________________
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

Reply via email to