This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug driver/70192] -fno-pic doesn't work with --enable-default-pie
- From: "hjl at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 17 Mar 2016 15:12:07 +0000
- Subject: [Bug driver/70192] -fno-pic doesn't work with --enable-default-pie
- Auto-submitted: auto-generated
- References: <bug-70192-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70192
--- Comment #9 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> ---
Author: hjl
Date: Thu Mar 17 15:11:35 2016
New Revision: 234295
URL: https://gcc.gnu.org/viewcvs?rev=234295&root=gcc&view=rev
Log:
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.
Added:
trunk/gcc/testsuite/gcc.dg/pic-1.c
trunk/gcc/testsuite/gcc.dg/pic-2.c
trunk/gcc/testsuite/gcc.dg/pic-3.c
trunk/gcc/testsuite/gcc.dg/pic-4.c
trunk/gcc/testsuite/gcc.dg/pie-1.c
trunk/gcc/testsuite/gcc.dg/pie-2.c
trunk/gcc/testsuite/gcc.dg/pie-3.c
trunk/gcc/testsuite/gcc.dg/pie-4.c
trunk/gcc/testsuite/gcc.dg/pie-5.c
trunk/gcc/testsuite/gcc.dg/pie-6.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/common.opt
trunk/gcc/opts.c
trunk/gcc/testsuite/ChangeLog