This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Natural alignment for 64-bit Darwin


Joseph S. Myers wrote:

On Tue, 22 Feb 2005, Stan Shebs wrote:


I think users would really like GCC to warn them in general
about ABI-changing options; whenever I talk to them, they


As far as I know, the general policy is that GCC does warn about ABI-changing options - in the documentation for those options in the manual. If you find such an option without an @strong{Warning:} note in the manual, treat this as a bug in the manual which should be fixed.


And in fact the ppc -malign-* options don't have a warning in
the manual.

Also, adding additional caveats to the manual now doesn't do
anything for existing projects that have the offending -m flags
embedded in makefiles and configure scripts. Maybe you do this,
but most people I know don't cross-check the latest manual
against every flag wired into every source tarball they download.

are always unsure about what is safe to fool with and what
is not - one of those "snake pit in the middle of the living
room floor" situations that GCC is infamous for.


If the users are fooling with options, I hope it's on the basis of reading the description of the options in the manual rather than randomly making up -mrandom-string-of-words and seeing if it's accepted. If what they are reading to find the options is --help output, perhaps the help strings need annotating to mark ABI-changing options clearly, but I'd hope they read the proper documentation of the options.


I'm pretty sure that our users are intelligent enough not to make
up random strings - but when the code quality sucks, they will
start going through the manual and trying every option that
doesn't actually say "touch this and die", then make a second
pass with those options too, if the first pass didn't help much.

Many of the option descriptions are too terse for non-compiler
writers to interpret accurately; "changes ABI" could mean anything
from "causes inaccuracy in the last digit of a long double multiply
of NaNs" to "deletes your files and steals your lunch money". But
you can't just fall back to always giving dire warnings; if a user
tries it and it works, then that person will no longer place much
credence in any of the manual's caveats.

In the particular case of 64-bit Darwin, the effect of the alignment
change is to go from the one extreme of "matters so infrequently
that we didn't even mention it" to "plan to spend all day debugging",
so it seemed friendly and helpful to go to a little extra trouble to
call their attention to the situation.

Stan


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]