FIXINCLUDES OPERATION
=====================
-See also: http://autogen.SourceForge.net/fixincludes
+See also: http://autogen.SourceForge.net/fixinc.html
The set of fixes required was distilled down to just the data required
to specify what needed to happen for each fix. Those data were edited
-into a file named gcc/fixinc/inclhack.def. A program called
-AutoGen (http://autogen.SourceForge.net, ver 4.x) uses these definitions
-to instantiate several different templates (gcc/fixinc/*.tpl) that then
-produces a fixincludes replacement shell script (inclhack.sh), a
-replacement binary program (fixincl.x).
-
-If there is no special purpose script, then mkfixinc.sh will try to
-compile, link and execute the fixincl program. Otherwise, it will
-install and use the current fixinc.* for that system instead.
-Also, on certain platforms (viz. those that do not have functional
-bidirectional pipes), the fixincl program is split into two.
-This should only concern you on DOS and BeOS.
+into a file named gcc/fixinc/inclhack.def. A program called AutoGen
+(http://autogen.SourceForge.net) uses these definitions to instantiate
+several different templates that then produces code for a fixinclude
+program (fixincl.x) and a shell script to test its functioning. On
+certain platforms (viz. those that do not have functional bidirectional
+pipes), the fixincl program is split into two. This should only concern
+you on DOS and BeOS.
Regards,
Bruce <bkorb@gnu.org>
information to gcc-bugs@gcc.gnu.org, gcc-patches@gcc.gnu.org and,
please, to me: bkorb@gnu.org.
-Once you have made your fix, it is necessary to have at least one
-test for it. Specify the test with a "test_text" entry. Run
-"make check" in the fixinc directory to verify both that your fix
-works (by correctly altering your test text) and that your fix
-does not suppress the work of other fixes. You should readily
-be able to verify this as the "make check" process will print out
-context diffs of fixed files. If everything looks fine, you can
-either use the diffs for a patch to the baseline files, or simply
-copy the result files (in the "tests/res/" subdirectory) into the
-baseline directory ("tests/base").
-
-Here are the rules for making fixes in the inclhack.def file:
+To make your fix, you will need to do several things:
+
+1. Obtain access to the AutoGen program on some platform. It does
+ not have to be your build platform, but it is more convenient.
+
+2. Edit "inclhack.def" to reflect the changes you need to make.
+ See below for information on how to make those changes.
+
+3. Run the "genfixes" shell script to produce a new copy of
+ the "fixincl.x" file.
+
+4. Rebuild the compiler and check the header causing the issue.
+ Make sure it is now properly handled. Add tests to the
+ "test_text" entry(ies) that validate your fix. This will
+ help ensure that future fixes won't negate your work.
+
+5. Go into the fixinc build directory and type, "make check".
+ You are guaranteed to have issues printed out as a result.
+ Look at the diffs produced. Make sure you have not clobbered
+ the proper functioning of a different fix. Make sure your
+ fix is properly tested and it does what it is supposed to do.
+
+6. Now that you have the right things happening, syncronize the
+ $(srcdir)/tests/base directory with the $(builddir)/tests/res
+ directory. The output of "make check" will be some diffs that
+ should give you some hints about what to do.
+
+7. Rerun "make check" and verify that there are no issues left.
+
+
+MAKING CHANGES TO INCLHACK.DEF
+==============================
0. If you are not the fixincludes maintainer, please send that
person email about any changes you may want to make. Thanks!