]>
Commit | Line | Data |
---|---|---|
87fe2d9d FF |
1 | GDB SNAPSHOT SYSTEM |
2 | (general info) | |
838a1ac1 | 3 | Updated 5/6/93 |
87fe2d9d FF |
4 | |
5 | WHAT ARE GDB SNAPSHOTS | |
838a1ac1 | 6 | ---------------------- |
87fe2d9d FF |
7 | |
8 | Snapshots are an "image" of the main GDB development tree, captured at a | |
9 | particular random instant in time. When you use the snapshots, you should | |
10 | be able to maintain a local copy of GDB that is no more than one day older | |
11 | than the official source tree used by the GDB maintainers. | |
12 | ||
13 | The primary purpose of providing snapshots is to widen the group of | |
14 | motivated developers that would like to help test, debug, and enhance GDB, | |
15 | by providing you with access to the "latest and greatest" source. | |
16 | This has several advantages, and several disadvantages. | |
17 | ||
18 | First the advantages: | |
19 | ||
20 | o Once we have a large base of motivated testers using the snapshots, | |
21 | this should provide good coverage across all currently supported | |
22 | GDB hosts and targets. If a new bug is introduced in GDB due to | |
23 | fixing another bug or ongoing development, it should become | |
24 | obvious much more quickly and get fixed before the next general | |
25 | net release. This should help to reduce the chances of GDB being | |
26 | released to the general public with a major bug that went unnoticed | |
27 | during the release cycle testing because they are machine dependent. | |
28 | We hope to greatly improve GDB's stability and reliability by | |
29 | involving more people and more execution environments in the | |
30 | prerelease testing. | |
31 | ||
32 | o With access to the latest source, any diffs that you send to fix | |
33 | bugs or add new features should be much easier for the GDB team | |
34 | to merge into the official source base (after suitable review | |
35 | of course). This encourages us to merge your changes quicker, | |
36 | while they are still "fresh". | |
37 | ||
38 | o Once your diffs are merged, you can obtain a new copy of GDB | |
39 | containing your changes almost immediately. Thus you do not | |
40 | have to maintain local copies of your changes for any longer | |
41 | than it takes to get them merged into the official source base. | |
42 | This encourages you to send in changes quicker. | |
43 | ||
44 | And the disadvantages: | |
45 | ||
46 | o The snapshot you get will be largely untested and of unknown quality. | |
47 | It may fail to configure or compile. It may have serious bugs. | |
48 | You should always keep a copy of the last known working version | |
49 | before updating to the current snapshot, or at least be able to | |
50 | regenerate a working version if the latest snapshot is unusable | |
51 | in your environment for some reason. | |
52 | ||
53 | If a production version of GDB has a bug and a snapshot has the fix, | |
54 | and you care about stability, you should put only the fix for that | |
55 | particular problem into your production version. Of course, if you | |
56 | are eager to test GDB, you can use the snapshot versions in your | |
57 | daily work, but users who have not been consulted about whether they | |
58 | feel like testing GDB should generally have something which is at | |
59 | least as bug free as the last released version. | |
60 | ||
61 | o Providing timely response to your questions, bug reports, and | |
62 | submitted patches will require the GDB development team to allocate | |
63 | time from an already thin time budget. Please try to help us make | |
64 | this time as productive as possible. See the section below about | |
65 | how to submit changes. | |
66 | ||
67 | ||
68 | HOW TO GET THE SNAPSHOTS | |
838a1ac1 | 69 | ------------------------ |
87fe2d9d FF |
70 | |
71 | The current plan is to provide a full snapshot once weekly, and incremental | |
72 | diffs on a daily basis. Each daily diff will be relative to the source | |
73 | tree for the previous day after applying all incremental diffs to date. | |
74 | ||
75 | The files will be available via anonymous ftp from ftp.cygnus.com, in | |
76 | directory pub/gdb, and should look something like: | |
77 | ||
78 | gdb-930401.tar.z | |
79 | gdb-930401-930402.diff.z | |
80 | gdb-930402-930403.diff.z | |
81 | gdb-930403-930404.diff.z | |
82 | . | |
83 | . | |
84 | . | |
85 | ||
86 | At some point, the files should automatically appear during the evening | |
87 | as a result of an automatically run process each evening. For the moment | |
88 | however, the process will be manually run by one of the gdb maintainers | |
89 | and the appropriate files moved to the ftp area at some convenient point | |
90 | during the day. | |
91 | ||
92 | Note that the current plan is to provide gzip compressed files only, on the | |
93 | theory that serious GDB testers and developers should have no problem | |
94 | acquiring and installing a copy of GNU gzip. We may revisit this issue if | |
95 | it turns out to be a problem. You can ftp GNU gzip from prep.ai.mit.edu | |
96 | in directory pub/gnu. | |
97 | ||
98 | Also, as the gcc developers did with their gcc snapshot system, even though | |
99 | we will make the snapshots available on a publically accessible ftp area, | |
100 | we ask that recipients not widely publicise their availability. The motivation | |
101 | for this request is not to hoard them, but to avoid the situation where | |
102 | the general GDB user base naively attempts to use the snapshots, has trouble | |
103 | with them, complains publically, and the reputation of GDB declines because | |
104 | of a perception of instability or lack of quality control. | |
105 | ||
106 | ||
107 | GDB TEST SUITE | |
838a1ac1 | 108 | -------------- |
87fe2d9d FF |
109 | |
110 | A test suite is distributed as an integral part of the snapshots. However, | |
111 | to use it you will need to get a copy of the dejagnu testing framework. | |
112 | Snapshots of dejagnu are available alongside the GDB snapshots, using | |
113 | the same naming conventions as the GDB snapshots. Once you have installed | |
114 | the dejagnu framework, a simple "make check" in the GDB directory should | |
115 | be sufficient to run the tests. | |
116 | ||
117 | Note that the test suite is still in its infancy. The test framework | |
118 | itself might not install on your system if you have an environment that | |
119 | is not similar to one that the GDB developers already use. The tests | |
120 | themselves only cover a small portion of GDB features, and what tests | |
121 | do exist for a feature are not exhaustive. New tests are welcomed. | |
122 | ||
123 | ||
124 | HOW TO SUBMIT CHANGES | |
838a1ac1 | 125 | --------------------- |
87fe2d9d FF |
126 | |
127 | Patches should be sent to [email protected]. Questions about the | |
128 | snapshots themselves, problems accessing the snapshots, etc can also be sent | |
129 | to the same email address. One of the GDB team members will take on the | |
130 | responsibility of responding to your questions or submitted patches. | |
131 | ||
132 | Do *not* send any questions about the snapshots or patches specific to | |
133 | the snapshots to [email protected] (gateway'd to the usenet group | |
134 | gnu.gdb.bug). Nobody there will have any idea what you are talking about | |
135 | and it will just cause confusion. | |
136 | ||
137 | Here are some simple guidelines for submitting patches: | |
138 | ||
139 | o Use "context diffs" for patches. A typical command for generating | |
140 | context diffs is "diff -rc gdb-old gdb-new". | |
141 | ||
142 | o Use the "minimalist approach" for patches. That is, each patch | |
143 | should address only one particular bug, new feature, etc. Do not | |
144 | save up many unrelated changes and submit them all in one big | |
145 | patch, since in general, the larger the patch the more difficult | |
146 | it is for us to decide if the patch is either correct or | |
147 | desirable. And if we find something about the patch that needs | |
148 | to be corrected before it can be installed, we would have to reject | |
149 | the entire patch, which might contain changes which otherwise would | |
150 | be accepted if submitted separately. | |
151 | ||
152 | o Submit a sample ChangeLog entry with your patch. See the existing | |
153 | GDB ChangeLog for examples of what a ChangeLog entry should look | |
154 | like. The emacs command ^X4A will create a ChangeLog entry header | |
155 | for you. | |
156 | ||
838a1ac1 | 157 | |
0f805efc | 158 | BISON and BYACC |
838a1ac1 | 159 | --------------- |
0f805efc | 160 | |
7508b5b2 FF |
161 | GDB's language parsers are all portable, and can be compiled with bison, |
162 | byacc, traditional Unix yacc, or other compatible parser generators. | |
0f805efc FF |
163 | For various reasons, Cygnus uses byacc rather than bison by default. When |
164 | a general gdb distribution is made, this default is switched back to bison. | |
165 | The snapshots follow the Cygnus default. Your options, if you do not already | |
166 | have byacc installed, include: | |
167 | ||
168 | o Hack the upper level Makefile.in lines that look like: | |
169 | ||
170 | BISON = `if [ -f $${rootme}/byacc/byacc ] ; \ | |
171 | then echo $${rootme}/byacc/byacc ; \ | |
172 | else echo byacc ; \ <== change | |
173 | fi` | |
174 | ||
7508b5b2 | 175 | to replace "byacc" with either "yacc" or "bison -y". |
0f805efc FF |
176 | |
177 | o Fetch the byacc snapshot from the same location as the gdb snapshots | |
178 | and install byacc. | |
179 | ||
180 | o Specify BISON=yacc on the make command line to override the default. | |
181 | ||
182 | ||
838a1ac1 FF |
183 | UNIX MAKE and GNU MAKE |
184 | ---------------------- | |
185 | ||
186 | When you build gdb in the same directory as the source, you should be able | |
187 | to use any available "make" that has traditional UNIX make functionality. | |
188 | If you build gdb in a separate directory tree from the source, using the | |
189 | configure "--subdir" option, then only GNU make is fully supported, although | |
190 | other makes with complete VPATH support should work (SunOS make for example). | |
191 | ||
192 | ||
193 | ||
87fe2d9d FF |
194 | Thanks for your help and support. |
195 | ||
196 | -Fred Fish | |
197 | Cygnus Support | |
198 |