dev-ada/gnatmem: Adding dev-ada/gnatmem-2017
authorTupone Alfredo <tupone@gentoo.org>
Thu, 28 Sep 2017 07:01:01 +0000 (09:01 +0200)
committerTupone Alfredo <tupone@gentoo.org>
Thu, 28 Sep 2017 07:01:01 +0000 (09:01 +0200)
Package-Manager: Portage-2.3.6, Repoman-2.3.1

dev-ada/gnatmem/Manifest
dev-ada/gnatmem/files/gnatmem-2016-gentoo.patch
dev-ada/gnatmem/files/gnatmem-2017-gentoo.patch [new file with mode: 0644]
dev-ada/gnatmem/gnatmem-2016.ebuild
dev-ada/gnatmem/gnatmem-2017.ebuild [new file with mode: 0644]
dev-ada/gnatmem/metadata.xml

index e30fd588fc2b4579193a809a3e086c65e584727c..2669213c4151d2280646263fcdd62d041893f30e 100644 (file)
@@ -1 +1,2 @@
 DIST gnatmem-gpl-2016-src.tar.gz 80104 SHA256 bd39c7b18e4f52fdd029b999f7e1af52d01c975063c28ae1ef6875e4fc5e224f SHA512 bc711af9eda55e89a22fee9dbe506a60fbdd718a9f47141a8d13ad4b97c4520c3988e3a55b6c85bb53098e542f655de9572aeefc99d88c41a2645d9f01b2828b WHIRLPOOL 8aee794c18efcbdbb50a4d58b9f247de30dea8d5b0a41034b1e20ad7786eefab5dfd14bf99994340a993d67989eab939ba78097d46933d841686d1bbc68fce0b
+DIST gnatmem-gpl-2017-src.tar.gz 80106 SHA256 11a27a66030b1a074875ccdaa0ffb06e86d687e1904ab0f5922e08bb488e5e7c SHA512 52ba2cfb24314f481ec07e351ff6d8883753dcfe5d0489a78536bf0b841d931055be02271a5d93b2ec15c52fd775d4b177a17de52f9472cc8f352bf044b28897 WHIRLPOOL 6599c8b77e89d7bc1f6b1eea459009aa2626173a7ebe47b65ead3ba76a109699ff8d0f27cfe1cea9fb0a8cb90cf9a897f70cf8af4647f21feec87b422e544c1b
index 357f723c743c74b67ab45afa92e1a2550a845f27..69530dd24b2352983a45e8a139460fb1e6f6f49f 100644 (file)
@@ -1,9 +1,13 @@
 --- 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
+@@ -2,23 +2,14 @@
+ AC_INIT(gnatmem.gpr.in)
+ AC_CANONICAL_SYSTEM
+ AC_PROG_CC(gcc)
+-AC_CHECK_TOOL(GNATBIND,gnatbind,"no")
+-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,
diff --git a/dev-ada/gnatmem/files/gnatmem-2017-gentoo.patch b/dev-ada/gnatmem/files/gnatmem-2017-gentoo.patch
new file mode 100644 (file)
index 0000000..69530dd
--- /dev/null
@@ -0,0 +1,89 @@
+--- 1/configure.in.old 2016-12-08 20:57:53.942004080 +0100
++++ 1/configure.in     2016-12-08 21:00:10.393677257 +0100
+@@ -2,23 +2,14 @@
+ AC_INIT(gnatmem.gpr.in)
+ AC_CANONICAL_SYSTEM
+ AC_PROG_CC(gcc)
+-AC_CHECK_TOOL(GNATBIND,gnatbind,"no")
+-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;
index 6e1f3b1de9654c39453a1b8fb8f649bf8b9187e5..5875024baefdd5f14320ae666aea4bec018b2452 100644 (file)
@@ -14,26 +14,15 @@ SRC_URI="http://mirrors.cdn.adacore.com/art/573995c8c7a447658e0affa2 -> ${MYP}.t
 LICENSE="GPL-3"
 SLOT="0"
 KEYWORDS="~amd64"
-IUSE=""
+IUSE="gnat_2016 gnat_2017"
 
 RDEPEND=""
-DEPEND="dev-ada/gprbuild"
+DEPEND="dev-ada/gprbuild[gnat_2016=,gnat_2017=]"
 
 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
diff --git a/dev-ada/gnatmem/gnatmem-2017.ebuild b/dev-ada/gnatmem/gnatmem-2017.ebuild
new file mode 100644 (file)
index 0000000..ee97065
--- /dev/null
@@ -0,0 +1,39 @@
+# 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/591c45e2c7a447af2deed033 -> ${MYP}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="gnat_2016 gnat_2017"
+
+RDEPEND=""
+DEPEND="dev-ada/gprbuild[gnat_2016=,gnat_2017=]"
+
+S="${WORKDIR}"/${MYP}
+
+PATCHES=( "${FILESDIR}"/${P}-gentoo.patch )
+
+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
+}
index 4dacd9de192fc9930924e343b5086a053a35a0f4..0119f73e16b5d29bbf342831652b77e96a52dc58 100644 (file)
@@ -5,11 +5,23 @@
                <email>tupone@gentoo.org</email>
                <name>Tupone Alfredo</name>
        </maintainer>
+       <use>
+               <flag name="gnat_2016">Compile with dev-lang/gnat-gpl-2016</flag>
+               <flag name="gnat_2017">Compile with dev-lang/gnat-gpl-2017</flag>
+       </use>
        <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:
+               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. 
+               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>