Annotation of gcc/README-bugs, revision 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.