======================================
Known problems in GPRBUILD version 2.3
======================================

Copyright (C) 2015-2016, AdaCore

The following is a listing of known problems in releases 2.3.1 and 2.3.2.
Each entry contains a status line stating when the problem was fixed, and on
which release(s). In addition, any wavefront issued subsequent to the date
specified (in ISO format YYYY-MM-DD) also contains the fix. This can be used
to determine if a given release or wavefront has the fix identified in the
entry.

Note that older releases might or might not be affected by the problems listed
in this document.

Known problems fixed in 17.1 and above
--------------------------------------

KP-23-P428-028 Static SALs and Library_Standalone is "standard"

  Problem:    In a static Stand Alone Library project, it is not allowed to
              declare
                  for Library_Standalone use "standard";

  Status:     This was fixed in 17 on 2016-04-28

  Workaround: Do not use such declaration in static SAL projects.

KP-23-P427-070 Aggregated abstract and non externally built projects

  Problem:    Abstract projects are allowed to be component projects of
              aggregate projects. Also, project that declare Externally_Built
              to be "false" are not allowed to be component projects.

  Status:     This was fixed in 17 on 2016-04-27

  Workaround: Do not aggregate abstract projects. Remove declaration of
              Externally_Built is "false" in aggregated projects.

KP-23-P415-001 GPRinstall fails to install aggregate libraries

  Problem:    When an aggregate library contains some variables, GPRinstall
              fails to install it correctly. The installed project is not
              usable.

  Status:     This was fixed in 17 on 2016-04-19

  Workaround: Install the aggregated projects one by one.

KP-23-P414-012 Failure to link shared Stand Alone Libraries

  Problem:    In some cases, shared Stand Alone Libraries cannot be linked,
              when the length of the command line is long enough so that
              a response file is used, the linker driver is g++ and there are
              additional switches.

  Status:     This was fixed in 17 on 2016-04-26

  Workaround: Reduce the length of the command line or increase the value of
              attribute Max_Command_Line_Length.

KP-23-P412-026 Variable in case construction in package

  Problem:    The Project Manager does not allow a variable declaration inside
              a case construction in a package if the variable has been
              declared at the project level.

  Status:     This was fixed in 17 on 2016-04-14

  Workaround: Declare the variable in the package before the case construction.

KP-23-P218-003 gprclean not cleaning .ci files

  Problem:    gprclean was not cleaning the .ci files in the object
              directories. Those files are created when the Ada compiler is
              invoked with switch -fcallgraph-info=su

  Status:     This was fixed in 17 on 2016-02-19

  Workaround: Delete manually the .ci files.

KP-23-P202-046 Export symbols in the BSS section when needed

  Problem:    GPRbuild fails to export symbols in the BSS section
              when building a SAL (Standalone Shared Library).

  Status:     This was fixed in 17 on 2016-02-04

  Workaround: Provide an explicit list of all exported symbols using the
              Library_Symbol_File attribute. Another is to export all
              symbols by setting the attribute Library_Symbol_Policy to
              "unrestricted".

KP-23-P125-003 Standalone library with child units installation issue

  Problem:    GPRinstall won't install a compilable standalone library
              project if a child unit is part of the interface.

  Status:     This was fixed in 17 on 2016-01-25

  Workaround: Fix manually the generated Library_Interface attribute.

KP-23-P112-067 Included_Artifact_Patterns ignored

  Problem:    The GPRbuild distributed attribute Included_Artifact_Patterns
              is not taken into account.

  Status:     This was fixed in 17 on 2016-01-20

  Workaround: Copy manually the artifacts from the slaves (e.g using rsync)

KP-23-OC21-017 Restricted languages and auto configuration

  Problem:    When gprbuild is invoked with switches --restricted-to-languages=
              or --codepeer, the languages that should be used for the
              invocation of gprconfig in auto configuration are the restricted
              languages.
              In CodePeer mode, the only language to consider is Ada.

  Status:     This was fixed in 17 on 2015-12-21

  Workaround: Do not declare languages other than the restricted ones.

KP-23-OC17-040 Index case-sensitivity for attribute Global_Compilation_Switches

  Problem:    When the value of attribute Builder'Global_Compilation_Switches
              is asked through GNATCOLL.Projects.Attribute_Value, the wrong
              result may be returned as the index is incorrectly
              case-sensitive.

  Status:     This was fixed in 17 on 2015-12-26

  Workaround: Use the exact same language name as in the declaration in the
              project file.

KP-23-OC11-012 Aggregate project and mains on the command line

  Problem:    When gprbuild is invoked with an aggregate project and one
              or several mains on the command line, all the sources of
              the projects without a main are compiled. They should not be
              compiled.

  Status:     This was fixed in 17 on 2016-04-26

  Workaround: Invoked gprbuild on the aggregated projects instead of on the
              aggregate project.

KP-23-OB30-037 GPRinstall fails installing main with specific naming

  Problem:    When the Main attribute was specified without extension and
              the Binder's Executable attribute with an extension the
              specified name was not found. In this case GPRinstall failed
              as it was not able to find the executable to install.

  Status:     This was fixed in 17 on 2015-12-05

  Workaround: Install the main with standard tools.

KP-23-OB20-022 GPRslave could run into an endless loop

  Problem:    In some rare cases, GPRslave could be stuck in an endless loop
              after an interrupted build.

  Status:     This was fixed in 17 on 2015-11-25

  Workaround: Avoid interrupting distributed builds.

KP-23-OB20-001 Encapsulated libraries and external libraries

  Problem:    When building an encapsulated library importing (directly or
              indirectly) projects with a Linker_Options, the encapsulated
              library fails to build because of undefined symbols.

  Status:     This was fixed in 17 on 2015-11-22

  Workaround: Add the necessary options into the Library_Options of the
              encapsulated library.

KP-23-OB10-028 Shared libraries importing static libraries

  Problem:    When a shared library project imports an abstract project that
              itself imports static libraries, the Project Manager does not
              report an error, as it should.

  Status:     This was fixed in 17 on 2015-11-10

  Workaround: Import directly the static libraries.

KP-23-OB09-005 Crash when project path is too large

  Problem:    gprbuild crashes when the project path is too large, for example
              when environment variable GPR_PROJECT_PATH_FILE points to
              a text file with more than 33,000 characters.

  Status:     This was fixed in 17 on 2015-11-09

  Workaround: Reduce the number of directories in the project path.

KP-23-OA09-019 Switches in package Clean not taken into account

  Problem:    gprclean does not take into account the Switches in package
              Clean of the main project.

  Status:     This was fixed in 17 on 2016-04-06

  Workaround: Use only switches on the command line.
