Patchwork [U-Boot] arm: Enable -ffunction-sections / -fdata-sections / --gc-sections

login
register
mail settings
Submitter Tom Rini
Date April 25, 2013, 5:40 p.m.
Message ID <1366911622-6566-1-git-send-email-trini@ti.com>
Download mbox | patch
Permalink /patch/239574/
State Accepted
Delegated to: Albert ARIBAUD
Headers show

Comments

Tom Rini - April 25, 2013, 5:40 p.m.
While other architectures have enabled these gcc / ld options for some
time on U-Boot itself, ARM has only been doing this on SPL.  Enable this
on full U-Boot as well now.

Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
Signed-off-by: Tom Rini <trini@ti.com>
---
 arch/arm/config.mk         |    3 +++
 arch/arm/cpu/ixp/config.mk |    4 ----
 2 files changed, 3 insertions(+), 4 deletions(-)
Albert ARIBAUD - May 23, 2013, 10:08 a.m.
Hi Tom,

On Thu, 25 Apr 2013 13:40:22 -0400, Tom Rini <trini@ti.com> wrote:

> While other architectures have enabled these gcc / ld options for some
> time on U-Boot itself, ARM has only been doing this on SPL.  Enable this
> on full U-Boot as well now.

I expect this was tested on various targets?

Amicalement,
Tom Rini - May 23, 2013, 3:37 p.m.
On Thu, May 23, 2013 at 12:08:09PM +0200, Albert ARIBAUD wrote:
> Hi Tom,
> 
> On Thu, 25 Apr 2013 13:40:22 -0400, Tom Rini <trini@ti.com> wrote:
> 
> > While other architectures have enabled these gcc / ld options for some
> > time on U-Boot itself, ARM has only been doing this on SPL.  Enable this
> > on full U-Boot as well now.
> 
> I expect this was tested on various targets?

I build-tested eldk 4.2/5.2 and the Linaro 4.7 that Ubuntu has
available, with no build failures.  I spot checked what was being
dropped on am335x and some omap3/4 platforms and it looked correct, and
I did boot test am335x.
Albert ARIBAUD - May 28, 2013, 4:10 a.m.
Hi Tom,

On Thu, 25 Apr 2013 13:40:22 -0400, Tom Rini <trini@ti.com> wrote:

> While other architectures have enabled these gcc / ld options for some
> time on U-Boot itself, ARM has only been doing this on SPL.  Enable this
> on full U-Boot as well now.
> 
> Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
> Signed-off-by: Tom Rini <trini@ti.com>
> ---
>  arch/arm/config.mk         |    3 +++
>  arch/arm/cpu/ixp/config.mk |    4 ----
>  2 files changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/arm/config.mk b/arch/arm/config.mk
> index 461899e..dc64160 100644
> --- a/arch/arm/config.mk
> +++ b/arch/arm/config.mk
> @@ -31,6 +31,9 @@ CONFIG_STANDALONE_LOAD_ADDR = 0xc100000
>  endif
>  endif
>  
> +LDFLAGS_FINAL += --gc-sections
> +PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
> +
>  # Support generic board on ARM
>  __HAVE_ARCH_GENERIC_BOARD := y
>  
> diff --git a/arch/arm/cpu/ixp/config.mk b/arch/arm/cpu/ixp/config.mk
> index b02e8af..fd3c29f 100644
> --- a/arch/arm/cpu/ixp/config.mk
> +++ b/arch/arm/cpu/ixp/config.mk
> @@ -31,10 +31,6 @@ PLATFORM_CPPFLAGS += -mbig-endian -march=armv5te -mtune=strongarm1100
>  PLATFORM_LDFLAGS += -EB
>  USE_PRIVATE_LIBGCC = yes
>  
> -# -fdata-sections triggers "section .bss overlaps section .rel.dyn" linker error
> -PLATFORM_RELFLAGS += -ffunction-sections
> -LDFLAGS_u-boot += --gc-sections
> -
>  # =========================================================================
>  #
>  # Supply options according to compiler version

Applied to u-boot-arm/master, thanks!

Amicalement,

Patch

diff --git a/arch/arm/config.mk b/arch/arm/config.mk
index 461899e..dc64160 100644
--- a/arch/arm/config.mk
+++ b/arch/arm/config.mk
@@ -31,6 +31,9 @@  CONFIG_STANDALONE_LOAD_ADDR = 0xc100000
 endif
 endif
 
+LDFLAGS_FINAL += --gc-sections
+PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
+
 # Support generic board on ARM
 __HAVE_ARCH_GENERIC_BOARD := y
 
diff --git a/arch/arm/cpu/ixp/config.mk b/arch/arm/cpu/ixp/config.mk
index b02e8af..fd3c29f 100644
--- a/arch/arm/cpu/ixp/config.mk
+++ b/arch/arm/cpu/ixp/config.mk
@@ -31,10 +31,6 @@  PLATFORM_CPPFLAGS += -mbig-endian -march=armv5te -mtune=strongarm1100
 PLATFORM_LDFLAGS += -EB
 USE_PRIVATE_LIBGCC = yes
 
-# -fdata-sections triggers "section .bss overlaps section .rel.dyn" linker error
-PLATFORM_RELFLAGS += -ffunction-sections
-LDFLAGS_u-boot += --gc-sections
-
 # =========================================================================
 #
 # Supply options according to compiler version