This is the mail archive of the
mailing list for the GCC project.
Re: ldm/stm bus error
- From: Jim Wilson <jim dot wilson at linaro dot org>
- To: Umesh Kalappa <umesh dot kalappa0 at gmail dot com>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Mon, 18 May 2015 11:31:52 -0700
- Subject: Re: ldm/stm bus error
- Authentication-results: sourceware.org; auth=none
- References: <CAGfacvQBuOHb2tubKnSHB4cj2=0kT_RP8pw3j5F+RBQ-dm+18w at mail dot gmail dot com>
On 05/18/2015 02:05 AM, Umesh Kalappa wrote:
> Getting a bus/hard error for the below case ,make sense since ldm/stm
> expects the address to be word aligned .
> --with-pkgversion='Cisco GCC c4.7.0-p1' --with-cisco-patch-level=1
The FSF doesn't support gcc-4.7.0 anymore. Generally, we only support
the last two versions, which is 4.9 and 5.1. We also don't support
vendor compilers. So you will have to reproduce in an FSF GCC 4.9 or
later tree if you want to get anyone here interested. It appears that
this is already fixed in gcc-4.9 though.
The Cisco compiler is a MontaVista compiler with patches. You could try
reporting this to MontaVista.
Or you can try to track down the problem yourself. You can use
bisection to find the patch that fixed it. Checkout a copy of the FSF
gcc tree halfway between gcc-4.7 and gcc-4.9, and check to see if it has
the bug. That narrows the search space by half. Then repeat on the
remaining half until you have reduced it down to a few days. Then you
can check ChangeLog entries for a likely patch to the ARM backend. Or
you can continue the bisection until you have it down to one patch. You
can then backport the patch to your gcc sources and/or point MontaVista
This bisection process can be scripted. You can find an example in the
gcc contrib/reghunt directory. I don't have experience using this
script though, as I like to do it by hand.
If you have a sufficient understanding of gcc, you may be able to find
the patch simply by looking at what gcc-4.9 is doing differently than
gcc-4.7, and mapping that back to a ChangeLog entry and a patch.