blocking incompatible flags

Peter S. Mazinger ps.m@gmx.net
Mon Nov 15 09:31:00 GMT 2004


Hello!

Proposed blocking flags to add to cc1_options:
as discussed earlier (related to pie patches) this is my new proposed 
version.

I know there were objections to mix compile time flags w/ linker flags
There are 2 ways out of this:

1. leave them out (fno-PIC|fno-pic|fPIE|fpie)
2. those who want to choose 1. before deciding so, please reconfigure your 
own specs file by adding
%{shared:-fPIE} (or %{shared: -fno-PIC} to cc1 and rebuild your system
If you were right, then all the builds have to succeed (and will, if the 
libs are built all the time in 2 steps, first compiling and after that 
linking, then the 2 flags won't disturb each other)
Successful build means libraries w/o text relocations.

The above combination will produce faulty libs, if compiling and linking 
is done in one step.

If you don't end up w/ text relocations in the libs then I was wrong and 
the compiler flags do not have to be added.

No ChangeLog entry until I know what will really be added.

Please CC to me

Thanks, Peter

-- 
Peter S. Mazinger <ps dot m at gmx dot net>           ID: 0xA5F059F2
Key fingerprint = 92A4 31E1 56BC 3D5A 2D08  BB6E C389 975E A5F0 59F2
-------------- next part --------------
--- gcc/gcc.c.mps	Sun Nov 14 21:10:35 2004
+++ gcc/gcc.c	Sun Nov 14 21:43:17 2004
@@ -794,6 +794,8 @@
 /* NB: This is shared amongst all front-ends.  */
 static const char *cc1_options =
 "%{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\
+ %{shared:%{static|pie|fPIE|fpie|fno-PIC|fno-pic:%e-shared and -static|pie|fPIE|fpie|fno-PIC|fno-pic are incompatible}}\
+ %{pie:%{static|pg|p|profile:%e-pie and -static|pg|p|profile are incompatible}}\
  %1 %{!Q:-quiet} -dumpbase %B %{d*} %{m*} %{a*}\
  %{c|S:%{o*:-auxbase-strip %*}%{!o*:-auxbase %b}}%{!c:%{!S:-auxbase %b}}\
  %{g*} %{O*} %{W*&pedantic*} %{w} %{std*&ansi}\


More information about the Gcc-patches mailing list