On Sun, Sep 12, 2010 at 17:38, Peter Tyser <pty...@xes-inc.com> wrote:
> Using -fno-toplevel-reorder causes gcc to not reorder functions.  This
> ensures that an application's entry point will be the first function in
> the application's source file.
>
> This change, along with commit 620bbba524fbaa26971a5004793010b169824f1b
> should cause a standalone application's entry point to be at the base of
> the compiled binary.  Previously, the entry point could change depending
> on gcc version and flags.
>
> Note -fno-toplevel-reorder is only available in gcc version 4.2 or
> greater.
>
> Signed-off-by: Peter Tyser <pty...@xes-inc.com>
> ---
> I didn't have a version of gcc < 4.2.  The change is pretty trivial so
> it should work, but it'd be appreciated if someone with an old toolchain
> installed could give the patch a shot.
>

Since I was writing a standalone test program today, I manually tested
against an older u-boot and arm gcc 4.4.1.  Worked fine.  You can add
my tested-by if you feel that's sufficient.

I wonder if this is the right way to fix this.  It seems a bit subtle.
 I thought of two other possible workarounds - have the Makefile use
mkimage as part of the output so the entry point is embedded in the
mkimage file, or redo the programs to have a main() as entry and write
a crt0.S equivalent and have the entry location for that fixed in a
linker file.
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to