Package: gprbuild / 2019-1

Metadata

Package Version Patches format
gprbuild 2019-1 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
link library as needed z defs.diff | (download)

src/gprlib.adb | 4 2 + 2 - 0 !
1 file changed, 2 insertions(+), 2 deletions(-)

 gprlib: move -lgnat-x from options to library_options
 Linking a dynamic library with Leading_Library_Options containing
 -Wl,--as-needed and -Wl,-z,defs fails because -lgnat-5 comes before
 any object requiring it.  A reproducer is in
 debian/tests/link-library-as-needed-z-defs.
 .
 This patches moves -lgna[t|rl]-X later in the command line, as
 already done for libgna[t|rl].a.
gprconfig.patch | (download)

share/gprconfig/compilers.xml | 5 2 + 3 - 0 !
share/gprconfig/gnat.xml | 4 2 + 2 - 0 !
share/gprconfig/linker.xml | 4 2 + 2 - 0 !
src/gprlib.adb | 10 9 + 1 - 0 !
4 files changed, 15 insertions(+), 8 deletions(-)

 share/gprconfig/*.xml fixes for debian
 In compilers.xml, select X (>= 5) instead of X.Y (<= 4.9) as Ada version.
 This affects Toolchain_Version in gnat.xml, then -lgnatX linker arguments.
 .
 In Debian, the gnat package enforces the installation of 'gcc-BV',
 but the 'gcc' link may refer to another version or even be absent.
 Prefer gnatgcc to gcc for Ada. This requires a work-around in gprlib,
 because it does strong assertions about the compiler name.
 .
 There seems to be no general solution for projects mixing languages.
 .
 We put gprbind and gprlib in /lib/gprbuild, not /libexec/gprbuild. We don't
 put them in /usr/lib/${DEB_HOST_MULTIARCH}/gprbuild, because the multiarch
 conventions do not yet address executables.
 Moreover, their path must be written in the arch-indep
 /usr/share/gprconfig/*.xml.
hurd i386.patch | (download)

share/gprconfig/linker.xml | 3 2 + 1 - 0 !
1 file changed, 2 insertions(+), 1 deletion(-)

 add support for hurd-i386.
no_stderr_in_example.diff | (download)

examples/Makefile | 2 1 + 1 - 0 !
examples/ada_f77/src/fm.adb | 4 4 + 0 - 0 !
examples/subsystems/c_src/c_main.c | 1 1 + 0 - 0 !
3 files changed, 6 insertions(+), 1 deletion(-)

 make the tests usable as basic tests.
 We want a status report when we run the examples as
 tests, but not when we clean without gprclean.
 .
 Autopkg-test considers that a test fails if it emits on stderr.
allow pie overriden for libs.diff | (download)

src/gprbuild-compile.adb | 34 17 + 17 - 0 !
src/gprlib-build_shared_lib.adb | 6 3 + 3 - 0 !
2 files changed, 20 insertions(+), 20 deletions(-)

 put pic options late on the command line for libraries.
 This option is mandatory, and should override incompatible options
 like PIE.  A use case is described at
 https://lists.debian.org/debian-devel/2016/05/msg00302.html.
add targets for gnat s_osconf.diff | (download)

share/gprconfig/targetset.xml | 187 187 + 0 - 0 !
1 file changed, 187 insertions(+)

 add target normalization rules to detect default compilers.
 This fixes new occurrences of #760006, hopefully more definitely.
 The default gprconfig target is taken from
 System.OS_Constants.Target_Name and contains the vendor id.
 It is compared to the output of GCC -dumpmachine which does not.
 The added regular expressions should tell gprbuild to accept such
ada lib info source date epoch.diff | (download)

gpr/src/gpr-osint.adb | 14 14 + 0 - 0 !
gpr/src/gpr-osint.ads | 11 11 + 0 - 0 !
gpr/src/gpr-util.adb | 21 15 + 6 - 0 !
3 files changed, 40 insertions(+), 6 deletions(-)

 handle ali timestamps generated from source_date_epoch
 When the SOURCE_DATE_EPOCH environment variable is set,
 gcc replaces timestamps more recent than its value with its value
 when writing Ada Library Information (ALI) files.
 This allow reproducible builds from generated or patched Ada sources.
 https://reproducible-builds.org/specs/source-date-epoch/
 .
 Let gprbuild recognize this situation instead of always detecting the
 file as obsolete.
 .
 The patch should be kept in sync with the gcc-BV patch with the same name
 (hence Getenv instead of Ada.Environment_Variable.Value).
do not strip minor soversion.diff | (download)

gpr/src/gpr-util.adb | 51 1 + 50 - 0 !
1 file changed, 1 insertion(+), 50 deletions(-)

 when linking libraries, do not strip minor version numbers
 Use the exact Library_Version provided, if any, as
 the soname of libraries (PR ada/40025).
 .
typos.diff | (download)

gpr/src/gpr-compilation-protocol.ads | 2 1 + 1 - 0 !
gpr/src/gpr-ext.adb | 2 1 + 1 - 0 !
src/gprslave.adb | 2 1 + 1 - 0 !
3 files changed, 3 insertions(+), 3 deletions(-)

 various typos spotted by lintian.
archive builder.diff | (download)

share/gprconfig/linker.xml | 431 64 + 367 - 0 !
1 file changed, 64 insertions(+), 367 deletions(-)

 fix and simplify build of static libraries
 gprconfig was generating no Archive_Builder attribute for
 mips-linux-gnu, powerpc64le-linux-gnu and many other architectures,
 because the regular expressions defining specific architectures and
 the fallback were not covering all cases.
 Ensure that all cases are covered by the fallback stanza.
 .
 Replace many handwritten copies with variable substitutions.
 Merge i686-pc-mingw32 and x86_64-pc-mingw32 as already done for other stanzas..
snames.diff | (download)

gpr/snames.list | 2 2 + 0 - 0 !
1 file changed, 2 insertions(+)

 update gpr/snames.list
 gpr/src/gpr-snames.ad[bs] are supposed to be generated from gpr/snames.list.
 AdaCore distributes recent versions, but with an obsolete template.
 Debian spots this by rebuilding everything.
 Add missing definitions to the template.