summaryrefslogtreecommitdiff
path: root/gnu/egcs/gcc
AgeCommit message (Collapse)Author
2003-10-07toplev.c, flags.h: add -fstack-protector-all option to generate protection ↵Hiroaki Etoh
instruments for every functions. ok pvalchev@
2003-10-07flag_stack_protection enables to genereate protecting instruments for every ↵Hiroaki Etoh
functions. ok pvalchev@
2003-10-07rtl_epilogue: fix pp warning message trouble at -Wmissing-noreturn.Hiroaki Etoh
ok pvalchev@
2003-10-07copy_args_for_protection: fix the problem that move_arg_location may corrupt ↵Hiroaki Etoh
the contents of DECL_RTL (parms). ok pvalchev@
2003-10-06This is one of these eerie moments when you realize that a significant partMiod Vallat
of your beliefs are wrong. In this case, trust in gcc. When computing the address of a field in a structure on stack, and: - the offset of the structure relative to the stack pointer and - the offset of the field relative to the structure have no _bits_ in common (for example, accessing field at structure(8) with the structure at sp(64)), triggers a gcc optimization in the following improvement: (plus (plus (frame_pointer offset_for_structure) offset_for_field)) changing into (plus (frame_pointer direct_offset_for_field)) In the aforementioned "no bits in common" case, gcc will use (or (plus frame_pointer offset_for_structure) offset_for_field) which is not necessarily correct, depending on the value of the frame pointer... Checking generated assembly code for a kernel compilation pointed out that ALL architectures were affected by this bug (some, such as m88k, alpha and sparc64, being much more affected than others, such as vax and m68k). Our first move was to backport a fix for this found in the gcc 3.x branch, however it relies upon several microbugfixes scattered around, and produced a misbehaving kernel on one particular machine. So what goes in with this commit is just a conservative fix which disables this particular "bitwise or is fun" optimization. Problem discovery and analysis by yours truly. Fix by etoh@ and I. Tested on all supported architectures by various people, including deraadt@, henning@, mickey@, naddy@ and I.
2003-10-01Introduce a new target switch, -mmemcpy (and -mno-memcpy).Miod Vallat
This switch forces block copy operations to always fallback to memcpy() when it is not done by inline load and stores, rather than using the m88k movstr* functions found in libgcc. The name of this option has been choosen after the mips back end, which has a similar option. Right now, this is a no-op since these functions are disabled due to (yet) another gcc bug; but this will help building standalone code, such as the kernel and boot blocks, without having to link against libgcc.
2003-09-05Stop the bounds checker warning on a bound of 0, so now it only triggersAnil Madhavapeddy
on negative values. Suppresses some warnings on code which is useless but legal. deraadt@ ok
2003-09-03- use displays and indentJason McIntyre
- use .Sq
2003-09-03- new sentence, new lineJason McIntyre
- section reorder - use .Sq instead of `' - kill whitespace - typos
2003-09-02A slightly reworked version of the "default to -fno-ident" change, whichMiod Vallat
improves diffability against stock gcc sources, for us alzheimer-impaired people. Requested by deraadt@ (no functional change)
2003-08-26stop dumping "GCC: (GNU) 2.95.3 20010125 (prerelease, propolice)" intoTed Unangst
every object by default. ok avsm@ henning@ marc@
2003-08-21A port of the g++ bugfix found atMiod Vallat
http://gcc.gnu.org/ml/gcc-bugs/1999-08n/msg00621.html and described in the related thread. This particular problem used to not be triggered (or not often), but the use of propolice affects the instruction flow, and started triggering it more often, for example in Qt's qmenubar class. Ironically, running with /etc/malloc.conf->AJ would neuter the bug in this case... Problem tracked by espie@ and etoh@, tested by various, ok deraadt@
2003-08-21fix symbol name error in mcount functionality in a.out->ELF transition.Dale Rahn
This changes the real definition to __mcount, but with a weak mcount for compat. On the next major bump the weak alias should be removed. Without this diff the compiler symbol mcount conflicts with the user mcount() function.
2003-08-19typo in comment, compiler vs. complierBrad Smith
2003-08-09fix for mcount call to allow .text sizes larger than 512k; epsie@ okMichael Shalayeff
2003-08-08On some architectures, being too optimistic in preserve_subexpressions_p(),Miod Vallat
for example when -fexpensive-optimizations is used, sometimes causes incorrect code sequences to be generated. As -fexpensive-optimizations is implied by -O2, this means we are potentially affected by this in numerous places... so add a specific workaround to nullify expensizve-optimizations in preserve_subexpressions_p() on a known-to-be-affected basis. So far, only alpha, powerpc, m88k, sparc and sparc64 are affected. Problem tracked down by henning@ - analysis by etoh@ and I - ugly workaround by me - ok deraadt@
2003-08-07Disable the so-called optimized memcpy functions for small (less than a fewMiod Vallat
hundred bytes) block copies. While the functions themselves are probably optimal or not far from it, the code responsible for their invocation is not, and has a bad tendency of miscomputing the destination buffer address, especially when optimization is used. This is a temporary measure, these functions will be reenabled once a good fix is ready. ok deraadt@ espie@
2003-08-06Check for and skip variable-length arrays while bounds checking insteadAnil Madhavapeddy
of erroring out in a later sanity check. Error noticed by jolan@ This only affects the -Wbounded case
2003-08-01A working gcc 2.95/m88k compiler, for some low standard value of working.Miod Vallat
Configuration settings mostly borrowed from the former gcc 2.8 configuration. A few typos and fixes backported from gcc 3.3, and a hell lot of fixes from my fingertips. This is enough to yield a compiler which will produce correct code at -O0. Optimization is slightly broken for some constructs, and more fixes are in the pipeline. ok deraadt@
2003-07-29change_arg_use_in_operand: convert "set () (incoming_args)" to "set () (plus ↵Hiroaki Etoh
(vfp const))". The incoming_args alone is derived from the address operation of the 1st function argument. This fixes to protect the 1st function argument from buffer overflow. ok pvalcehv@
2003-07-29push_frame_in_args: fix netpbm-alpha problem, changes the memory corruption ↵Hiroaki Etoh
at modifying the argument information. ok pvalchev@
2003-07-29rtl_epilogue: convert "set () (incoming_args)" to "set () (plus (vfp const))".Hiroaki Etoh
The incoming_args alone is derived from the address operation of the 1st function argument. This fixes to protect the 1st function argument from buffer overflow. ok pvalchev@
2003-07-25kill a bit of whitespace at EOL;Jason McIntyre
2003-07-25New format attribute __kprintf__, which understands the special kernelAnil Madhavapeddy
format args (%r,%z,%:,%b). A step towards reenabling -Wformat in the kernel again ... deraadt@ ok
2003-07-22openbsd64 is a 64 BIT (not but) v9 processor; pointed out by millert.Jason Wright
2003-07-22now that gcc generates "correct" calls to the quad emulation library andJason Wright
the libc functions are in place, remove HARD_QUAD from sparc64. (If you actually want it, for some demented reason, look at -mhard-quad-float, void where prohibited).
2003-07-22the version of gcc in the tree doesn't generate the correct callingJason Wright
convention for the _Qp_* functions. Rather than fix it, rely on the fact that it does produce correct calls to the _Q_* functions and provide a shim in libc (already committed) to deal with it.
2003-07-11don't hardcode the default linker emulation type.Brad Smith
ok drahn@
2003-06-28remove a superfulous argument to a sorry() callAnil Madhavapeddy
deraadt@ ok
2003-06-26document the new attribute __bounded__Anil Madhavapeddy
with mdoc help from jmc@, deraadt@ ok
2003-06-26Introduce a simple static checker for making sure that the boundsAnil Madhavapeddy
length passed to common functions such as strlcpy/strlcat match the real length of the buffer. It also checks to make sure that the bound length was not incorrectly derived from a sizeof(pointer) operation. Functions must be marked with the new attribute __bounded__, and warnings are turned on by -Wbounded. Specifying -Wformat also enables bounds checking for scanf(3) bounds to '%s' format variables. -Wall now turns on -Wbounded also. The checking is pretty limited right now to constant parameters, and the buffers must be statically declared, and not inside a record type. This simple checking still found hundreds of bugs around the ports tree though, and there have been no false positive warnings. 10x to niklas@, Richard Sharp and David Scott {rich,dave}@recoil.org for compiler advice. deraadt@ ok, miod@ tested on his collection of hardware You need to recompile gcc now if source upgrading in -current before doing a make world.
2003-06-20To keep the frame pointer addressing for stack_protection,Hiroaki Etoh
skip the canonicalization; (minus A (plus B C)) to (minus (minus A B) C) where B is frame pointer and C is frame offset. ok pvalchev@
2003-06-20To keep the frame pointer addressing for stack_protection, skip the ↵Hiroaki Etoh
following RTL conversion; (plus (plus fp offset) const) to (plus (plus fp const) offset). ok pvalchev@
2003-06-15fix last O_CREAT without mode; otto@drijf.netTheo de Raadt
2003-06-14remove some trailing whitespace;Jason McIntyre
2003-06-13add __LP64__ and _LP64 CPP predefines for systems using LP64.Brad Smith
pvalchev@ fgsch@ millert@ ok
2003-06-11support to arm. ok deraadt@Kevin Lo
2003-06-04Clearer explanation of -fno-builtin-<function>; espie@ OKTodd C. Miller
2003-06-04document -fno-builtin-<function>, ok miod@Marc Espie
2003-06-04Recgonize -fno-builtin-<function>Marc Espie
okay tdeval, fries, tdeval, millert...
2003-06-02Remove the advertising clause in the UCB license which BerkeleyTodd C. Miller
rescinded 22 July 1999. Proofed by myself and Theo.
2003-05-08Don't inline strcpy. since it's evil anyway. This makes itBob Beck
easier to find in object files without worrying about whether or not -fno-builtin was used in building. ok itojun@, tedu@, anil@, henning@, etc...
2003-04-28pull in string.hTheo de Raadt
2003-04-17Change gcc to generate ELF code for i386.Dale Rahn
2003-04-14standalone/stand alone -> stand-alone;Jason McIntyre
from NetBSD (Igor Sobrado); httpd stuff passed to apache people; ok millert@
2003-04-09fix the readonly objects placement into thee .rodata proper; espie@ okMichael Shalayeff
2003-04-09xmalloc called with the wrong sizeof in sentinel attribute setupAnil Madhavapeddy
espie@ ok
2003-04-08fix another non-POSIX chownTodd C. Miller
2003-03-28PIC does not mix well w/ nopic (yet); espie@ okMichael Shalayeff
2003-03-24Recognize -soname foo, so that ld can properly ignore it.Marc Espie
ok millert@, pval@.