[llvm-commits] [llvm-gcc-4.2] r52263 - in /llvm-gcc-4.2/trunk/gcc: c-cppbuiltin.c cfgexpand.c common.opt function.c toplev.c

Evan Cheng evan.cheng at apple.com
Fri Jun 13 15:52:17 PDT 2008


Hi Devang,

This has broken the build:

gcc -c   -g -O2  -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict- 
prototypes -Wmissing-prototypes -pedantic -Wno-long-long -Wno-variadic- 
macros -Wno-overlength-strings -Wold-style-definition -Wmissing-format- 
attribute -Werror   -mdyn\
amic-no-pic -DHAVE_CONFIG_H -I. -I. -I/tmp/llvmgcc42.roots/ 
llvmgcc42~obj/src/gcc -I/tmp/llvmgcc42.roots/llvmgcc42~obj/src/gcc/. - 
I/tmp/llvmgcc42.roots/llvmgcc42~obj/src/gcc/../include -I./../intl -I/ 
tmp/llvmgcc42.roots/llvmgcc42~\
obj/src/gcc/../libcpp/include  -I/tmp/llvmgcc42.roots/llvmgcc42~obj/ 
src/gcc/../libdecnumber -I../libdecnumber -I/Developer/usr/local/ 
include -I/tmp/llvmCore.roots/llvmCore~obj/src/llvm/include - 
DENABLE_LLVM -I/Developer/usr/local\
/include  -DNDEBUG  -D_GNU_SOURCE -D__STDC_LIMIT_MACROS - 
DLLVM_VERSION_INFO='"9999"'   /tmp/llvmgcc42.roots/llvmgcc42~obj/src/ 
gcc/function.c -o function.o
/tmp/llvmgcc42.roots/llvmgcc42~obj/src/gcc/function.c: In function  
‘get_func_frame_size’:
/tmp/llvmgcc42.roots/llvmgcc42~obj/src/gcc/function.c:347: error:  
‘flag_stack_protect’ undeclared (first use in this function)
/tmp/llvmgcc42.roots/llvmgcc42~obj/src/gcc/function.c:347: error:  
(Each undeclared identifier is reported only once
/tmp/llvmgcc42.roots/llvmgcc42~obj/src/gcc/function.c:347: error: for  
each function it appears in.)
/tmp/llvmgcc42.roots/llvmgcc42~obj/src/gcc/function.c: In function  
‘frame_offset_overflow’:
/tmp/llvmgcc42.roots/llvmgcc42~obj/src/gcc/function.c:370: error:  
‘flag_stack_protect’ undeclared (first use in this function)
/tmp/llvmgcc42.roots/llvmgcc42~obj/src/gcc/function.c: In function  
‘assign_stack_local_1’:
/tmp/llvmgcc42.roots/llvmgcc42~obj/src/gcc/function.c:432: error:  
‘flag_stack_protect’ undeclared (first use in this function)
/tmp/llvmgcc42.roots/llvmgcc42~obj/src/gcc/function.c: In function  
‘assign_stack_temp_for_type’:
/tmp/llvmgcc42.roots/llvmgcc42~obj/src/gcc/function.c:746: error:  
‘flag_stack_protect’ undeclared (first use in this function)
/tmp/llvmgcc42.roots/llvmgcc42~obj/src/gcc/function.c: In function  
‘instantiate_virtual_regs’:
/tmp/llvmgcc42.roots/llvmgcc42~obj/src/gcc/function.c:1707: error:  
‘flag_stack_protect’ undeclared (first use in this function)
make[3]: *** [function.o] Error 1

Evan

On Jun 13, 2008, at 3:24 PM, Devang Patel wrote:

> Author: dpatel
> Date: Fri Jun 13 17:24:02 2008
> New Revision: 52263
>
> URL: http://llvm.org/viewvc/llvm-project?rev=52263&view=rev
> Log:
>
> -fstack-protector is not supported.
>
> Modified:
>    llvm-gcc-4.2/trunk/gcc/c-cppbuiltin.c
>    llvm-gcc-4.2/trunk/gcc/cfgexpand.c
>    llvm-gcc-4.2/trunk/gcc/common.opt
>    llvm-gcc-4.2/trunk/gcc/function.c
>    llvm-gcc-4.2/trunk/gcc/toplev.c
>
> Modified: llvm-gcc-4.2/trunk/gcc/c-cppbuiltin.c
> URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/c-cppbuiltin.c?rev=52263&r1=52262&r2=52263&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm-gcc-4.2/trunk/gcc/c-cppbuiltin.c (original)
> +++ llvm-gcc-4.2/trunk/gcc/c-cppbuiltin.c Fri Jun 13 17:24:02 2008
> @@ -629,10 +629,14 @@
>   /* Make the choice of the stack protector runtime visible to  
> source code.
>      The macro names and values here were chosen for compatibility  
> with an
>      earlier implementation, i.e. ProPolice.  */
> +  /* LLVM LOCAL begin stack protector */
> +#if 0
>   if (flag_stack_protect == 2)
>     cpp_define (pfile, "__SSP_ALL__=2");
>   else if (flag_stack_protect == 1)
>     cpp_define (pfile, "__SSP__=1");
> +#endif
> +  /* LLVM LOCAL end stack protector */
>
>   if (flag_openmp)
>     cpp_define (pfile, "_OPENMP=200505");
>
> Modified: llvm-gcc-4.2/trunk/gcc/cfgexpand.c
> URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/cfgexpand.c?rev=52263&r1=52262&r2=52263&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm-gcc-4.2/trunk/gcc/cfgexpand.c (original)
> +++ llvm-gcc-4.2/trunk/gcc/cfgexpand.c Fri Jun 13 17:24:02 2008
> @@ -697,8 +697,12 @@
> {
>   /* If stack protection is enabled, *all* stack variables must be  
> deferred,
>      so that we can re-order the strings to the top of the frame.  */
> +  /* LLVM LOCAL begin stack protector */
> +#if 0
>   if (flag_stack_protect)
>     return true;
> +#endif
> +  /* LLVM LOCAL end stack protector */
>
>   /* Variables in the outermost scope automatically conflict with
>      every other variable.  The only reason to want to defer them
> @@ -817,6 +821,8 @@
> #define SPCT_HAS_ARRAY			4
> #define SPCT_HAS_AGGREGATE		8
>
> +/* LLVM LOCAL begin stack protector */
> +#if 0
> static unsigned int
> stack_protect_classify_type (tree type)
> {
> @@ -946,6 +952,8 @@
>   expand_one_stack_var (guard);
>   cfun->stack_protect_guard = guard;
> }
> +#endif
> +/* LLVM LOCAL end stack protector */
>
> /* Expand all variables used in the function.  */
>
> @@ -1020,10 +1028,14 @@
> 	 reflect this.  */
>       add_alias_set_conflicts ();
>
> +/* LLVM LOCAL begin stack protector */
> +#if 0
>       /* If stack protection is enabled, we don't share space between
> 	 vulnerable data and non-vulnerable data.  */
>       if (flag_stack_protect)
> 	add_stack_protection_conflicts ();
> +#endif
> +/* LLVM LOCAL end stack protector */
>
>       /* Now that we have collected all stack variables, and have  
> computed a
> 	 minimal interference graph, attempt to save some stack space.  */
> @@ -1036,11 +1048,15 @@
>      stack guard: protect-all, alloca used, protected decls  
> present.  */
>   /* APPLE LOCAL begin CW asm */
>   /* Don't create a guard for iasm functions.  */
> +  /* LLVM LOCAL begin stack protector */
> +#if 0
>   if ((flag_stack_protect == 2
>       || (flag_stack_protect
> 	   && (current_function_calls_alloca || has_protected_decls)))
>       && !cfun->iasm_asm_function)
>     create_stack_guard ();
> +#endif
> +  /* LLVM LOCAL end stack protector */
>   /* APPLE LOCAL end CW asm */
>
>   /* Assign rtl to each variable based on these partitions.  */
> @@ -1051,6 +1067,8 @@
>       /* ??? We could probably integrate this into the qsort we did
> 	 earlier, such that we naturally see these variables first,
> 	 and thus naturally allocate things in the right order.  */
> +  /* LLVM LOCAL begin stack protector */
> +#if 0
>       if (has_protected_decls)
> 	{
> 	  /* Phase 1 contains only character arrays.  */
> @@ -1060,7 +1078,8 @@
> 	  if (flag_stack_protect == 2)
> 	    expand_stack_vars (stack_protect_decl_phase_2);
> 	}
> -
> +#endif
> +  /* LLVM LOCAL end stack protector */
>       expand_stack_vars (NULL);
>
>       /* Free up stack variable graph data.  */
> @@ -1615,6 +1634,8 @@
>   expand_used_vars ();
>
>   /* Honor stack protection warnings.  */
> +  /* LLVM LOCAL begin stack protector */
> +#if 0
>   if (warn_stack_protect)
>     {
>       if (current_function_calls_alloca)
> @@ -1623,6 +1644,8 @@
> 	warning (0, "not protecting function: no buffer at least %d bytes  
> long",
> 		 (int) PARAM_VALUE (PARAM_SSP_BUFFER_SIZE));
>     }
> +#endif
> +  /* LLVM LOCAL end stack protector */
>
>   /* Set up parameters and prepare for return, for the function.  */
>   expand_function_start (current_function_decl);
>
> Modified: llvm-gcc-4.2/trunk/gcc/common.opt
> URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/common.opt?rev=52263&r1=52262&r2=52263&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm-gcc-4.2/trunk/gcc/common.opt (original)
> +++ llvm-gcc-4.2/trunk/gcc/common.opt Fri Jun 13 17:24:02 2008
> @@ -121,9 +121,11 @@
> Common Var(warn_shadow)
> Warn when one local variable shadows another
>
> -Wstack-protector
> -Common Var(warn_stack_protect)
> -Warn when not issuing stack smashing protection for some reason
> +; LLVM LOCAL begin stack protector
> +; Wstack-protector
> +; Common Var(warn_stack_protect)
> +; Warn when not issuing stack smashing protection for some reason
> +; LLVM LOCAL end stack protector
>
> Wstrict-aliasing
> Common
> @@ -998,13 +1000,15 @@
> Common RejectNegative Joined
> -fstack-limit-symbol=<name>	Trap if the stack goes past symbol <name>
>
> -fstack-protector
> -Common Report Var(flag_stack_protect, 1)
> -Use propolice as a stack protection method
> -
> -fstack-protector-all
> -Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
> -Use a stack protection method for every function
> +; LLVM LOCAL begin stack protector
> +; fstack-protector
> +; Common Report Var(flag_stack_protect, 1)
> +; Use propolice as a stack protection method
> +;
> +; fstack-protector-all
> +; Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
> +; Use a stack protection method for every function
> +; LLVM LOCAL end stack protector
>
> fstrength-reduce
> Common
>
> Modified: llvm-gcc-4.2/trunk/gcc/function.c
> URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/function.c?rev=52263&r1=52262&r2=52263&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm-gcc-4.2/trunk/gcc/function.c (original)
> +++ llvm-gcc-4.2/trunk/gcc/function.c Fri Jun 13 17:24:02 2008
> @@ -2462,9 +2462,10 @@
>
>   /* If stack protection is in effect for this function, don't leave  
> any
>      pointers in their passed stack slots.  */
> +  /* LLVM LOCAL.
> +     Remove flag_stack_protector == 2 check */
>   else if (cfun->stack_protect_guard
> -	   && (flag_stack_protect == 2
> -	       || data->passed_pointer
> +	   && (data->passed_pointer
> 	       || POINTER_TYPE_P (data->nominal_type)))
>     stack_parm = NULL;
>
>
> Modified: llvm-gcc-4.2/trunk/gcc/toplev.c
> URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/toplev.c?rev=52263&r1=52262&r2=52263&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm-gcc-4.2/trunk/gcc/toplev.c (original)
> +++ llvm-gcc-4.2/trunk/gcc/toplev.c Fri Jun 13 17:24:02 2008
> @@ -2015,6 +2015,8 @@
>   cl_pf_opts_cooked = cl_pf_opts;
>   /* APPLE LOCAL end optimization pragmas 3124235/3420242 */
>
> +/* LLVM LOCAL begin stack protector */
> +#if 0
>   /* Targets must be able to place spill slots at lower addresses.   
> If the
>      target already uses a soft frame pointer, the transition is  
> trivial.  */
>   if (!FRAME_GROWS_DOWNWARD && flag_stack_protect)
> @@ -2024,6 +2026,8 @@
>     }
>   if (!flag_stack_protect)
>     warn_stack_protect = 0;
> +#endif
> +/* LLVM LOCAL end stack protector */
>
>   /* ??? Unwind info is not correct around the CFG unless either a  
> frame
>      pointer is present or A_O_A is set.  Fixing this requires  
> rewriting
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits





More information about the llvm-commits mailing list