1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
We disable ssp on -nostdlib and -ffreestanding as we did on older gcc
and change the buffer size.
--- a/gcc/c-family/c-opts.c
+++ b/gcc/c-family/c-opts.c
@@ -450,7 +450,14 @@
case OPT_ffreestanding:
value = !value;
+ if (global_options.x_flag_stack_protect == -1)
+ global_options.x_flag_stack_protect = 0;
/* Fall through. */
+
+ case OPT_nostdlib:
+ if (global_options.x_flag_stack_protect == -1)
+ global_options.x_flag_stack_protect = 0;
+
case OPT_fhosted:
flag_hosted = value;
flag_no_builtin = !value;
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -1647,6 +1647,10 @@ nostdinc++
C++ ObjC++
Do not search standard system include directories for C++.
+nostdlib
+C ObjC C++ ObjC++
+; Documented in common.opt
+
o
C ObjC C++ ObjC++ Joined Separate
; Documented in common.opt
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -1145,6 +1145,7 @@
%{-help=*:--help=%*}\
%{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
%{fsyntax-only:-o %j} %{-param*}\
+ %{nostdlib:-nostdlib}\
%{coverage:-fprofile-arcs -ftest-coverage}\
%{fprofile-arcs|fprofile-generate*|coverage:\
%{!fprofile-update=single:\
--- a/gcc/params.def
+++ b/gcc/params.def
@@ -673,7 +673,7 @@ DEFPARAM (PARAM_INTEGER_SHARE_LIMIT,
DEFPARAM (PARAM_SSP_BUFFER_SIZE,
"ssp-buffer-size",
"The lower bound for a buffer to be considered for stack smashing protection.",
- 8, 1, 0)
+ 4, 1, 0)
DEFPARAM (PARAM_MIN_SIZE_FOR_STACK_SHARING,
"min-size-for-stack-sharing",
|