Annotation of gcc/README-bugs, revision 1.1.1.1

1.1       root        1: If you encounter a problem in GCC, what should you do?
                      2: 
                      3: You should send a bug report.
                      4: 
                      5: Here are some tips for how you can report problems in GCC effectively.
                      6: All of them follow from common sense together with the nature of the
                      7: purpose and the situation.
                      8: 
                      9: * It is absolutely vital that you tell me about even the smallest
                     10: change or departure from the standard sources and procedure.
                     11: 
                     12: Otherwise, you are not testing the same program that I asked you to
                     13: test.  Testing a different program is usually of no use whatever.  It
                     14: can even cause trouble if you fail to tell me that you tested some
                     15: other program instead of what I am about to release.  I might think
                     16: that GCC works, when in fact it has not even been tried, and might
                     17: have a glaring fault.
                     18: 
                     19: * Even changing the compilation options counts as a change in the
                     20: program.  The GCC sources specify which compilation options to use.
                     21: Some of them are specified in machine-specific configuration files.
                     22: They also give you ways to override this--but if you do, then you are
                     23: not testing what ordinary users will do.  Therefore, when pretesting,
                     24: it is vital to test with the default compilation options.
                     25: 
                     26: (Testing with a different set of options can be useful *in addition*,
                     27: but not *instead of* the default options.)
                     28: 
                     29: * The machine and system configuration files of GCC are parts of
                     30: GCC.  So when you test GCC, you need to do it with the
                     31: configuration files that come with GCC.
                     32: 
                     33: If GCC does not come with configuration files for a certain machine,
                     34: and you test it with configuration files that don't come with GCC,
                     35: this is effectively changing GCC.  Because the crucial fact about
                     36: the planned release is that, without changes, it doesn't work on that
                     37: machine.
                     38: 
                     39: To make GCC work on that machine, I would need to install new
                     40: configuration files.  That is not out of the question, since it is
                     41: safe--it certainly won't break any other machines that already work.
                     42: But you will have to rush me the legal papers to give the FSF
                     43: permission to use such a large piece of text.
                     44: 
                     45: * Look for recommendations for your system.
                     46: 
                     47: You can find these recommendations in the Installation node of the
                     48: manual, and in the file INSTALL.  (These two files have the same text.)
                     49: 
                     50: These files say which configuration name to use for your machine, so
                     51: use the ones that are recommended.  If you guess, you might guess
                     52: wrong and encounter spurious difficulties.  What's more, if you don't
                     53: follow the recommendations then you aren't helping to test that its
                     54: recommendations are valid.
                     55: 
                     56: These files may describe other things that you need to do to make GCC
                     57: work on your machine.  If so, you should follow these recommendations
                     58: also, for the same reason.
                     59: 
                     60: * Don't delay sending information.
                     61: 
                     62: When you test on a system and encounter no problems, please tell me
                     63: about it right away.  That way, I will know that someone has tested
                     64: GCC on that kind of system.
                     65: 
                     66: Please don't wait for several days "to see if it really works before
                     67: you say anything."  Tell me right away that GCC seems basically to
                     68: work; then, if you notice a problem a few days later, tell me
                     69: immediately about that when you see it.
                     70: 
                     71: It is okay if you double check things before reporting a problem, such
                     72: as to see if you can easily fix it.  But don't wait very long.  A good
                     73: rule to use in pretesting is always to tell me about every problem on
                     74: the same day you encounter it, even if that means you can't find a
                     75: solution before you report the problem.
                     76: 
                     77: I'd much rather hear about a problem today and a solution tomorrow
                     78: than get both of them tomorrow at the same time.
                     79: 
                     80: * Make each bug report self-contained.
                     81: 
                     82: If you refer back to another message, whether from you or from someone
                     83: else, then it will be necessary for anyone who wants to investigate
                     84: the bug to find the other message.  This may be difficult, it is
                     85: probably time-consuming.
                     86: 
                     87: To help me save time, simply copy the relevant parts of any previous
                     88: messages into your own bug report.
                     89: 
                     90: In particular, if I ask you for more information because a bug report
                     91: was incomplete, it is best to send me the *entire* collection of
                     92: relevant information, all together.  If you send just the additional
                     93: information, that makes me do extra work.  There is even a risk that
                     94: I won't remember what question you are sending me the answer to.
                     95: 
                     96: * Always be precise when talking about changes you have made.  Show
                     97: things rather than describing them.  Use exact filenames (relative to
                     98: the main directory of the distribution), not partial ones.  For
                     99: example, say "I changed Makefile" rather than "I changed the
                    100: makefile".  Instead of saying "I defined the MUMBLE macro", send a
                    101: diff.
                    102: 
                    103: * Always use `diff -c' to make diffs.  If you don't include context, it
                    104: may be hard for me to figure out where you propose to make the
                    105: changes.  So I might have to ignore your patch.
                    106: 
                    107: * When you write a fix, keep in mind that I can't install a change
                    108: that *might* break other systems without the risk that it will fail to
                    109: work and therefore require an additional cycle of pretesting.
                    110: 
                    111: People often suggest fixing a problem by changing machine-independent
                    112: files such as toplev.c to do something special that a particular
                    113: system needs.  Sometimes it is totally obvious that such changes would
                    114: break GCC for almost all users.  I can't possibly make a change like
                    115: that.  All I can do is send it back to you and ask you to find a fix
                    116: that is safe to install.
                    117: 
                    118: Sometimes people send fixes that *might* be an improvement in
                    119: general--but it is hard to be sure of this.  I can install such
                    120: changes some of the time, but not during pretest, when I am trying to
                    121: get a new version to work reliably as quickly as possible.
                    122: 
                    123: The safest changes for me to install are changes to the configuration
                    124: files for a particular machine.  At least I know those can't create
                    125: bugs on other machines.
                    126: 
                    127: * Don't try changing GCC unless it fails to work if you don't change it.
                    128: 
                    129: * In some cases, if you don't follow these guidelines, your
                    130: information might still be useful, but I might have to do more work to
                    131: make use of it.  Unfortunately, I am so far behind in my work that I
                    132: just can't get the job done unless you help me to do it efficiently.
                    133: 
                    134: Local Variables:
                    135: mode: text
                    136: End:

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.