[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