1======================================
2Known problems in GPRBUILD version 2.1
3======================================
4
5Copyright (C) 2013-2014, AdaCore
6
7The following is a listing of known problems in releases 2.1.1 and 2.1.2.
8Each entry contains a status line stating when the problem was fixed, and on
9which release(s). In addition, any wavefront issued subsequent to the date
10specified (in ISO format YYYY-MM-DD) also contains the fix. This can be used
11to determine if a given release or wavefront has the fix identified in the
12entry.
13
14Note that older releases might or might not be affected by the problems listed
15in this document.
16
17Known problems fixed in 2.2.1 and above
18---------------------------------------
19
20KP-21-NB04-012 aggregate project and illegal source compiled several times
21
22  Problem:    When gprbuild is invoked with -jnn on a main aggregate project,
23              and the same illegal source in different projects in different
24              project trees needs to be compiled, gprbuild may crash.
25
26  Status:     This was fixed in 2.3 on 2014-11-04
27              This was fixed in 2.2.1 on 2014-12-11
28
29  Workaround: Invoke gprbuild without -jnnn.
30
31KP-21-NA22-018 Aggregate project, -k and compilation errors
32
33  Problem:    When gprbuild is invoked with -k on a main aggregate project,
34              the exit code is successful even when there were compilation
35              errors.
36
37  Status:     This was fixed in 2.2 on 2014-10-22
38
39  Workaround: Do not check exit code for gprbuild -k with a main aggregate
40              project.
41
42KP-21-NA01-037 GPRslave stall when compilation are interrupted
43
44  Problem:    When interrupting (ctrl-c) a distributed compilation it may
45              happen that the gprslave application becomes unresponsive.
46              The only solution is to restart the gprslave application.
47
48  Status:     This was fixed in 2.2 on 2014-10-14
49
50  Workaround: Avoid interrupting a distributed compilation
51
52KP-21-N922-032 Detect wrong usage of distributed builds
53
54  Problem:    Compiling using the same build environment (directory) on
55              the a slave is erroneous and will at some point lock the
56              slave. This can happen if multiple distributed compilations
57              are started from the same computer using a project file with
58              the same name for example.
59
60  Status:     This was fixed in 2.2 on 2014-09-23
61
62  Workaround: Use --slave-env with different names
63
64KP-21-N909-016 Cannot install extended projects
65
66  Problem:    Sources files and corresponding object and dependency files
67              from an extended projects are not properly install with
68              GPRinstall.
69
70  Status:     This was fixed in 2.2 on 2014-09-10
71
72  Workaround: Install the missing files manually
73
74KP-21-N814-013 Assembly languages and dependencies
75
76  Problem:    Dependencies were not taken into account for the assembly
77              languages Asm, Asm2 and Asm_Cpp.
78
79  Status:     This was fixed in 2.2 on 2014-08-20
80
81  Workaround: Add a Dependency_Switches declaration in package Compiler of the
82              project file.
83
84KP-21-N728-003 Resources not properly freed in distributed mode
85
86  Problem:    In distributed compilation mode the gprslave process was
87              not releasing the socket file descriptors. This in turn
88              was raising an exception after some time when some system
89              limits were reached.
90
91  Status:     This was fixed in 2.2 on 2014-07-28
92
93  Workaround: Restart the gprslave process every day.
94
95KP-21-N707-025 Empty value of 'Target
96
97  Problem:    When gprbuild is call with --target= and attribute Target
98              is not declared, the value of project'Target is the empty string.
99
100  Status:     This was fixed in 2.2 on 2014-09-05
101
102  Workaround: Declare attribute Target in the project file.
103
104KP-21-N626-044 Unexpected recompilation in distributed mode
105
106  Problem:    When building in distributed mode using slaves in a different
107              time-zone some unexpected recompilation are done.
108
109  Status:     This was fixed in 2.2 on 2014-06-27
110
111  Workaround: Use only compilation slaves in the same time-zone.
112
113KP-21-N623-009 Missing link step in distributed mode
114
115  Problem:    When building in distributed mode projects with a user's
116              defined language it may happen that the final link step
117              is skipped.
118
119  Status:     This was fixed in 2.2 on 2014-06-30
120
121  Workaround: Avoid using the distributed compilation with user's
122              defined languages.
123
124KP-21-N514-009 Compilation switches -mxxx inhibited
125
126  Problem:    When gprbuild is invoked without --codepeer, compilation
127              switches of the form -mxxx are not transmitted to the compiler.
128
129  Status:     This was fixed in 2.2 on 2014-05-14
130
131  Workaround: Use gnatmake instead of gprbuild when using -mxxx switches.
132
133KP-21-N507-022 gprinstall fail to install executable in aggregated projects
134
135  Problem:    If the aggregated project is not using the default executable
136              name using a package Binder Executable attribute, gprinstall
137              will fail.
138
139  Status:     This was fixed in 2.2 on 2014-05-07
140
141  Workaround: Install the aggregated projects separately.
142
143KP-21-N505-036 Aggregate library directories
144
145  Problem:    In some cases, when an aggregate library project had its
146              library directory or its library ALI directory the same as the
147              object directory of library directory of one of its aggregated
148              projects, gprbuild is unable to build correctly the aggegate
149              library.
150
151  Status:     This was fixed in 2.2 on 2014-05-06
152
153  Workaround: Avoid the situation described above.
154
155KP-21-N429-037 gprinstall may fail to remove symbolic links
156
157  Problem:    Uninstalling using gprinstall may leave symbolic links (created
158              for shared libraries) dangling.
159
160  Status:     This was fixed in 2.2 on 2014-04-30
161
162  Workaround: Remove the file manually.
163
164KP-21-N423-036 Installation of aggregate SAL projects
165
166  Problem:    gprinstall does not install properly aggregate Stand-Alone
167              Library projects. In particular, no ALI file is copied to
168              the library ALI directory.
169
170  Status:     This was fixed in 2.2 on 2014-04-25
171
172  Workaround: Avoid installation of aggregate library projects.
173
174KP-21-N422-033 Library exchange files of aggregate libraries
175
176  Problem:    gprbuild creates the library exchange file of an aggregate
177              library project in the project directory, which may be read-only.
178
179  Status:     This was fixed in 2.2 on 2014-04-25
180
181  Workaround: Make sure that the project directory of an aggregate library
182              project is writable.
183
184KP-21-N422-024 gprinstall fails to properly install shared SAL
185
186  Problem:    Shared standalone libraries are not properly installed and
187              cannot be used once install by gprinstall.
188
189  Status:     This was fixed in 2.2 on 2014-04-22
190
191  Workaround: install the library manually.
192
193KP-21-N422-023 gprinstall fails to properly install static SAL
194
195  Problem:    Static standalone libraries are not properly installed and
196              cannot be used once install by gprinstall.
197
198  Status:     This was fixed in 2.2 on 2014-04-22
199
200  Workaround: install the library manually.
201
202KP-21-N416-050 Files not properly synchronized in distributed compilation
203
204  Problem:    Some files are not properly synchronized when using two
205              directories for the same projects.
206
207  Status:     This was fixed in 2.2 on 2014-04-17
208
209  Workaround: clear the remote slave environment (using gprclean) when
210              switching from one directory to another.
211
212KP-21-N411-006 Better handle unexpected events in gprslave
213
214  Problem:    In some cases (using old build master) gprslave could freeze
215              and become unresponsive.
216
217  Status:     This was fixed in 2.2 on 2014-04-12
218
219  Workaround: do not use an old build master with recent gprslave version
220
221KP-21-N409-006 Truncated files on distributed builds
222
223  Problem:    If GPRbuild is killed abruptly it can happen that some truncated
224              sources are left on the slave's side.
225
226  Status:     This was fixed in 2.2 on 2014-04-09
227
228  Workaround: remove all files on the slaves using GPRclean.
229
230KP-21-N407-021 Hard killing a build master makes slaves unresponsive
231
232  Problem:    Hard killing with ctrl-c a build master while synchronization of
233              sources is in progress makes the slaves unresponsive.
234
235  Status:     This was fixed in 2.2 on 2014-05-01
236
237  Workaround: restart the remote slaves
238
239KP-21-N407-018 Fail to clean-up remote slave with gpr protocol
240
241  Problem:    When using the gpr protocol it is not possible to clean-up the
242              remote slaves with gprclean.
243
244  Status:     This was fixed in 2.2 on 2014-04-07
245
246  Workaround: use the rsync protocol for cleaning-up the remote slaves.
247
248KP-21-N331-007 Fail to compile large sources in distributed mode
249
250  Problem:    When a project contains large sources or large objects
251              gprbuild may fail during the compilation phase when using
252              the gpr protocol.
253
254  Status:     This was fixed in 2.2 on 2014-04-02
255
256  Workaround: use the rsync distributed compilation protocol.
257
258KP-21-N319-020 gprbuild fails with binder switch "-s"
259
260  Problem:    When gprbuild is invoked with the binder switch "-s". the binding
261              phase will fail as gnatbind is unable to find the sources.
262
263  Status:     This was fixed in 2.2 on 2014-03-19
264
265  Workaround: Do not use binder switch "-s" when using gprbuild.
266
267KP-21-N318-025 gprinstall does not recognized -d option
268
269  Problem:    The -d option (short version of --dry-run) is documented
270              but not recognized by gprinstall.
271
272  Status:     This was fixed in 2.2 on 2014-03-19
273
274  Workaround: Uses --dry-run instead.
275
276KP-21-N313-008 gprinstall fails with spec naming exception
277
278  Problem:    When gprinstall is invoked to install a library project file
279              that is not a Stand-Alone Library and there is a spec with
280              a naming exception, the installation will fail.
281
282  Status:     This was fixed in 2.2 on 2014-03-13
283
284  Workaround: Avoid spec naming exceptions in library project file.
285
286KP-21-N310-027 gprbuild wait indefinitely for some compilation results
287
288  Problem:    If the Remote package Root_Dir attribute is not properly set
289              gprbuild may not terminate.
290
291  Status:     This was fixed in 2.2 on 2014-03-10
292
293  Workaround: fix the Root_Dir attribute value.
294
295KP-21-N120-075 gprclean -r and cycles in externally built projects
296
297  Problem:    When there are several externally built projects in the project
298              tree and some of them form a cycle, through limited withs,
299              invoking gprclean with switch -r will result in a crash.
300
301  Status:     This was fixed in 2.2 on 2014-01-21
302
303  Workaround: Avoid circularities in externally built projects or invoke
304              gprclean without switch -r.
305
306KP-21-N103-018 Failure to link on target powerpc-xcoff-lynxos178
307
308  Problem:    For target powerpc-xcoff-lynxos178, when there are two many
309              object files to be linked, because a response file is not used,
310              the linking phase may fail.
311
312  Status:     This was fixed in 2.2 on 2014-01-06
313
314  Workaround: Add these two lines in package Linker of the main project:
315                for Response_File_Format use "GCC_GNU";
316                for Max_Command_Line_Length use "8192";
317
318KP-21-MB30-011 Garbled output from parallel invocations of gnatbind
319
320  Problem:    When gprbuild is invoked with -jnn and there are several mains,
321              several invocations of gprbind may be running in parallel and
322              their displayed gnatbind invocations may be garbled.
323
324  Status:     This was fixed in 2.2 on 2013-12-01
325
326  Workaround: Ignore the problem or invoke gprbuild without -jnn.
327
328KP-21-MB26-007 Dependency builder must be invoked from the object directory
329
330  Problem:    When gprbuild performs parallel compilations and for some
331              language a dependency builder is invoked to build a dependency
332              file, the dependency builder may be invoked from the object
333              directory of another project and thus may fail if some of its
334              arguments are relative paths.
335
336  Status:     This was fixed in 2.2 on 2013-11-27
337
338  Workaround: Use absolute paths for the arguments of a dependency builder.
339
340KP-21-MB05-034 gprinstall fails to install projects built with sub-dirs
341
342  Problem:    gprinstall is not able to install a code which has been
343              built with gprbuild's --subdirs option.
344
345  Status:     This was fixed in 2.2 on 2013-11-05
346
347  Workaround: Install the code manually.
348
349KP-21-MA31-004 Aggregated libraries and externally built
350
351  Problem:    gprbuild was not properly dealing with externally built
352              projects on the dependencies. First it was trying to add the
353              object code from such libraries and failed to pass the library
354              on to the linker.
355
356  Status:     This was fixed in 2.2 on 2013-11-01
357
358  Workaround: Remove the externally built projects from the dependencies if
359              possible and pass the corresponding library to the linker.
360
361KP-21-MA30-041 Aggregated libraries and gprinstall
362
363  Problem:    gprinstall was not properly handling aggregate libraries. The
364              installation was failing and/or the generated project was not
365              usable.
366
367  Status:     This was fixed in 2.2 on 2013-11-02
368
369  Workaround: Install the software using a script.
370
371Known problems fixed in 2.1.2 and above
372---------------------------------------
373
374KP-21-N421-002 Failing installing artifacts with gprinstall
375
376  Problem:    When installing a static and relocatable build of the same
377              libraries for a library project having some artifacts,
378              gprinstall complains that the artifacts are already installed.
379
380  Status:     This was fixed in 2.2 on 2014-04-21
381              This was fixed in 2.1.2 on 2014-05-14
382
383  Workaround: force installation for the second gprinstall call using -f
384
385KP-21-N207-022 Fail to compile sources in distributed mode
386
387  Problem:    Top level sources (sources found at the project's root
388              directory) will fail to compile on remote compilation slaves.
389
390  Status:     This was fixed in 2.1.2 on 2014-02-07
391
392  Workaround: do not use the distributed compilation mode
393
394KP-21-N206-041 wrong permissions set by gprinstall for binaries
395
396  Problem:    On UNIX, a binary installed with gprinstall will have the
397              executable permission set only for the owner. This will prevent
398              others to execute this binary. It is a problem when installing
399              an application in a shared computer for example.
400
401  Status:     This was fixed in 2.2 on 2014-02-06
402              This was fixed in 2.1.2 on 2014-05-14
403
404  Workaround: change the permissions manually using chmod
405
406Known problems fixed in 2.1.1 and above
407---------------------------------------
408
409KP-21-MB06-054 gprinstall and shared library with version on windows
410
411  Problem:    On Windows, gprinstall fails while installing a shared library
412              project when the attribute Library_Version is defined.
413
414  Status:     This was fixed in 2.2 on 2013-11-06
415              This was fixed in 2.1.1 on 2013-11-27
416
417  Workaround: Manually install the library.
418
419KP-21-MB06-015 gprinstall and standalone libraries
420
421  Problem:    gprinstall does not generate a usable project file for
422              standalone libraries.
423
424  Status:     This was fixed in 2.2 on 2013-11-06
425              This was fixed in 2.1.1 on 2013-11-27
426
427  Workaround: Manually adds the Library_Interface and Library_Standalone
428              attributes.
429
430KP-21-MB05-020 gprconfig does not detect non GNAT gcc C and g++ compilers
431
432  Problem:    gprconfig does not find all non GNAT gcc C and g++ compilers.
433
434  Status:     This was fixed in 2.2 on 2013-11-07
435              This was fixed in 2.1.1 on 2013-12-10
436
437  Workaround: Manually edit a configuration project file and use it with
438              gprbuild.
439