From patchwork Thu Nov 25 16:00:32 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wolfgang Denk X-Patchwork-Id: 73087 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id D0F10B70CC for ; Fri, 26 Nov 2010 03:04:43 +1100 (EST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 5578F2822A; Thu, 25 Nov 2010 17:03:10 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2uV5zYGPvVTJ; Thu, 25 Nov 2010 17:03:10 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 4A59C282A5; Thu, 25 Nov 2010 17:02:02 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id CCE592820A for ; Thu, 25 Nov 2010 17:01:39 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qD+N5W1qzWIJ for ; Thu, 25 Nov 2010 17:01:39 +0100 (CET) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from mail-out.m-online.net (mail-out.m-online.net [212.18.0.10]) by theia.denx.de (Postfix) with ESMTP id B676F28210 for ; Thu, 25 Nov 2010 17:01:06 +0100 (CET) Received: from frontend1.mail.m-online.net (frontend1.mail.intern.m-online.net [192.168.8.180]) by mail-out.m-online.net (Postfix) with ESMTP id 2C6A91802840; Thu, 25 Nov 2010 17:00:56 +0100 (CET) X-Auth-Info: YGaN3eu9R9tEn+NDTKd0jqaCQh6bkPu/bzij5gAndBs= Received: from diddl.denx.de (ppp-93-104-37-180.dynamic.mnet-online.de [93.104.37.180]) by smtp-auth.mnet-online.de (Postfix) with ESMTPA id A22B81C0031E; Thu, 25 Nov 2010 17:00:55 +0100 (CET) Received: from gemini.denx.de (gemini.denx.de [10.0.0.2]) by diddl.denx.de (Postfix) with ESMTP id A860B3346962; Thu, 25 Nov 2010 17:00:54 +0100 (CET) Received: by gemini.denx.de (Postfix, from userid 500) id EC487D2455B; Thu, 25 Nov 2010 17:00:52 +0100 (CET) From: Wolfgang Denk To: u-boot@lists.denx.de Date: Thu, 25 Nov 2010 17:00:32 +0100 Message-Id: <1290700844-31427-13-git-send-email-wd@denx.de> X-Mailer: git-send-email 1.7.3.2 In-Reply-To: <1290373420-3053-1-git-send-email-wd@denx.de> References: <1290373420-3053-1-git-send-email-wd@denx.de> Cc: Kumar Gala , Andy Fleming , Stefan Roese , Kim Phillips Subject: [U-Boot] [PATCH 12/24 V3] POWERPC: enable --gc-sections and -ffunction-sections -fdata-sections X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.9 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: u-boot-bounces@lists.denx.de Errors-To: u-boot-bounces@lists.denx.de The switch from archive libraries to partial linking has introduced a number of problems, that are non-trivial to solve. For example, it is no longer possible to include individual object files in the linker script as we did before for example in the case of boards with embedded environment to fill up the gap caused by the need to align the environment on flash erase block boundaries. The best (but unfortunately not easiest) approach to address this problem is to enable -ffunction-sections (and -fdata-sections) so we can again (and even in much finer granularity) place certain code where we want it. When doing this step, it seems only consequent to also add --gc-sections which has the added benefit of reducing the memory footprint of the U-Boot image (both in flash and in RAM). Unfortunately, this requires changes to a lot of linker scripts. Signed-off-by: Wolfgang Denk Cc: Stefan Roese Cc: Kim Phillips Cc: Andy Fleming Cc: Kumar Gala --- arch/powerpc/config.mk | 4 ++-- arch/powerpc/cpu/mpc85xx/config.mk | 4 ---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/arch/powerpc/config.mk b/arch/powerpc/config.mk index 5bc849c..2912604 100644 --- a/arch/powerpc/config.mk +++ b/arch/powerpc/config.mk @@ -25,9 +25,9 @@ CROSS_COMPILE ?= ppc_8xx- STANDALONE_LOAD_ADDR = 0x40000 -PLATFORM_RELFLAGS += -mrelocatable +PLATFORM_RELFLAGS += -mrelocatable -ffunction-sections -fdata-sections PLATFORM_CPPFLAGS += -DCONFIG_PPC -D__powerpc__ -PLATFORM_LDFLAGS += -n +PLATFORM_LDFLAGS += -n --gc-sections ifdef CONFIG_SYS_LDSCRIPT # need to strip off double quotes diff --git a/arch/powerpc/cpu/mpc85xx/config.mk b/arch/powerpc/cpu/mpc85xx/config.mk index 3f3d096..66d1741 100644 --- a/arch/powerpc/cpu/mpc85xx/config.mk +++ b/arch/powerpc/cpu/mpc85xx/config.mk @@ -25,10 +25,6 @@ PLATFORM_RELFLAGS += -fPIC -meabi PLATFORM_CPPFLAGS += -ffixed-r2 -Wa,-me500 -msoft-float -mno-string -# Enable gc-sections to enable generation of smaller images. -PLATFORM_LDFLAGS += --gc-sections -PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections - # -mspe=yes is needed to have -mno-spe accepted by a buggy GCC; # see "[PATCH,rs6000] make -mno-spe work as expected" on # http://gcc.gnu.org/ml/gcc-patches/2008-04/msg00311.html