Author: nbd
Date: 2015-05-10 15:16:35 +0200 (Sun, 10 May 2015)
New Revision: 45664

Added:
   trunk/toolchain/gcc/patches/4.8-linaro/020-no-plt-backport.patch
   trunk/toolchain/gcc/patches/4.8-linaro/851-libgcc_no_compat.patch
   trunk/toolchain/gcc/patches/4.9-linaro/020-no-plt-backport.patch
   trunk/toolchain/gcc/patches/4.9-linaro/851-libgcc_no_compat.patch
Log:
gcc: add some size optimization patches

Signed-off-by: Felix Fietkau <[email protected]>

Added: trunk/toolchain/gcc/patches/4.8-linaro/020-no-plt-backport.patch
===================================================================
--- trunk/toolchain/gcc/patches/4.8-linaro/020-no-plt-backport.patch            
                (rev 0)
+++ trunk/toolchain/gcc/patches/4.8-linaro/020-no-plt-backport.patch    
2015-05-10 13:16:35 UTC (rev 45664)
@@ -0,0 +1,28 @@
+--- a/gcc/calls.c
++++ b/gcc/calls.c
+@@ -176,6 +176,12 @@ prepare_call_address (tree fndecl, rtx f
+              && targetm.small_register_classes_for_mode_p (FUNCTION_MODE))
+             ? force_not_mem (memory_address (FUNCTION_MODE, funexp))
+             : memory_address (FUNCTION_MODE, funexp));
++  else if (flag_pic && !flag_plt && fndecl
++         && TREE_CODE (fndecl) == FUNCTION_DECL
++         && !targetm.binds_local_p (fndecl))
++    {
++      funexp = force_reg (Pmode, funexp);
++    }
+   else if (! sibcallp)
+     {
+ #ifndef NO_FUNCTION_CSE
+--- a/gcc/common.opt
++++ b/gcc/common.opt
+@@ -1617,6 +1617,10 @@ fpie
+ Common Report Var(flag_pie,1) Negative(fPIC)
+ Generate position-independent code for executables if possible (small mode)
+ 
++fplt
++Common Report Var(flag_plt) Init(1)
++Use PLT for PIC calls (-fno-plt: load the address from GOT at call site)
++
+ fplugin=
+ Common Joined RejectNegative Var(common_deferred_options) Defer
+ Specify a plugin to load

Added: trunk/toolchain/gcc/patches/4.8-linaro/851-libgcc_no_compat.patch
===================================================================
--- trunk/toolchain/gcc/patches/4.8-linaro/851-libgcc_no_compat.patch           
                (rev 0)
+++ trunk/toolchain/gcc/patches/4.8-linaro/851-libgcc_no_compat.patch   
2015-05-10 13:16:35 UTC (rev 45664)
@@ -0,0 +1,12 @@
+--- a/libgcc/config/t-libunwind
++++ b/libgcc/config/t-libunwind
+@@ -2,8 +2,7 @@
+ 
+ HOST_LIBGCC2_CFLAGS += -DUSE_GAS_SYMVER
+ 
+-LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c \
+-  $(srcdir)/unwind-compat.c $(srcdir)/unwind-dw2-fde-compat.c
++LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
+ LIB2ADDEHSTATIC = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
+ 
+ # Override the default value from t-slibgcc-elf-ver and mention -lunwind

Added: trunk/toolchain/gcc/patches/4.9-linaro/020-no-plt-backport.patch
===================================================================
--- trunk/toolchain/gcc/patches/4.9-linaro/020-no-plt-backport.patch            
                (rev 0)
+++ trunk/toolchain/gcc/patches/4.9-linaro/020-no-plt-backport.patch    
2015-05-10 13:16:35 UTC (rev 45664)
@@ -0,0 +1,28 @@
+--- a/gcc/calls.c
++++ b/gcc/calls.c
+@@ -184,6 +184,12 @@ prepare_call_address (tree fndecl, rtx f
+              && targetm.small_register_classes_for_mode_p (FUNCTION_MODE))
+             ? force_not_mem (memory_address (FUNCTION_MODE, funexp))
+             : memory_address (FUNCTION_MODE, funexp));
++  else if (flag_pic && !flag_plt && fndecl
++         && TREE_CODE (fndecl) == FUNCTION_DECL
++         && !targetm.binds_local_p (fndecl))
++    {
++      funexp = force_reg (Pmode, funexp);
++    }
+   else if (! sibcallp)
+     {
+ #ifndef NO_FUNCTION_CSE
+--- a/gcc/common.opt
++++ b/gcc/common.opt
+@@ -1659,6 +1659,10 @@ fpie
+ Common Report Var(flag_pie,1) Negative(fPIC)
+ Generate position-independent code for executables if possible (small mode)
+ 
++fplt
++Common Report Var(flag_plt) Init(1)
++Use PLT for PIC calls (-fno-plt: load the address from GOT at call site)
++
+ fplugin=
+ Common Joined RejectNegative Var(common_deferred_options) Defer
+ Specify a plugin to load

Added: trunk/toolchain/gcc/patches/4.9-linaro/851-libgcc_no_compat.patch
===================================================================
--- trunk/toolchain/gcc/patches/4.9-linaro/851-libgcc_no_compat.patch           
                (rev 0)
+++ trunk/toolchain/gcc/patches/4.9-linaro/851-libgcc_no_compat.patch   
2015-05-10 13:16:35 UTC (rev 45664)
@@ -0,0 +1,12 @@
+--- a/libgcc/config/t-libunwind
++++ b/libgcc/config/t-libunwind
+@@ -2,8 +2,7 @@
+ 
+ HOST_LIBGCC2_CFLAGS += -DUSE_GAS_SYMVER
+ 
+-LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c \
+-  $(srcdir)/unwind-compat.c $(srcdir)/unwind-dw2-fde-compat.c
++LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
+ LIB2ADDEHSTATIC = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c
+ 
+ # Override the default value from t-slibgcc-elf-ver and mention -lunwind
_______________________________________________
openwrt-commits mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits

Reply via email to