paparazzi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[paparazzi-commits] [4169] let linker remove unused sections


From: Felix Ruess
Subject: [paparazzi-commits] [4169] let linker remove unused sections
Date: Fri, 18 Sep 2009 11:56:54 +0000

Revision: 4169
          http://svn.sv.gnu.org/viewvc/?view=rev&root=paparazzi&revision=4169
Author:   flixr
Date:     2009-09-18 11:56:52 +0000 (Fri, 18 Sep 2009)
Log Message:
-----------
let linker remove unused sections

Modified Paths:
--------------
    paparazzi3/trunk/conf/Makefile.arm7
    paparazzi3/trunk/sw/airborne/arm7/LPC2148-ROM-bl.ld
    paparazzi3/trunk/sw/airborne/arm7/LPC2148-ROM.ld

Modified: paparazzi3/trunk/conf/Makefile.arm7
===================================================================
--- paparazzi3/trunk/conf/Makefile.arm7 2009-09-12 21:30:56 UTC (rev 4168)
+++ paparazzi3/trunk/conf/Makefile.arm7 2009-09-18 11:56:52 UTC (rev 4169)
@@ -18,8 +18,8 @@
 # You should have received a copy of the GNU General Public License
 # along with paparazzi; see the file COPYING.  If not, write to
 # the Free Software Foundation, 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.  
-# 
+# Boston, MA 02111-1307, USA.
+#
 
 
 #
@@ -55,9 +55,9 @@
 
 SRCARM = $($(TARGET).srcs)
 
-ASRCARM = crt0.S 
+ASRCARM = crt0.S
 
-# Optimization level, can be [0, 1, 2, 3, s]. 
+# Optimization level, can be [0, 1, 2, 3, s].
 # 0 = turn off optimization. s = optimize for size.
 # (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
 OPT = s
@@ -71,17 +71,18 @@
 CFLAGS = $(CINCS)
 CFLAGS += -O$(OPT)
 # CFLAGS += -malignment-traps
-CFLAGS += -Wall -Wcast-qual -Wimplicit -Wcast-align
+CFLAGS += -Wall -Wcast-qual -Wimplicit -Wcast-align -Winline
 CFLAGS += -Wpointer-arith -Wswitch
 CFLAGS += -Wredundant-decls -Wreturn-type -Wshadow -Wunused
 CFLAGS += -Wa,-adhlns=$(OBJDIR)/$(notdir $(subst $(suffix $<),.lst,$<))
 CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
+CFLAGS += -ffunction-sections -fdata-sections
 
 # flags only for C
 CFLAGS + = -Wstrict-prototypes -Wmissing-declarations
-CFLAGS += -Wmissing-prototypes -Wnested-externs 
+CFLAGS += -Wmissing-prototypes -Wnested-externs
 CFLAGS += $(CSTANDARD)
-CFLAGS += $($(TARGET).CFLAGS) $(LOCAL_CFLAGS)          
+CFLAGS += $($(TARGET).CFLAGS) $(LOCAL_CFLAGS)
 
 # Assembler flags.
 ASFLAGS = -Wa,-adhlns=$(OBJDIR)/$(notdir $(<:.S=.lst))
@@ -93,8 +94,9 @@
 LDFLAGS = -n -nostartfiles -Wl,-Map=$(OBJDIR)/$(TARGET).map,--cref
 LDFLAGS += -lc
 LDFLAGS += $(NEWLIBLPC) $(MATH_LIB)
-LDFLAGS += -lc -lgcc 
+LDFLAGS += -lc -lgcc
 LDFLAGS += $(CPLUSPLUS_LIB)
+LDFLAGS += -Wl,--gc-sections
 # -lusbstack -Larm7/lpcusb
 
 ifndef LDSCRIPT
@@ -110,7 +112,7 @@
 
 
 # ---------------------------------------------------------------------------
-# Flash-Programming support using lpc21isp by Martin Maurer 
+# Flash-Programming support using lpc21isp by Martin Maurer
 
 # Settings and variables:
 LPC21ISP = lpc21isp
@@ -128,7 +130,7 @@
 endif
 
 # ---------------------------------------------------------------------------
-# Flash-Programming support using lpc21iap by Martin Muller  (usb bootloader) 
+# Flash-Programming support using lpc21iap by Martin Muller  (usb bootloader)
 
 LPC21IAP = $(PAPARAZZI_SRC)/sw/ground_segment/lpc21iap/lpc21iap
 
@@ -136,7 +138,7 @@
 
 
 # Define all object files.
-COBJ      = $(SRC:%.c=$(OBJDIR)/%.o) 
+COBJ      = $(SRC:%.c=$(OBJDIR)/%.o)
 AOBJ      = $(ASRC:%.S=$(OBJDIR)/%.o)
 COBJARM   = $(SRCARM:%.c=$(OBJDIR)/%.o)
 AOBJARM   = $(ASRCARM:%.S=$(OBJDIR)/%.o)
@@ -160,7 +162,7 @@
 
 elf: $(OBJDIR)/$(TARGET).elf
 hex: $(OBJDIR)/$(TARGET).hex
-lss: $(OBJDIR)/$(TARGET).lss 
+lss: $(OBJDIR)/$(TARGET).lss
 sym: $(OBJDIR)/$(TARGET).sym
 
 
@@ -174,11 +176,11 @@
        @if [ -f $(OBJDIR)/$(TARGET).elf ]; then echo; $(ELFSIZE); echo; fi
 
 
-# Program the device.  
+# Program the device.
 load upload program: $(OBJDIR)/$(TARGET).hex
 ifeq ($(FLASH_MODE),IAP)
        $(SUDO) $(LPC21IAP)  $(OBJDIR)/$(TARGET).elf
-else 
+else
        @echo
        $(LPC21ISP) $(LPC21ISP_CONTROL) $(LPC21ISP_DEBUG) $(LPC21ISP_FLASHFILE) 
$(LPC21ISP_PORT) $(LPC21ISP_BAUD) $(LPC21ISP_XTAL)
 endif
@@ -205,7 +207,7 @@
 
 # Link: create ELF output file from object files.
 .SECONDARY : $(OBJDIR)/$(TARGET).elf
-.PRECIOUS : $(AOBJARM) $(AOBJ) $(COBJARM) $(COBJ) 
+.PRECIOUS : $(AOBJARM) $(AOBJ) $(COBJARM) $(COBJ)
 %.elf:  $(AOBJARM) $(AOBJ) $(COBJARM) $(COBJ)
        @echo LD $@
        $(Q)$(CC) $(THUMB) $(ALL_CFLAGS) $(AOBJARM) $(AOBJ) $(COBJARM) $(COBJ)  
--output $@ $(LDFLAGS) $($(TARGET).LDFLAGS)
@@ -215,17 +217,17 @@
 $(OBJDIR)/%.o : %.c $(OBJDIR)/../Makefile.ac
        @echo CC $@
        $(Q)test -d $(dir $@) || mkdir -p $(dir $@)
-       $(Q)$(CC) -c $(ALL_CFLAGS) $(CONLYFLAGS) $< -o $@ 
+       $(Q)$(CC) -c $(ALL_CFLAGS) $(CONLYFLAGS) $< -o $@
 
 $(OBJDIR)/%.o : $(SRC_ARCH)/lpcusb/%.c $(OBJDIR)/../Makefile.ac
        @echo CC $@
-       $(Q)$(CC) -c $(ALL_CFLAGS) $(CONLYFLAGS) $< -o $@ 
+       $(Q)$(CC) -c $(ALL_CFLAGS) $(CONLYFLAGS) $< -o $@
 
 
 # grab files in var/$(AIRCRAFT)/$(TARGET) aka $(OBJDIR)
 #$(OBJDIR)/%.o : $(OBJDIR)/%.c
 #      @echo CC $@
-#      $(Q)$(CC) -c $(ALL_CFLAGS) $(CONLYFLAGS) $< -o $@ 
+#      $(Q)$(CC) -c $(ALL_CFLAGS) $(CONLYFLAGS) $< -o $@
 
 # Assemble: create object files from assembler source files. ARM/Thumb
 $(AOBJ) : $(OBJDIR)/%.o : %.S
@@ -281,8 +283,8 @@
        @test -d $(OBJDIR) || mkdir -p $(OBJDIR)
        $(Q)$(CC) -MM -MG $(CFLAGS) $($(TARGET).CFLAGS) $($(TARGET).srcs) | sed 
's|\([^\.]*\.o\)|$(OBJDIR)/\1|' > $@
 
-ifneq ($(MAKECMDGOALS),clean) 
-ifneq ($(MAKECMDGOALS),erase) 
+ifneq ($(MAKECMDGOALS),clean)
+ifneq ($(MAKECMDGOALS),erase)
 -include $(OBJDIR)/.depend
 endif
 endif

Modified: paparazzi3/trunk/sw/airborne/arm7/LPC2148-ROM-bl.ld
===================================================================
--- paparazzi3/trunk/sw/airborne/arm7/LPC2148-ROM-bl.ld 2009-09-12 21:30:56 UTC 
(rev 4168)
+++ paparazzi3/trunk/sw/airborne/arm7/LPC2148-ROM-bl.ld 2009-09-18 11:56:52 UTC 
(rev 4169)
@@ -28,21 +28,21 @@
        *(.rodata*)
        *(.gnu.linkonce.r.*)
   } > ROM
-  
-  /***** old: 
+
+  /***** old:
   .text :
   {
-    *crt0.o (.text)            
-    *(.text)                   
-    *(.rodata)                 
+    *crt0.o (.text)
+    *(.text)
+    *(.rodata)
     *(.rodata*)
     *(.glue_7)
     *(.glue_7t)
-  } > ROM 
+  } > ROM
   *****/
 
   . = ALIGN(4);
-  
+
        /* .ctors .dtors are used for c++ constructors/destructors */
        /* added by Martin Thomas 4/2005 based on Anglia Design example */
        .ctors :
@@ -52,18 +52,18 @@
                KEEP(*(.ctors))
                PROVIDE(__ctors_end__ = .);
        } >ROM
-       
+
        .dtors :
        {
-               PROVIDE(__dtors_start__ = .); 
+               PROVIDE(__dtors_start__ = .);
                KEEP(*(SORT(.dtors.*)))
                KEEP(*(.dtors))
                PROVIDE(__dtors_end__ = .);
        } >ROM
-  
+
     . = ALIGN(4);
        /* mthomas - end */
-   
+
   _etext = . ;
   PROVIDE (etext = .);
 
@@ -78,7 +78,7 @@
        . = ALIGN(4);
        *(.fastrun) /* !!!! "RAM-Function" example */
   } > RAM
- 
+
   . = ALIGN(4);
   _edata = . ;
   PROVIDE (edata = .);
@@ -89,6 +89,7 @@
     __bss_start = . ;
     __bss_start__ = . ;
     *(.bss)
+    *(.bss.*)
        *(.gnu.linkonce.b*)
     *(COMMON)
     . = ALIGN(4);

Modified: paparazzi3/trunk/sw/airborne/arm7/LPC2148-ROM.ld
===================================================================
--- paparazzi3/trunk/sw/airborne/arm7/LPC2148-ROM.ld    2009-09-12 21:30:56 UTC 
(rev 4168)
+++ paparazzi3/trunk/sw/airborne/arm7/LPC2148-ROM.ld    2009-09-18 11:56:52 UTC 
(rev 4169)
@@ -28,21 +28,21 @@
        *(.rodata*)
        *(.gnu.linkonce.r.*)
   } > ROM
-  
-  /***** old: 
+
+  /***** old:
   .text :
   {
-    *crt0.o (.text)            
-    *(.text)                   
-    *(.rodata)                 
+    *crt0.o (.text)
+    *(.text)
+    *(.rodata)
     *(.rodata*)
     *(.glue_7)
     *(.glue_7t)
-  } > ROM 
+  } > ROM
   *****/
 
   . = ALIGN(4);
-  
+
        /* .ctors .dtors are used for c++ constructors/destructors */
        /* added by Martin Thomas 4/2005 based on Anglia Design example */
        .ctors :
@@ -52,18 +52,18 @@
                KEEP(*(.ctors))
                PROVIDE(__ctors_end__ = .);
        } >ROM
-       
+
        .dtors :
        {
-               PROVIDE(__dtors_start__ = .); 
+               PROVIDE(__dtors_start__ = .);
                KEEP(*(SORT(.dtors.*)))
                KEEP(*(.dtors))
                PROVIDE(__dtors_end__ = .);
        } >ROM
-  
+
     . = ALIGN(4);
        /* mthomas - end */
-   
+
   _etext = . ;
   PROVIDE (etext = .);
 
@@ -78,7 +78,7 @@
        . = ALIGN(4);
        *(.fastrun) /* !!!! "RAM-Function" example */
   } > RAM
- 
+
   . = ALIGN(4);
   _edata = . ;
   PROVIDE (edata = .);
@@ -89,6 +89,7 @@
     __bss_start = . ;
     __bss_start__ = . ;
     *(.bss)
+    *(.bss.*)
        *(.gnu.linkonce.b*)
     *(COMMON)
     . = ALIGN(4);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]