[U-Boot] [PATCH] examples/standalone: Use gcc's -fno-toplevel-reorder

Peter Tyser ptyser at xes-inc.com
Mon Sep 13 00:38:49 CEST 2010


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 <ptyser at 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.

 examples/standalone/Makefile |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/examples/standalone/Makefile b/examples/standalone/Makefile
index 5f1f800..c2dd514 100644
--- a/examples/standalone/Makefile
+++ b/examples/standalone/Makefile
@@ -82,6 +82,11 @@ CFLAGS := $(filter-out $(RELFLAGS),$(CFLAGS))
 CPPFLAGS := $(filter-out $(RELFLAGS),$(CPPFLAGS))
 endif
 
+# We don't want gcc reordering functions if possible.  This ensures that an
+# application's entry point will be the first function in the application's
+# source file.
+CFLAGS += $(call cc-option,-fno-toplevel-reorder)
+
 all:	$(obj).depend $(OBJS) $(LIB) $(SREC) $(BIN) $(ELF)
 
 #########################################################################
-- 
1.7.1.13.gcfb88



More information about the U-Boot mailing list