diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2016-03-17 15:11:35 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2016-03-17 08:11:35 -0700 |
commit | b57e6e182cc596dd2e346b5799b57014ced47229 (patch) | |
tree | 17ba6d251c6be7998bf2b5fdac8d60ecdc3b210c /gcc/common.opt | |
parent | 91106e8435c68963f7f0a8e6bf45acb0b2a432ab (diff) | |
download | gcc-b57e6e182cc596dd2e346b5799b57014ced47229.tar.gz |
Properly set flag_pie and flag_pic
We can't set flag_pie to the default when flag_pic == 0, which may be
set by -fno-pic or -fno-PIC, since the default value of flag_pie is
non-zero when GCC is configured with --enable-default-pie. We need
to initialize flag_pic to -1 so that we can tell if -fpic, -fPIC,
-fno-pic or -fno-PIC is used.
Since Darwin defaults to PIC (__PIC__ == 2) and the PIC setting can't
be changed, skip tests of default __PIC__ and __PIE__ setting for
*-*-darwin* targets.
gcc/
PR driver/70192
* opts.c (finish_options): Don't set flag_pie to the default if
-fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
if it is -1.
gcc/testsuite/
PR driver/70192
* gcc.dg/pic-1.c: New test.
* gcc.dg/pic-2.c: Likewise.
* gcc.dg/pic-3.c: Likewise.
* gcc.dg/pic-4.c: Likewise.
* gcc.dg/pie-1.c: Likewise.
* gcc.dg/pie-2.c: Likewise.
* gcc.dg/pie-3.c: Likewise.
* gcc.dg/pie-4.c: Likewise.
* gcc.dg/pie-5.c: Likewise.
* gcc.dg/pie-6.c: Likewise.
From-SVN: r234295
Diffstat (limited to 'gcc/common.opt')
-rw-r--r-- | gcc/common.opt | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/common.opt b/gcc/common.opt index 1c8cc8ede8f..67048db7c9b 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -1840,7 +1840,7 @@ Common Report Var(flag_peephole2) Optimization Enable an RTL peephole pass before sched2. fPIC -Common Report Var(flag_pic,2) Negative(fPIE) +Common Report Var(flag_pic,2) Negative(fPIE) Init(-1) Generate position-independent code if possible (large mode). fPIE @@ -1848,7 +1848,7 @@ Common Report Var(flag_pie,2) Negative(fpic) Init(-1) Generate position-independent code for executables if possible (large mode). fpic -Common Report Var(flag_pic,1) Negative(fpie) +Common Report Var(flag_pic,1) Negative(fpie) Init(-1) Generate position-independent code if possible (small mode). fpie |