1======================================
2Known problems in GPRBUILD version 2.3
3======================================
4
5Copyright (C) 2015-2016, AdaCore
6
7The following is a listing of known problems in releases 2.3.1 and 2.3.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 17.1 and above
18--------------------------------------
19
20KP-23-P606-054 Spurious requirement for a body when building a SAL
21
22  Problem:    GPRBuild incorrectly expects unit U to be part of the interface
23              set of a SAL (Standalone Shared Library) when a generic unit with
24              a nested generic subprogram is instantiated in unit M, the
25              instantiation is followed by a generic subprogram renaming of the
26              nested generic subprogram defined in the instance, the body of M
27              has a with clause on U, and the associated project file does not
28              list U in the Library_Interface set for the SAL.
29
30  Status:     This was fixed in 17 on 2016-06-08
31
32  Workaround: Remove the generic subprogram renaming or include U in the
33              Library_Interface set for the SAL.
34
35KP-23-P531-017 Interfaces in projects aggregated by aggregate SAL project
36
37  Problem:    When a project aggregated by an aggregate Stand-Alone Library
38              project declare attribute Interfaces, building the aggregate
39              library may fail with an indication that the interface is
40              not complete.
41
42  Status:     This was fixed in 17 on 2016-06-02
43
44  Workaround: Use attribute Library_Interface instead of Interfaces.
45
46KP-23-P508-004 gprls crashes when object directory does not exist
47
48  Problem:    gprls crashes when invoked for a project that specifies an object
49              directory that does not exist.
50
51  Status:     This was fixed in 17 on 2016-05-09
52
53  Workaround: Create the object directory before invoking gprls.
54
55KP-23-P503-049 Extending installed library projects
56
57  Problem:    When a project extends an installed library project, gprbuild
58              may fail to build the library for the extended project.
59
60  Status:     This was fixed in 17 on 2016-05-05
61
62  Workaround: Do not extend the installed project; copy its sources in a
63              standard project, then modify the sources.
64
65KP-23-P428-028 Static SALs and Library_Standalone is "standard"
66
67  Problem:    In a static Stand Alone Library project, it is not allowed to
68              declare
69                  for Library_Standalone use "standard";
70
71  Status:     This was fixed in 17 on 2016-04-28
72
73  Workaround: Do not use such declaration in static SAL projects.
74
75KP-23-P427-070 Aggregated abstract and non externally built projects
76
77  Problem:    Abstract projects are allowed to be component projects of
78              aggregate projects. Also, project that declare Externally_Built
79              to be "false" are not allowed to be component projects.
80
81  Status:     This was fixed in 17 on 2016-04-27
82
83  Workaround: Do not aggregate abstract projects. Remove declaration of
84              Externally_Built is "false" in aggregated projects.
85
86KP-23-P419-029 Spaces in dependency paths of file based languages
87
88  Problem:    When the path of a dependency file, stored in a .d dependency
89              file includes spaces, the source is always recompiled, even when
90              it is up to date.
91
92  Status:     This was fixed in 17 on 2016-05-23
93
94  Workaround: Avoid directories with spaces.
95
96KP-23-P418-032 Aggregate projects and mains on the command line
97
98  Problem:    When gprbuild is invoked for an aggregate project and one or
99              several mains on the command line, all the sources of the
100              aggregated projects that do not have any of the mains as source
101              are compiled.
102
103  Status:     This was fixed in 17 on 2016-04-15
104
105  Workaround: Invoke gprbuild on the aggregate projects with the mains.
106
107KP-23-P415-001 GPRinstall fails to install aggregate libraries
108
109  Problem:    When an aggregate library contains some variables, GPRinstall
110              fails to install it correctly. The installed project is not
111              usable.
112
113  Status:     This was fixed in 17 on 2016-04-19
114
115  Workaround: Install the aggregated projects one by one.
116
117KP-23-P414-012 Failure to link shared Stand Alone Libraries
118
119  Problem:    In some cases, shared Stand Alone Libraries cannot be linked,
120              when the length of the command line is long enough so that
121              a response file is used, the linker driver is g++ and there are
122              additional switches.
123
124  Status:     This was fixed in 17 on 2016-04-26
125
126  Workaround: Reduce the length of the command line or increase the value of
127              attribute Max_Command_Line_Length.
128
129KP-23-P412-026 Variable in case construction in package
130
131  Problem:    The Project Manager does not allow a variable declaration inside
132              a case construction in a package if the variable has been
133              declared at the project level.
134
135  Status:     This was fixed in 17 on 2016-04-14
136
137  Workaround: Declare the variable in the package before the case construction.
138
139KP-23-P406-010 Non existent external reference with no default
140
141  Problem:    external ("<reference>") gives value of empty string when
142              <reference> does not exist, instead of giving an error.
143
144  Status:     This was fixed in 17 on 2016-04-16
145
146  Workaround: Use external with a default.
147
148KP-23-P309-051 Imported projects may be order dependent
149
150  Problem:    When the main project is an "extending all" project and it
151              imports extending projects, with some order of the with clauses
152              gprbuild may report that an extending project is directly
153              imported.
154
155  Status:     This was fixed in 17 on 2016-05-13
156
157  Workaround: Reorder the with clauses to find one that works.
158
159KP-23-P218-003 gprclean not cleaning .ci files
160
161  Problem:    gprclean was not cleaning the .ci files in the object
162              directories. Those files are created when the Ada compiler is
163              invoked with switch -fcallgraph-info=su
164
165  Status:     This was fixed in 17 on 2016-02-19
166
167  Workaround: Delete manually the .ci files.
168
169KP-23-P125-003 Standalone library with child units installation issue
170
171  Problem:    GPRinstall won't install a compilable standalone library
172              project if a child unit is part of the interface.
173
174  Status:     This was fixed in 17 on 2016-01-25
175
176  Workaround: Fix manually the generated Library_Interface attribute.
177
178KP-23-P112-067 Included_Artifact_Patterns ignored
179
180  Problem:    The GPRbuild distributed attribute Included_Artifact_Patterns
181              is not taken into account.
182
183  Status:     This was fixed in 17 on 2016-01-20
184
185  Workaround: Copy manually the artifacts from the slaves (e.g using rsync)
186
187KP-23-OC11-012 Aggregate project and mains on the command line
188
189  Problem:    When gprbuild is invoked with an aggregate project and one
190              or several mains on the command line, all the sources of
191              the projects without a main are compiled. They should not be
192              compiled.
193
194  Status:     This was fixed in 17 on 2016-04-26
195
196  Workaround: Invoked gprbuild on the aggregated projects instead of on the
197              aggregate project.
198
199KP-23-OB30-037 GPRinstall fails installing main with specific naming
200
201  Problem:    When the Main attribute was specified without extension and
202              the Binder's Executable attribute with an extension the
203              specified name was not found. In this case GPRinstall failed
204              as it was not able to find the executable to install.
205
206  Status:     This was fixed in 17 on 2015-12-05
207
208  Workaround: Install the main with standard tools.
209
210KP-23-OB20-022 GPRslave could run into an endless loop
211
212  Problem:    In some rare cases, GPRslave could be stuck in an endless loop
213              after an interrupted build.
214
215  Status:     This was fixed in 17 on 2015-11-25
216
217  Workaround: Avoid interrupting distributed builds.
218
219KP-23-OB20-001 Encapsulated libraries and external libraries
220
221  Problem:    When building an encapsulated library importing (directly or
222              indirectly) projects with a Linker_Options, the encapsulated
223              library fails to build because of undefined symbols.
224
225  Status:     This was fixed in 17 on 2015-11-22
226
227  Workaround: Add the necessary options into the Library_Options of the
228              encapsulated library.
229
230KP-23-OB10-028 Shared libraries importing static libraries
231
232  Problem:    When a shared library project imports an abstract project that
233              itself imports static libraries, the Project Manager does not
234              report an error, as it should.
235
236  Status:     This was fixed in 17 on 2015-11-10
237
238  Workaround: Import directly the static libraries.
239
240KP-23-OB09-005 Crash when project path is too large
241
242  Problem:    gprbuild crashes when the project path is too large, for example
243              when environment variable GPR_PROJECT_PATH_FILE points to
244              a text file with more than 33,000 characters.
245
246  Status:     This was fixed in 17 on 2015-11-09
247
248  Workaround: Reduce the number of directories in the project path.
249
250KP-23-OA14-025 Failure in parallel invocations of gprbuild
251
252  Problem:    When several parallel invocations of gprbuild, using the same
253              directory to store temporary files (for example with the same
254              value of environment variable TMPDIR), some of these invocations
255              may fail, because a temporary file cannot be found or has an
256              incorrect content.
257
258  Status:     This was fixed in 17 on 2016-04-05
259
260  Workaround: Repeat the invocation of gprbuild that failed.
261
262KP-23-OA09-019 Switches in package Clean not taken into account
263
264  Problem:    gprclean does not take into account the Switches in package
265              Clean of the main project.
266
267  Status:     This was fixed in 17 on 2016-04-06
268
269  Workaround: Use only switches on the command line.
270
271Known problems fixed in 2.3.2 and above
272---------------------------------------
273
274KP-23-OC21-017 Restricted languages and auto configuration
275
276  Problem:    When gprbuild is invoked with switches --restricted-to-languages=
277              or --codepeer, the languages that should be used for the
278              invocation of gprconfig in auto configuration are the restricted
279              languages.
280              In CodePeer mode, the only language to consider is Ada.
281
282  Status:     This was fixed in 17 on 2015-12-21
283              This was fixed in 2.3.2 on 2015-05-19
284
285  Workaround: Do not declare languages other than the restricted ones.
286
287KP-23-OC17-040 Index case-sensitivity for attribute Global_Compilation_Switches
288
289  Problem:    When the value of attribute Builder'Global_Compilation_Switches
290              is asked through GNATCOLL.Projects.Attribute_Value, the wrong
291              result may be returned as the index is incorrectly
292              case-sensitive.
293
294  Status:     This was fixed in 17 on 2015-12-26
295              This was fixed in 2.3.2 on 2016-05-19
296
297  Workaround: Use the exact same language name as in the declaration in the
298              project file.
299