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