On 11/18/13 13:05, Marcos Díaz wrote:
Hi,
the attached patch adds a new attribute and option flag to control
when to do stack protection.
The new attribute (stack_protect) affects the behavior of gcc by
forcing the stack protection of the function marked with the attribute
if any of the options -fstack-protector, -fstack-protector-strong or
-fstack-protector-explicit(new) are set.
If the new option (-fstack-protector-explicit) is set only those
functions with the attribute stack_protect will have stack protection.
The stack re-ordering of the variables depends on the option set,
currently if flag -fstack-protector is set only char arrays are
reordered in the stack, whereas if flag -fstack-protector-strong or
-fstack-protector-explicit is set then char arrays and other arrays
are ordered first in the stack.
About this reordering of the non char arrays, shouldn't all to-be
protected functions have the full re-ordering? If not, for
completeness, I should make that new flag -fstack-protector-explicit
not to order the non-char arrays, and create a new -strong
counterpart, namely -fstack-protector-explicit-strong which does.
Additionally, I think that the behavior of the flag
-fstack-protector-strong lacked the re-ordering of non char arrays
(named phase 2) so I added the reordering also for such flag.
Current tests pass after applying this patch, plus the tests specially added.
Please commit it for me if OK since I don't have write access.
Changelog:
2013-11-18 Marcos Diaz <marcos.d...@tallertechnologies.com>
[ ... ]
Before doing any significant review on this work I have to ask, do you
have a copyright assignment on file with the FSF and any necessary
paperwork from your employer?
Jeff