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