Changeset 35936


Ignore:
Timestamp:
2013-03-10T15:51:42+01:00 (5 years ago)
Author:
nbd
Message:

kernel: use -ffunction-sections, -fdata-sections and --gc-sections on ARM to reduce kernel image size, disable those flags when tracing on MIPS to fix compile errors

Location:
trunk/target/linux/generic/patches-3.8
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/generic/patches-3.8/220-gc_sections.patch

    r35447 r35936  
    11--- a/arch/mips/Makefile 
    22+++ b/arch/mips/Makefile 
    3 @@ -89,10 +89,12 @@ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlin 
     3@@ -89,10 +89,14 @@ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlin 
    44 # 
    55 cflags-y                       += -G 0 -mno-abicalls -fno-pic -pipe 
     
    1010 KBUILD_CFLAGS_MODULE           += -mlong-calls 
    1111  
     12+ifndef CONFIG_FUNCTION_TRACER 
    1213+KBUILD_CFLAGS_KERNEL           += -ffunction-sections -fdata-sections 
     14+endif 
    1315+ 
    1416 cflags-y += -ffreestanding 
     
    371373 #define INIT_RAM_FS 
    372374 #endif 
     375--- a/arch/arm/Makefile 
     376+++ b/arch/arm/Makefile 
     377@@ -17,11 +17,16 @@ LDFLAGS_vmlinux     :=-p --no-undefined -X 
     378 ifeq ($(CONFIG_CPU_ENDIAN_BE8),y) 
     379 LDFLAGS_vmlinux        += --be8 
     380 endif 
     381+LDFLAGS_vmlinux += --gc-sections 
     382  
     383 OBJCOPYFLAGS   :=-O binary -R .comment -S 
     384 GZFLAGS                :=-9 
     385 #KBUILD_CFLAGS +=-pipe 
     386  
     387+ifndef CONFIG_FUNCTION_TRACER 
     388+KBUILD_CFLAGS_KERNEL += -ffunction-sections -fdata-sections 
     389+endif 
     390+ 
     391 # Never generate .eh_frame 
     392 KBUILD_CFLAGS  += $(call cc-option,-fno-dwarf2-cfi-asm) 
     393  
     394--- a/arch/arm/kernel/vmlinux.lds.S 
     395+++ b/arch/arm/kernel/vmlinux.lds.S 
     396@@ -12,13 +12,13 @@ 
     397 #define PROC_INFO                                                      \ 
     398        . = ALIGN(4);                                                   \ 
     399        VMLINUX_SYMBOL(__proc_info_begin) = .;                          \ 
     400-       *(.proc.info.init)                                              \ 
     401+       KEEP(*(.proc.info.init))                                        \ 
     402        VMLINUX_SYMBOL(__proc_info_end) = .; 
     403  
     404 #define IDMAP_TEXT                                                     \ 
     405        ALIGN_FUNCTION();                                               \ 
     406        VMLINUX_SYMBOL(__idmap_text_start) = .;                         \ 
     407-       *(.idmap.text)                                                  \ 
     408+       KEEP(*(.idmap.text))                                            \ 
     409        VMLINUX_SYMBOL(__idmap_text_end) = .; 
     410  
     411 #ifdef CONFIG_HOTPLUG_CPU 
     412@@ -118,7 +118,7 @@ SECTIONS 
     413        __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) { 
     414                __start___ex_table = .; 
     415 #ifdef CONFIG_MMU 
     416-               *(__ex_table) 
     417+               KEEP(*(__ex_table)) 
     418 #endif 
     419                __stop___ex_table = .; 
     420        } 
     421@@ -130,12 +130,12 @@ SECTIONS 
     422        . = ALIGN(8); 
     423        .ARM.unwind_idx : { 
     424                __start_unwind_idx = .; 
     425-               *(.ARM.exidx*) 
     426+               KEEP(*(.ARM.exidx*)) 
     427                __stop_unwind_idx = .; 
     428        } 
     429        .ARM.unwind_tab : { 
     430                __start_unwind_tab = .; 
     431-               *(.ARM.extab*) 
     432+               KEEP(*(.ARM.extab*)) 
     433                __stop_unwind_tab = .; 
     434        } 
     435 #endif 
     436@@ -158,24 +158,24 @@ SECTIONS 
     437        } 
     438        .init.arch.info : { 
     439                __arch_info_begin = .; 
     440-               *(.arch.info.init) 
     441+               KEEP(*(.arch.info.init)) 
     442                __arch_info_end = .; 
     443        } 
     444        .init.tagtable : { 
     445                __tagtable_begin = .; 
     446-               *(.taglist.init) 
     447+               KEEP(*(.taglist.init)) 
     448                __tagtable_end = .; 
     449        } 
     450 #ifdef CONFIG_SMP_ON_UP 
     451        .init.smpalt : { 
     452                __smpalt_begin = .; 
     453-               *(.alt.smp.init) 
     454+               KEEP(*(.alt.smp.init)) 
     455                __smpalt_end = .; 
     456        } 
     457 #endif 
     458        .init.pv_table : { 
     459                __pv_table_begin = .; 
     460-               *(.pv_table) 
     461+               KEEP(*(.pv_table)) 
     462                __pv_table_end = .; 
     463        } 
     464        .init.data : { 
  • trunk/target/linux/generic/patches-3.8/305-mips_module_reloc.patch

    r35320 r35936  
    1313+endif 
    1414  
     15 ifndef CONFIG_FUNCTION_TRACER 
    1516 KBUILD_CFLAGS_KERNEL           += -ffunction-sections -fdata-sections 
    16   
    1717--- a/arch/mips/include/asm/module.h 
    1818+++ b/arch/mips/include/asm/module.h 
Note: See TracChangeset for help on using the changeset viewer.