@ -1,29 +0,0 @@ |
|||||
|
|
||||
pfile=$( echo "$3" | grep protector | tr ' ' '\t' | tr -s '\t' | cut -f2 ) |
|
||||
|
|
||||
if [ "$pfile" ] |
|
||||
then |
|
||||
tar='tar --use-compress-program=bzip2' |
|
||||
pdif=$($tar -tf $archdir/${pfile/.gz/.bz2} | \ |
|
||||
grep '\.dif$' | grep -v 'protectonly\.dif'; ) |
|
||||
$tar -xf $archdir/${pfile/.gz/.bz2} |
|
||||
|
|
||||
# Patch protector.dif a bit to apply against current gcc-3 |
|
||||
if test -f $1/package/base/gcc/$2/protector-hotfix.diff; then |
|
||||
echo "Hotfixing the protector patch .." |
|
||||
patch -p1 < $1/package/base/gcc/$2/protector-hotfix.diff |
|
||||
fi |
|
||||
|
|
||||
# be careful if you enable this, you have to respect $pkg. |
|
||||
# Set -fstack-protector as default? |
|
||||
# [ $ROCKCFG_PKG_GCC[23]_STACKPRO = 1 ] && patch -p0 < protectonly.dif |
|
||||
|
|
||||
echo "Applying the protector patch .." |
|
||||
patch -p0 < $pdif |
|
||||
if [ $2 != gcc34 ]; then |
|
||||
mv protector.{c,h} gcc/ |
|
||||
fi |
|
||||
else |
|
||||
echo "No stack-protector available for $2 ..." |
|
||||
fi |
|
||||
|
|
@ -1,71 +0,0 @@ |
|||||
# --- ROCK-COPYRIGHT-NOTE-BEGIN --- |
|
||||
# |
|
||||
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. |
|
||||
# Please add additional copyright information _after_ the line containing |
|
||||
# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by |
|
||||
# the ./scripts/Create-CopyPatch script. Do not edit this copyright text! |
|
||||
# |
|
||||
# ROCK Linux: rock-src/package/base/gcc/gcc2/protector-docs.patch |
|
||||
# ROCK Linux is Copyright (C) 1998 - 2006 Clifford Wolf |
|
||||
# |
|
||||
# This patch file is dual-licensed. It is available under the license the |
|
||||
# patched project is licensed under, as long as it is an OpenSource license |
|
||||
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms |
|
||||
# of the GNU General Public License as published by the Free Software |
|
||||
# Foundation; either version 2 of the License, or (at your option) any later |
|
||||
# version. |
|
||||
# |
|
||||
# --- ROCK-COPYRIGHT-NOTE-END --- |
|
||||
|
|
||||
|
|
||||
Add documentation (man and info) to protector.patch. |
|
||||
|
|
||||
--- ./gcc/gcc.1.orig Tue Oct 16 08:19:36 2001
|
|
||||
+++ ./gcc/gcc.1 Tue Oct 16 08:27:46 2001
|
|
||||
@@ -515,6 +515,7 @@
|
|
||||
\-fshared\-data |
|
||||
\-fshort\-enums |
|
||||
\-fshort\-double |
|
||||
+\-fstack\-protector
|
|
||||
\-fvolatile |
|
||||
\-fvolatile\-global |
|
||||
\-fverbose\-asm |
|
||||
@@ -3856,6 +3857,12 @@
|
|
||||
.B no\-\c |
|
||||
\&\|' or adding |
|
||||
it. |
|
||||
+.TP
|
|
||||
+.B \-fstack\-protector
|
|
||||
+Enable the Stack-Smashing Protector (
|
|
||||
+.B http://www.trl.ibm.com/projects/security/ssp/
|
|
||||
+). This option is only available in ROCK Linux (and probably
|
|
||||
+some other distributions). It's not a standard GCC option.
|
|
||||
.TP |
|
||||
.B \-fnonnull\-objects |
|
||||
Assume that objects reached through references are not null |
|
||||
--- ./gcc/invoke.texi.orig Tue Oct 16 08:38:25 2001
|
|
||||
+++ ./gcc/invoke.texi Tue Oct 16 08:38:17 2001
|
|
||||
@@ -421,8 +421,8 @@
|
|
||||
-fno-common -fno-ident -fno-gnu-linker |
|
||||
-fpcc-struct-return -fpic -fPIC |
|
||||
-freg-struct-return -fshared-data -fshort-enums |
|
||||
--fshort-double -fvolatile -fvolatile-global -fvolatile-static
|
|
||||
--fverbose-asm -fpack-struct -fstack-check
|
|
||||
+-fshort-double -fstack-protector -fvolatile -fvolatile-global
|
|
||||
+-fvolatile-static -fverbose-asm -fpack-struct -fstack-check
|
|
||||
-fargument-alias -fargument-noalias |
|
||||
-fargument-noalias-global |
|
||||
-fleading-underscore |
|
||||
@@ -6147,6 +6147,12 @@
|
|
||||
it. |
|
||||
|
|
||||
@table @code |
|
||||
+@item -fstack-protector
|
|
||||
+Enable the Stack-Smashing Protector
|
|
||||
+(http://www.trl.ibm.com/projects/security/ssp/).
|
|
||||
+This option is only available in ROCK Linux (and probably
|
|
||||
+some other distributions). It's not a standard GCC option.
|
|
||||
+
|
|
||||
@item -fexceptions |
|
||||
Enable exception handling. Generates extra code needed to propagate |
|
||||
exceptions. For some targets, this implies generation of frame unwind |
|
@ -1,71 +0,0 @@ |
|||||
# --- ROCK-COPYRIGHT-NOTE-BEGIN --- |
|
||||
# |
|
||||
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. |
|
||||
# Please add additional copyright information _after_ the line containing |
|
||||
# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by |
|
||||
# the ./scripts/Create-CopyPatch script. Do not edit this copyright text! |
|
||||
# |
|
||||
# ROCK Linux: rock-src/package/base/gcc/gcc32/protector-docs.patch |
|
||||
# ROCK Linux is Copyright (C) 1998 - 2006 Clifford Wolf |
|
||||
# |
|
||||
# This patch file is dual-licensed. It is available under the license the |
|
||||
# patched project is licensed under, as long as it is an OpenSource license |
|
||||
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms |
|
||||
# of the GNU General Public License as published by the Free Software |
|
||||
# Foundation; either version 2 of the License, or (at your option) any later |
|
||||
# version. |
|
||||
# |
|
||||
# --- ROCK-COPYRIGHT-NOTE-END --- |
|
||||
|
|
||||
--- ./gcc/doc/gcc.1.orig 2002-11-19 19:17:19.000000000 +0100
|
|
||||
+++ ./gcc/doc/gcc.1 2003-01-02 16:08:53.000000000 +0100
|
|
||||
@@ -687,8 +687,8 @@
|
|
||||
\&\-fno-common \-fno-ident \-fno-gnu-linker |
|
||||
\&\-fpcc-struct-return \-fpic \-fPIC |
|
||||
\&\-freg-struct-return \-fshared-data \-fshort-enums |
|
||||
-\&\-fshort-double \-fshort-wchar \-fvolatile
|
|
||||
-\&\-fvolatile-global \-fvolatile-static
|
|
||||
+\&\-fshort-double \-fstack-protector \-fshort-wchar
|
|
||||
+\&\-fvolatile \-fvolatile-global \-fvolatile-static
|
|
||||
\&\-fverbose-asm \-fpack-struct \-fstack-check |
|
||||
\&\-fstack-limit-register=\fR\fIreg\fR \fB\-fstack-limit-symbol=\fR\fIsym\fR |
|
||||
\&\fB\-fargument-alias \-fargument-noalias |
|
||||
@@ -8954,6 +8954,12 @@
|
|
||||
instructions to throw exceptions, i.e. memory references or floating |
|
||||
point instructions. It does not allow exceptions to be thrown from |
|
||||
arbitrary signal handlers such as \f(CW\*(C`SIGALRM\*(C'\fR. |
|
||||
+.Ip "\fB\-fstack-protector\fR" 4
|
|
||||
+.IX Item "-fstack-protector"
|
|
||||
+Enable the Stack-Smashing Protector (
|
|
||||
+.B http://www.trl.ibm.com/projects/security/ssp/
|
|
||||
+). This option is only available in ROCK Linux (and probably
|
|
||||
+some other distributions). It's not a standard GCC option.
|
|
||||
.Ip "\fB\-funwind-tables\fR" 4 |
|
||||
.IX Item "-funwind-tables" |
|
||||
Similar to \fB\-fexceptions\fR, except that it will just generate any needed |
|
||||
--- ./gcc/doc/invoke.texi.orig 2002-10-29 17:35:04.000000000 +0100
|
|
||||
+++ ./gcc/doc/invoke.texi 2003-01-02 16:12:11.000000000 +0100
|
|
||||
@@ -676,7 +676,7 @@
|
|
||||
-fno-common -fno-ident -fno-gnu-linker @gol |
|
||||
-fpcc-struct-return -fpic -fPIC @gol |
|
||||
-freg-struct-return -fshared-data -fshort-enums @gol |
|
||||
--fshort-double -fshort-wchar -fvolatile @gol
|
|
||||
+-fshort-double -fstack-protector -fshort-wchar -fvolatile @gol
|
|
||||
-fvolatile-global -fvolatile-static @gol |
|
||||
-fverbose-asm -fpack-struct -fstack-check @gol |
|
||||
-fstack-limit-register=@var{reg} -fstack-limit-symbol=@var{sym} @gol |
|
||||
@@ -9721,6 +9721,14 @@
|
|
||||
it. |
|
||||
|
|
||||
@table @gcctabopt |
|
||||
+
|
|
||||
+@item -fstack-protector
|
|
||||
+@opindex fstack-protector
|
|
||||
+Enable the Stack-Smashing Protector
|
|
||||
+(http://www.trl.ibm.com/projects/security/ssp/).
|
|
||||
+This option is only available in ROCK Linux (and probably
|
|
||||
+some other distributions). It's not a standard GCC option.
|
|
||||
+
|
|
||||
@item -fexceptions |
|
||||
@opindex fexceptions |
|
||||
Enable exception handling. Generates extra code needed to propagate |
|
@ -1,54 +0,0 @@ |
|||||
# --- ROCK-COPYRIGHT-NOTE-BEGIN --- |
|
||||
# |
|
||||
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. |
|
||||
# Please add additional copyright information _after_ the line containing |
|
||||
# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by |
|
||||
# the ./scripts/Create-CopyPatch script. Do not edit this copyright text! |
|
||||
# |
|
||||
# ROCK Linux: rock-src/package/base/gcc/gcc33/protector-hotfix.diff |
|
||||
# ROCK Linux is Copyright (C) 1998 - 2006 Clifford Wolf |
|
||||
# |
|
||||
# This patch file is dual-licensed. It is available under the license the |
|
||||
# patched project is licensed under, as long as it is an OpenSource license |
|
||||
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms |
|
||||
# of the GNU General Public License as published by the Free Software |
|
||||
# Foundation; either version 2 of the License, or (at your option) any later |
|
||||
# version. |
|
||||
# |
|
||||
# --- ROCK-COPYRIGHT-NOTE-END --- |
|
||||
|
|
||||
--- ./protector.dif.orig 2005-12-12 18:08:37.000000000 +0100
|
|
||||
+++ ./protector.dif 2005-12-12 18:09:04.000000000 +0100
|
|
||||
@@ -573,24 +573,23 @@
|
|
||||
/* P comes after Q; combine P into Q. */ |
|
||||
q->size += p->size; |
|
||||
*************** put_reg_into_stack (function, reg, type, |
|
||||
-*** 1497,1503 ****
|
|
||||
- new = func->x_parm_reg_stack_loc[regno];
|
|
||||
+*** 1513,1518 ****
|
|
||||
|
|
||||
if (new == 0) |
|
||||
-! new = assign_stack_local_1 (decl_mode, GET_MODE_SIZE (decl_mode), 0, func);
|
|
||||
+! new = assign_stack_local_1 (decl_mode, GET_MODE_SIZE (decl_mode),
|
|
||||
+! consecutive_p ? -2 : 0, func);
|
|
||||
|
|
||||
PUT_CODE (reg, MEM); |
|
||||
- PUT_MODE (reg, decl_mode);
|
|
||||
---- 1512,1520 ----
|
|
||||
- new = func->x_parm_reg_stack_loc[regno];
|
|
||||
+--- 1513,1521 ----
|
|
||||
|
|
||||
if (new == 0) |
|
||||
! new = function ? |
|
||||
-! assign_stack_local_1 (decl_mode, GET_MODE_SIZE (decl_mode), 0, func):
|
|
||||
-! assign_stack_local_for_pseudo_reg (decl_mode, GET_MODE_SIZE (decl_mode), 0);
|
|
||||
+! assign_stack_local_1 (decl_mode, GET_MODE_SIZE (decl_mode),
|
|
||||
+! consecutive_p ? -2 : 0, func) :
|
|
||||
+! assign_stack_local_for_pseudo_reg (decl_mode, GET_MODE_SIZE (decl_mode),
|
|
||||
+! consecutive_p ? -2 : 0);
|
|
||||
|
|
||||
PUT_CODE (reg, MEM); |
|
||||
- PUT_MODE (reg, decl_mode);
|
|
||||
*************** instantiate_virtual_regs_1 (loc, object, |
|
||||
*** 3961,3967 **** |
|
||||
constant with that register. */ |
|