commit: d8e663b26f51b3c5f1cdbe1393eb5ec0419b1ab0
Author: Tupone Alfredo <tupone <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 25 19:52:23 2017 +0000
Commit: Alfredo Tupone <tupone <AT> gentoo <DOT> org>
CommitDate: Tue Apr 25 19:52:23 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d8e663b2
dev-ada/gnatmem: Adding dev-ada/gnatmem-2016
Package-Manager: Portage-2.3.3, Repoman-2.3.1
dev-ada/gnatmem/Manifest | 1 +
dev-ada/gnatmem/files/gnatmem-2016-gentoo.patch | 85 +++++++++++++++++++++++++
dev-ada/gnatmem/gnatmem-2016.ebuild | 50 +++++++++++++++
dev-ada/gnatmem/metadata.xml | 15 +++++
4 files changed, 151 insertions(+)
diff --git a/dev-ada/gnatmem/Manifest b/dev-ada/gnatmem/Manifest
new file mode 100644
index 00000000000..e30fd588fc2
--- /dev/null
+++ b/dev-ada/gnatmem/Manifest
@@ -0,0 +1 @@
+DIST gnatmem-gpl-2016-src.tar.gz 80104 SHA256
bd39c7b18e4f52fdd029b999f7e1af52d01c975063c28ae1ef6875e4fc5e224f SHA512
bc711af9eda55e89a22fee9dbe506a60fbdd718a9f47141a8d13ad4b97c4520c3988e3a55b6c85bb53098e542f655de9572aeefc99d88c41a2645d9f01b2828b
WHIRLPOOL
8aee794c18efcbdbb50a4d58b9f247de30dea8d5b0a41034b1e20ad7786eefab5dfd14bf99994340a993d67989eab939ba78097d46933d841686d1bbc68fce0b
diff --git a/dev-ada/gnatmem/files/gnatmem-2016-gentoo.patch
b/dev-ada/gnatmem/files/gnatmem-2016-gentoo.patch
new file mode 100644
index 00000000000..357f723c743
--- /dev/null
+++ b/dev-ada/gnatmem/files/gnatmem-2016-gentoo.patch
@@ -0,0 +1,85 @@
+--- 1/configure.in.old 2016-12-08 20:57:53.942004080 +0100
++++ 1/configure.in 2016-12-08 21:00:10.393677257 +0100
+@@ -6,19 +6,14 @@
+ if test ${GNATBIND} = "no"; then
+ AC_MSG_ERROR(Ada compiler needed,1)
+ fi
++AC_CONFIG_HEADERS(config.h:config.in)
++AC_DEFINE_UNQUOTED(TARGET, "${target}", [Configured target name.])
+ AC_ARG_WITH(binutils-buildtree,
+ [AC_HELP_STRING(
+ [--with-binutils-buildtree=<dir>],
+ [Specifify location of binutils build tree])],
+ BINUTILS_OBJDIR=$withval,
+ BINUTILS_OBJDIR=no)
+-AC_MSG_CHECKING([for binutils build tree validity])
+-if test -f "$BINUTILS_OBJDIR/bfd/libbfd.a"; then
+- AC_MSG_RESULT(yes)
+-else
+- AC_MSG_RESULT(no)
+- AC_MSG_FAILURE([need valid binutils build tree directory (got
$BINUTILS_OBJDIR)])
+-fi
+
+ AC_ARG_WITH(binutils-sources,
+ [AC_HELP_STRING(
+@@ -26,21 +21,6 @@
+ [Specifify location of binutils sources])],
+ BINUTILS_SRCDIR=$withval,
+ BINUTILS_SRCDIR=auto)
+-if test "$BINUTILS_SRCDIR" = "auto"; then
+- BINUTILS_SRCDIR=`cat "$BINUTILS_OBJDIR/Makefile" | sed -n -e "/^ *srcdir
*=/ s/^ *srcdir *= *// p"`
+- case "$BINUTILS_SRC_DIR" in
+- /*) ;;
+- *) # assume we have relative path
+- BINUTILS_SRCDIR="$BINUTILS_OBJDIR/$BINUTILS_SRCDIR";;
+- esac
+-fi
+-AC_MSG_CHECKING([for binutils source dir validity])
+-if test -f "$BINUTILS_SRCDIR/bfd/Makefile.in"; then
+- AC_MSG_RESULT(yes)
+-else
+- AC_MSG_RESULT(no)
+- AC_MSG_FAILURE([need valid binutils sources directory])
+-fi
+
+ AC_SUBST(BINUTILS_OBJDIR)
+ AC_SUBST(BINUTILS_SRCDIR)
+--- gnatmem-gpl-2016-src/gnatmem.gpr.in.old 2017-02-02 22:15:30.247906007
+0100
++++ gnatmem-gpl-2016-src/gnatmem.gpr.in 2017-02-02 22:17:22.604974363
+0100
+@@ -10,8 +10,10 @@
+ for Languages use ("ada", "c");
+
+ package Compiler is
++ for Driver ("C") use External ("CC", "gcc");
+ for Default_Switches ("ada") use ("-O2", "-W", "-Wall", "-gnatpg");
+ for Default_Switches ("c") use ("-O2",
++ "-I..",
+ "-I" & BINUTILS_OBJDIR & "/binutils",
+ "-I" & BINUTILS_OBJDIR & "/bfd",
+ "-I" & BINUTILS_SRCDIR & "/include");
+@@ -19,8 +21,8 @@
+
+ package Linker is
+ for Default_Switches ("ada") use
+- (BINUTILS_OBJDIR & "/bfd/libbfd.a",
+- BINUTILS_OBJDIR & "/libiberty/libiberty.a",
++ ("-lbfd",
++ "-liberty",
+ "@LIBDL@",
+ "@LIBZ@");
+ end Linker;
+--- gnatmem-gpl-2015-src/src/libaddr2line.c.old 2017-01-04
21:03:36.185233702 +0100
++++ gnatmem-gpl-2015-src/src/libaddr2line.c 2017-01-04 21:04:17.680455390
+0100
+@@ -23,9 +23,9 @@
+ #include <string.h>
+ #include <stdlib.h>
+
+-#include "bfd.h"
+-#include "libiberty.h"
+-#include "demangle.h"
++#include <bfd.h>
++#include <libiberty/libiberty.h>
++#include <libiberty/demangle.h>
+
+ static asymbol **cur_syms; /* Symbol table. */
+ static bfd *cur_bfd;
diff --git a/dev-ada/gnatmem/gnatmem-2016.ebuild
b/dev-ada/gnatmem/gnatmem-2016.ebuild
new file mode 100644
index 00000000000..6e1f3b1de96
--- /dev/null
+++ b/dev-ada/gnatmem/gnatmem-2016.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit multiprocessing autotools
+
+MYP=${PN}-gpl-${PV}-src
+
+DESCRIPTION="Monitors dynamic allocation and deallocation activity in a
program"
+HOMEPAGE="http://libre.adacore.com/"
+SRC_URI="http://mirrors.cdn.adacore.com/art/573995c8c7a447658e0affa2 ->
${MYP}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-ada/gprbuild"
+
+S="${WORKDIR}"/${MYP}
+
+PATCHES=( "${FILESDIR}"/${P}-gentoo.patch )
+
+pkg_setup() {
+ GCC=${ADA:-$(tc-getCC)}
+ export GNATBIND="${GCC/gcc/gnatbind}"
+ if [[ -z "$(type ${GNATBIND} 2>/dev/null)" ]] ; then
+ eerror "You need a gcc compiler that provides the Ada Compiler:"
+ eerror "1) use gcc-config to select the right compiler or"
+ eerror "2) set ADA=gcc-4.9.4 in make.conf"
+ die "ada compiler not available"
+ fi
+}
+
+src_prepare() {
+ default
+ mv configure.in configure.ac
+ eautoreconf
+}
+
+src_compile() {
+ gprbuild -Pgnatmem.gpr -j$(makeopts_jobs) \
+ -cargs:C ${CFLAGS} -cargs:Ada ${ADAFLAGS}
+}
+
+src_install() {
+ dobin obj/gnatmem
+}
diff --git a/dev-ada/gnatmem/metadata.xml b/dev-ada/gnatmem/metadata.xml
new file mode 100644
index 00000000000..4dacd9de192
--- /dev/null
+++ b/dev-ada/gnatmem/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>[email protected]</email>
+ <name>Tupone Alfredo</name>
+ </maintainer>
+ <longdescription lang="en">
+ The gnatmem utility monitors dynamic allocation and
deallocation activity in a program, and displays information about incorrect
deallocations and possible sources of memory leaks. It provides three type of
information:
+
+ General information concerning memory management, such as the
total number of allocations and deallocations, the amount of allocated memory
and the high water mark, i.e. the largest amount of allocated memory in the
course of program execution.
+ Backtraces for all incorrect deallocations, that is to say
deallocations which do not correspond to a valid allocation.
+ Information on each allocation that is potentially the origin
of a memory leak.
+ </longdescription>
+</pkgmetadata>