[U-Boot] Debugging (was: ARM : Removing unwind dummy functions)

Tom Rini
2012-10-18T23:56:27Z

On Fri, Oct 19, 2012 at 01:02:41AM +0200, Albert ARIBAUD wrote:
> Hi Gabriel,
>
> On Thu, 18 Oct 2012 22:14:14 +0200, Gabriel Huau
> <contact@huau-gabriel.fr> wrote:
>
> > Hi,
> >
> > I would like to know if it's really necessary to keep the dummy
> > functions in arch/arm/lib/eabi_compat.c.
> >
> > These function should not be happen in our case (that why the body is
> > empty).
> >
> > They have been introduced due to problems with some toolchains that was
> > referencing these functions. But we can avoid this hack by adding the
> > option '-fno-unwind-tables' at the compilation time no ? (correct me if
> > I'm wrong).
>
> We can do this, but then we lose some potentially helpful debug info.
> OTOH, this debug info is not useful in production.
>
> Which leads to a more general question: what about options for
> debugging less basic than #define'ing DEBUG ? (my favorite, and one
> a few people share I believe, is the ability to build an U-Boot that can
> be loaded and run from RAM, i.e. without the CPU critical inits, and
> possibly also without relocation. These features could be made
> available through debug options such as DEBUG_SKIP_CRITICAL_INIT or
> DEBUG_SKIP_RELOCATION).

I don't like these. Disabling relocation is on the "why?" side for me.
Any modern debugger has the ability to adjust symbol offsets and U-Boot
will tell you (bdinfo or with the debug print) what you need. You can
even get at it via the debugger prior to relocation. In the case where
you don't have a JTAG header, it's not hard to run U-Boot from RAM from
U-Boot (or whatever you can run it from), if you can't get real boot-up
loading from something other than flash.

> Here we could have DEBUG_ARM_UNWIND_SUPPORT: if undefined, option
> -fno-unwind-tables is added to compilers which understand it and unwind
> helper functions are not compiled, and if defined, helpers are compiled.

Well, here's something I just poked at. If we switch to
-ffunction-section/-fdata-sections and --gc-sections like other arches
we can just drop this outright. SPL is already discarding it and a
quick test shows I can even not build it.

--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121018/acf5ea37/attachment.pgp>