mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 05:54:26 -04:00 
			
		
		
		
	This was boot tested on mipsel32, arm32 and x86 only. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> SVN-Revision: 46611
		
			
				
	
	
		
			29 lines
		
	
	
		
			966 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			966 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- a/gcc/calls.c
 | |
| +++ b/gcc/calls.c
 | |
| @@ -225,6 +225,12 @@ prepare_call_address (tree fndecl_or_typ
 | |
|  	       && 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_or_type
 | |
| +	   && TREE_CODE (fndecl_or_type) == FUNCTION_DECL
 | |
| +	   && !targetm.binds_local_p (fndecl_or_type))
 | |
| +    {
 | |
| +      funexp = force_reg (Pmode, funexp);
 | |
| +    }
 | |
|    else if (! sibcallp)
 | |
|      {
 | |
|  #ifndef NO_FUNCTION_CSE
 | |
| --- a/gcc/common.opt
 | |
| +++ b/gcc/common.opt
 | |
| @@ -1779,6 +1779,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
 |