PCH and exec-shield...

Mark Mitchell mark@codesourcery.com
Tue Mar 16 04:34:00 GMT 2004


Mike Stump wrote:

> On Monday, March 8, 2004, at 01:04 PM, Mark Mitchell wrote:
> 
>> There is a more general approach used by other PCH implementations 
>> which involves walking the loaded PCH and swizzling pointers.  That 
>> would be a superior approach as it would make PCH more robust on all 
>> platforms, and would permit people to use exec-shield randomization 
>> (and similar features on other operating systems) with PCH.
>>
>> Until that is implemented, many people will probably complain that PCH 
>> is broken.
> 
> 
> Using a feature that serves no purpose other than to slow down 
> compilations can reasonably be considered a bug.  By having PCH swizzle 
> on load, we permit the introductions of bugs into the compiler.  This is 
> bad.  This is why it hasn't been done.
> 
> For robustness we should fall back to the normal .h file and pretend the 
> PCH file doesn't exist.  I think we might just give a sorry now, that 
> might be wrong.

I agree that falling back to the normal .h file would be much better 
than giving an error message.

But, there is good evidence (EDG's implementation) that swizzling is 
often much faster than reparsing.  And, on some systems it's the only 
option; the system does not reliably place things at the same addresses 
on multiple executions.  An approach that tries to put things at the 
same addresses, but then falls back to swizzling if necessary, would 
provide a better user experience than your approach, all other things 
being equal.

-- 
Mark Mitchell
CodeSourcery, LLC
mark@codesourcery.com



More information about the Gcc mailing list