diff options
author | Iain Sandoe <iains@gcc.gnu.org> | 2011-06-25 11:17:35 +0000 |
---|---|---|
committer | Iain Sandoe <iains@gcc.gnu.org> | 2011-06-25 11:17:35 +0000 |
commit | 0e9197f57271bdf12e1e55ccdd025b7c8b415c0d (patch) | |
tree | 8fad57787ab5621d328ad41358f3da858a97b716 /gcc | |
parent | 534611994759f9a7c74d00ae90bc3d49c8e34340 (diff) | |
download | gcc-0e9197f57271bdf12e1e55ccdd025b7c8b415c0d.zip gcc-0e9197f57271bdf12e1e55ccdd025b7c8b415c0d.tar.gz gcc-0e9197f57271bdf12e1e55ccdd025b7c8b415c0d.tar.bz2 |
re PR driver/49371 (xgcc: error: unrecognized option '-pie' on *-apple-darwin*)
PR driver/49371
* config/darwin.c (darwin_override_options): Improve warning when
mdynamic-no-pic is given together with fPIC/fpic, also warn when it
is given with fpie/fPIE.
* config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
* config/darwin9.h (PIE_SPEC): New.
From-SVN: r175397
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config/darwin.c | 4 | ||||
-rw-r--r-- | gcc/config/darwin.h | 4 | ||||
-rw-r--r-- | gcc/config/darwin9.h | 6 |
4 files changed, 20 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 71179bf..861cab6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2011-06-25 Iain Sandoe <iains@gcc.gnu.org> + + PR driver/49371 + * config/darwin.c (darwin_override_options): Improve warning when + mdynamic-no-pic is given together with fPIC/fpic, also warn when it + is given with fpie/fPIE. + * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC. + * config/darwin9.h (PIE_SPEC): New. 2011-06-25 Basile Starynkevitch <basile@starynkevitch.net> diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c index 5e358b1..b47e806 100644 --- a/gcc/config/darwin.c +++ b/gcc/config/darwin.c @@ -2932,7 +2932,9 @@ darwin_override_options (void) if (MACHO_DYNAMIC_NO_PIC_P) { if (flag_pic) - warning (0, "-mdynamic-no-pic overrides -fpic or -fPIC"); + warning_at (UNKNOWN_LOCATION, 0, + "%<-mdynamic-no-pic%> overrides %<-fpic%>, %<-fPIC%>," + " %<-fpie%> or %<-fPIE%>"); flag_pic = 0; } else if (flag_pic == 1) diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h index 41c0d74..762a460 100644 --- a/gcc/config/darwin.h +++ b/gcc/config/darwin.h @@ -226,6 +226,8 @@ extern GTY(()) int darwin_ms_struct; #define LINK_SYSROOT_SPEC "%{isysroot*:-syslibroot %*}" #endif +#define PIE_SPEC "%{fpie|pie|fPIE:}" + /* Please keep the random linker options in alphabetical order (modulo 'Z' and 'no' prefixes). Note that options taking arguments may appear multiple times on a command line with different arguments each time, @@ -290,7 +292,7 @@ extern GTY(()) int darwin_ms_struct; %:version-compare(< 10.5 mmacosx-version-min= -multiply_defined) \ %:version-compare(< 10.5 mmacosx-version-min= suppress)}} \ %{Zmultiplydefinedunused*:-multiply_defined_unused %*} \ - %{fpie:-pie} \ + " PIE_SPEC " \ %{prebind} %{noprebind} %{nofixprebinding} %{prebind_all_twolevel_modules} \ %{read_only_relocs} \ %{sectcreate*} %{sectorder*} %{seg1addr*} %{segprot*} \ diff --git a/gcc/config/darwin9.h b/gcc/config/darwin9.h index bb62dd4..2e835c3 100644 --- a/gcc/config/darwin9.h +++ b/gcc/config/darwin9.h @@ -35,6 +35,12 @@ along with GCC; see the file COPYING3. If not see /* Tell collect2 to run dsymutil for us as necessary. */ #define COLLECT_RUN_DSYMUTIL 1 +#undef PIE_SPEC +#define PIE_SPEC \ + "%{fpie|pie|fPIE: \ + %{mdynamic-no-pic: %n'-mdynamic-no-pic' overrides '-pie', '-fpie' or '-fPIE'; \ + :-pie}}" + #undef ASM_OUTPUT_ALIGNED_COMMON #define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \ do { \ |