dev-ada/gprbuild: use gnatbind versioned and remove old ebuild

Package-Manager: Portage-2.3.13, Repoman-2.3.3
This commit is contained in:
Tupone Alfredo
2017-12-19 09:00:08 +01:00
parent 1cec61c615
commit 107bb1d879
6 changed files with 31 additions and 444 deletions

View File

@@ -1,4 +1,2 @@
DIST gprbuild-gpl-2016-src.tar.gz 2142261 BLAKE2B 69948427eb6315b9fb2b84755192b53c035f74093dacb34852713083779bf8bd88dac6b38fe7685f6a40ecb2482f78b15a5221913df997847eee8b1359cf6c14 SHA512 6b9e00248aaee90f3c00e7ce442c2b551b8532ec4d94a4471858d117feb27e91fd6d218995d4b71ee3f1f0677e9547d562fc2cda9ba80c3f6eb8d840ed56eb7e
DIST gprbuild-gpl-2017-src.tar.gz 2454957 BLAKE2B 890e5aa29e9f8fa8b140988ee8e5d6042640c34fe0877acde959de803bf690bb33c63b1c7e7db486f804882bddd77ab76ffbaa4dd27da327e21ed0376cadb99d SHA512 12f3682d64ce0718de4940c1e71a4380b20021805d88543842dbf3b5ce5d518c23a6b2d868565579baf81efa1d8cf05c7778253162f0df5d7adc0eb1865c9f88
DIST xmlada-gpl-2016-src.tar.gz 1440671 BLAKE2B 32998fbdb680f3a1ea7915f144c3039441d8608ded9fe2df99d9b5c9d13436a020c25a9773cced753ffa3ff89a918bbb1ef3ca310cbc58f583682deb7dcc9d09 SHA512 d1d7c3d91731394235aed4b80c91b1babe30d5f184282fae8087ee556318475e3923ed628b805693fc89a4d9bb219b0fb0937bc5024a742226da0245d36ed652
DIST xmlada-gpl-2017-src.tar.gz 1578393 BLAKE2B 7b4894040b6044e86c96cbd530ebda5c0cfc4ad0e2b472d46798a93f535aca0916b03385a3aef49bd4e59d508a9665c856360e9cab0a4f67b15091228b629d81 SHA512 371f6adc01550a4bb13204ec0404dc1165438db595f4346813e5a23a155de74c857c40c55adde173919c2fe35b3b91d78b235c9718ee86bc848e62ddfd7fa2b4

View File

@@ -1,271 +0,0 @@
diff -Naur gprbuild-gpl-2016-src.old/src/gprbuild-main.adb gprbuild-gpl-2016-src/src/gprbuild-main.adb
--- gprbuild-gpl-2016-src.old/src/gprbuild-main.adb 2017-03-28 09:12:24.205058242 +0200
+++ gprbuild-gpl-2016-src/src/gprbuild-main.adb 2017-03-28 09:21:20.495344963 +0200
@@ -52,7 +52,8 @@
with GPR.Tempdir; use GPR.Tempdir;
with GPR.Tree; use GPR.Tree;
with GPR.Util; use GPR.Util;
+with Gprbuild.Sigint_Intercepted;
procedure Gprbuild.Main is
use Stamps;
@@ -124,11 +124,6 @@
pragma Import (C, Install_Int_Handler, "__gnat_install_int_handler");
-- Called by Gnatmake to install the SIGINT handler below
- procedure Sigint_Intercepted;
- pragma Convention (C, Sigint_Intercepted);
- -- Called when the program is interrupted by Ctrl-C to delete the
- -- temporary mapping files and configuration pragmas files.
-
No_Object_Check_Switch : constant String := "--no-object-check";
Direct_Import_Only_Switch : constant String := "--direct-import-only";
Indirect_Imports_Switch : constant String := "--indirect-imports";
@@ -1616,22 +1611,6 @@
end if;
end Scan_Arg;
- ------------------------
- -- Sigint_Intercepted --
- ------------------------
-
- procedure Sigint_Intercepted is
- begin
- Put_Line ("*** Interrupted ***");
- Delete_All_Temp_Files (Project_Tree.Shared);
-
- if Distributed_Mode then
- Compilation.Slave.Unregister_Remote_Slaves (From_Signal => True);
- end if;
-
- OS_Exit (1);
- end Sigint_Intercepted;
-
----------------
-- Initialize --
----------------
@@ -2293,7 +2272,7 @@
-- And install Ctrl-C handler
- Install_Int_Handler (Sigint_Intercepted'Unrestricted_Access);
+ Install_Int_Handler (Gprbuild.Sigint_Intercepted'Unrestricted_Access);
-- Check command line arguments. These will be overridden when looking
-- for the configuration file
diff -Naur gprbuild-gpl-2016-src.old/src/gprbuild-sigint_intercepted.adb gprbuild-gpl-2016-src/src/gprbuild-sigint_intercepted.adb
--- gprbuild-gpl-2016-src.old/src/gprbuild-sigint_intercepted.adb 1970-01-01 01:00:00.000000000 +0100
+++ gprbuild-gpl-2016-src/src/gprbuild-sigint_intercepted.adb 2017-03-28 09:20:00.661792854 +0200
@@ -0,0 +1,20 @@
+------------------------
+-- Sigint_Intercepted --
+------------------------
+
+with Ada.Text_IO; use Ada.Text_IO;
+with Gpr_Util; use Gpr_Util;
+with Gprbuild.Compile;
+with Gprbuild.Compilation.Slave;
+
+procedure Gprbuild.Sigint_Intercepted is
+begin
+ Put_Line ("*** Interrupted ***");
+ Delete_All_Temp_Files (Project_Tree.Shared);
+
+ if Distributed_Mode then
+ Compilation.Slave.Unregister_Remote_Slaves (From_Signal => True);
+ end if;
+
+ OS_Exit (1);
+end Gprbuild.Sigint_Intercepted;
diff -Naur gprbuild-gpl-2016-src.old/src/gprbuild-sigint_intercepted.ads gprbuild-gpl-2016-src/src/gprbuild-sigint_intercepted.ads
--- gprbuild-gpl-2016-src.old/src/gprbuild-sigint_intercepted.ads 1970-01-01 01:00:00.000000000 +0100
+++ gprbuild-gpl-2016-src/src/gprbuild-sigint_intercepted.ads 2017-03-28 09:15:35.275616543 +0200
@@ -0,0 +1,4 @@
+procedure Gprbuild.Sigint_Intercepted;
+pragma Convention (C, Sigint_Intercepted);
+-- Called when the program is interrupted by Ctrl-C to delete the
+-- temporary mapping files and configuration pragmas files.
diff -Naur gprbuild-gpl-2016-src.old/src/gprinstall-main.adb gprbuild-gpl-2016-src/src/gprinstall-main.adb
--- gprbuild-gpl-2016-src.old/src/gprinstall-main.adb 2017-03-28 09:12:24.205058242 +0200
+++ gprbuild-gpl-2016-src/src/gprinstall-main.adb 2017-03-28 09:25:36.515709886 +0200
@@ -42,6 +42,7 @@
with Gprinstall.DB;
with Gprinstall.Install;
with Gprinstall.Uninstall;
+with Gprinstall.Sigint_Intercepted;
procedure Gprinstall.Main is
@@ -94,11 +94,6 @@
pragma Import (C, Install_Int_Handler, "__gnat_install_int_handler");
-- Called by Gnatmake to install the SIGINT handler below
- procedure Sigint_Intercepted;
- pragma Convention (C, Sigint_Intercepted);
- -- Called when the program is interrupted by Ctrl-C to delete the
- -- temporary mapping files and configuration pragmas files.
-
---------------
-- Copyright --
---------------
@@ -514,17 +509,6 @@
end if;
end Scan_Arg;
- ------------------------
- -- Sigint_Intercepted --
- ------------------------
-
- procedure Sigint_Intercepted is
- begin
- Put_Line ("*** Interrupted ***");
- Delete_All_Temp_Files (Project_Tree.Shared);
- OS_Exit (1);
- end Sigint_Intercepted;
-
----------------
-- Initialize --
----------------
@@ -862,7 +846,7 @@
-- And install Ctrl-C handler
- Install_Int_Handler (Sigint_Intercepted'Unrestricted_Access);
+ Install_Int_Handler (Gprinstall.Sigint_Intercepted'Unrestricted_Access);
-- Check command line arguments. These will be overridden when looking
-- for the configuration file
diff -Naur gprbuild-gpl-2016-src.old/src/gprinstall-sigint_intercepted.adb gprbuild-gpl-2016-src/src/gprinstall-sigint_intercepted.adb
--- gprbuild-gpl-2016-src.old/src/gprinstall-sigint_intercepted.adb 1970-01-01 01:00:00.000000000 +0100
+++ gprbuild-gpl-2016-src/src/gprinstall-sigint_intercepted.adb 2017-03-28 09:24:50.307545617 +0200
@@ -0,0 +1,12 @@
+------------------------
+-- Sigint_Intercepted --
+------------------------
+
+with Ada.Text_IO; use Ada.Text_IO;
+
+procedure Gprinstall.Sigint_Intercepted is
+begin
+ Put_Line ("*** Interrupted ***");
+ Delete_All_Temp_Files (Project_Tree.Shared);
+ OS_Exit (1);
+end Gprinstall.Sigint_Intercepted;
diff -Naur gprbuild-gpl-2016-src.old/src/gprinstall-sigint_intercepted.ads gprbuild-gpl-2016-src/src/gprinstall-sigint_intercepted.ads
--- gprbuild-gpl-2016-src.old/src/gprinstall-sigint_intercepted.ads 1970-01-01 01:00:00.000000000 +0100
+++ gprbuild-gpl-2016-src/src/gprinstall-sigint_intercepted.ads 2017-03-28 09:22:18.462294461 +0200
@@ -0,0 +1,4 @@
+procedure Gprinstall.Sigint_Intercepted;
+pragma Convention (C, Sigint_Intercepted);
+-- Called when the program is interrupted by Ctrl-C to delete the
+-- temporary mapping files and configuration pragmas files.
--- gprbuild-gpl-2016-src/Makefile.in.old 2017-01-19 19:52:41.242907252 +0100
+++ gprbuild-gpl-2016-src/Makefile.in 2017-01-19 19:54:45.822646333 +0100
@@ -25,12 +25,12 @@
host=@host@
target=@target@
build=@build@
-prefix=@prefix@
+prefix=$(DESTDIR)@prefix@
srcdir=@srcdir@
objdir=@objdir@
exec_prefix=@exec_prefix@
datarootdir=@datarootdir@
-datadir=@datadir@
+datadir=$(DESTDIR)@datadir@
bindir=@bindir@
libdir=@libdir@
libexecdir=@libexecdir@
@@ -66,7 +66,7 @@
.PHONY: all distall gprbuild gprconfig gprclean gprinstall gprname gprls
all:
- $(GPRBUILD_BUILDER)
+ $(GPRBUILD_BUILDER) -cargs:C $(CFLAGS) -cargs:Ada $(ADAFLAGS)
distall: all install install.dist
@@ -173,13 +173,13 @@
libgpr.build: $(foreach t, $(LIBGPR_TYPES), libgpr.build.$(t))
libgpr.build.shared:
- ${BUILDER} -XLIBRARY_TYPE=relocatable -P$(srcdir)/gpr/gpr.gpr
+ ${BUILDER} -XLIBRARY_TYPE=relocatable -P$(srcdir)/gpr/gpr.gpr -cargs:Ada $(ADAFLAGS)
libgpr.build.static:
- ${BUILDER} -XLIBRARY_TYPE=static -P$(srcdir)/gpr/gpr.gpr
+ ${BUILDER} -XLIBRARY_TYPE=static -P$(srcdir)/gpr/gpr.gpr -cargs:Ada $(ADAFLAGS)
libgpr.build.static-pic:
- ${BUILDER} -XLIBRARY_TYPE=static-pic -P$(srcdir)/gpr/gpr.gpr
+ ${BUILDER} -XLIBRARY_TYPE=static-pic -P$(srcdir)/gpr/gpr.gpr -cargs:Ada $(ADAFLAGS)
libgpr.install: $(foreach t, $(LIBGPR_TYPES), libgpr.install.$(t))
--- gprbuild-gpl-2015-src/gprbuild.gpr.old 2017-01-11 21:44:59.795997896 +0100
+++ gprbuild-gpl-2015-src/gprbuild.gpr 2017-01-11 21:45:07.971998651 +0100
@@ -66,6 +66,7 @@
for Switches ("gpr*.ad?") use
Compiler'Default_Switches ("Ada") & ("-g1");
end case;
+ for Driver ("C") use External ("CC", "gcc");
end Compiler;
package Binder is
make BUILDER="$(BUILDER)" BUILD="$(BUILD)"
--- gprbuild-gpl-2016-src/gpr/src/gpr-env.adb.old 2017-11-13 22:16:53.349083426 +0100
+++ gprbuild-gpl-2016-src/gpr/src/gpr-env.adb 2017-11-13 22:17:22.692590351 +0100
@@ -1948,6 +1948,8 @@
end if;
+ Add_Directories (Self, "/usr/share/gpr");
+
if Gpr_Prj_Path.all /= "" then
Add_Directories (Self, Gpr_Prj_Path.all);
end if;
--- gprbuild-gpl-2017-src/gpr/src/gpr-names.ads.old 2017-11-19 13:09:18.947527738 +0100
+++ gprbuild-gpl-2017-src/gpr/src/gpr-names.ads 2017-11-19 13:10:08.125654595 +0100
@@ -27,6 +27,8 @@
Name_Buffer : String (1 .. 1_000_000);
Name_Len : Natural := 0;
+ Last_Id : Name_Id := Name_Id'First;
+
procedure Get_Name_String (Id : Name_Id);
procedure Get_Name_String (Id : Unit_Name_Type);
procedure Get_Name_String (Id : File_Name_Type);
--- gprbuild-gpl-2017-src/gpr/src/gpr-names.adb.old 2017-11-19 13:10:27.674316703 +0100
+++ gprbuild-gpl-2017-src/gpr/src/gpr-names.adb 2017-11-19 13:14:38.360963627 +0100
@@ -354,6 +354,8 @@
Name_Chars.Append (ASCII.NUL);
+ Last_Id := Name_Entries.Last;
+
return Name_Entries.Last;
end Name_Enter;
@@ -427,6 +429,8 @@
Name_Chars.Append (ASCII.NUL);
+ Last_Id := Name_Entries.Last;
+
return Name_Entries.Last;
end Name_Find;
--- gprbuild-gpl-2017-src/gpr/src/gpr-snames.adb.old 2017-11-19 13:12:41.592995718 +0100
+++ gprbuild-gpl-2017-src/gpr/src/gpr-snames.adb 2017-11-19 13:16:31.980979696 +0100
@@ -53,6 +53,10 @@
return;
end if;
+ if Last_Id = Name_Id'First then
+ Add_Name ("");
+ end if;
+
Add_Name ("a");
Add_Name ("b");
Add_Name ("c");

View File

@@ -1,94 +0,0 @@
<?xml version="1.0" ?>
<gprconfig>
<compiler_description>
<name>GNAT-@VER@</name>
<executable prefix="1">gnatmake-@VER@</executable>
<version>
<external>${PREFIX}gnatls-@VER@ -v --version</external>
<grep regexp="^GNATLS.+?(\d+(\.\d+)?)" group="1"></grep>
</version>
<languages>Ada</languages>
<variable name="gcc_version">
<external>${PREFIX}gcc-@VER@ -v</external>
<grep regexp="^[-\w]*gcc \S+ (\S+)" group="1"></grep>
</variable>
<runtimes default="default,kernel,native">
<directory group="default" >\.\./lib/gcc(-lib)?/$TARGET/$gcc_version/adalib/</directory>
<directory group="default" contents="^rts-">\.\./lib/gcc(-lib)?/$TARGET/$gcc_version/ada_object_path</directory>
<directory group="2" >\.\./lib/gcc(-lib)?/$TARGET/$gcc_version/rts-(.*)/adalib/</directory>
<directory group="1" >\.\./$TARGET/lib/gnat/(.*)/adalib/</directory>
</runtimes>
<target>
<external>${PREFIX}gcc-@VER@ -dumpmachine</external>
<grep regexp="[^\r\n]+"></grep>
</target>
</compiler_description>
<configuration>
<compilers>
<compiler name="GNAT-@VER@" />
</compilers>
<config>
package Naming is
for Spec_Suffix ("Ada") use ".ads";
for Body_Suffix ("Ada") use ".adb";
for Casing use "lowercase";
for Dot_Replacement use "-";
end Naming;
package Compiler is
for Driver ("Ada") use "${PATH(ada)}${PREFIX(ada)}gcc-@VER@";
for Language_Kind ("Ada") use "unit_based";
for Dependency_Kind ("Ada") use "ALI_File";
for Leading_Required_Switches ("Ada") use
("-c", "-x", "ada", "-gnatA")
&amp; Compiler'Leading_Required_Switches ("Ada");
for Mapping_File_Switches ("Ada") use ("-gnatem=");
for Mapping_Spec_Suffix ("Ada") use "%s";
for Mapping_Body_Suffix ("Ada") use "%b";
for Config_File_Switches ("Ada") use ("-gnatec=");
for Include_Path_File ("Ada") use "ADA_PRJ_INCLUDE_FILE";
for Multi_Unit_Switches ("Ada") use ("-gnateI");
for Multi_Unit_Object_Separator ("Ada") use "~";
for Config_Body_File_Name ("Ada") use
"pragma Source_File_Name_Project (%u, Body_File_Name => ""%f"");";
for Config_Spec_File_Name ("Ada") use
"pragma Source_File_Name_Project (%u, Spec_File_Name => ""%f"");";
for Config_Body_File_Name_Index ("Ada") use
"pragma Source_File_Name_Project (%u, Body_File_Name => ""%f"", Index => %i);";
for Config_Spec_File_Name_Index ("Ada") use
"pragma Source_File_Name_Project (%u, Spec_File_Name => ""%f"", Index => %i);";
for Config_Body_File_Name_Pattern ("Ada") use
"pragma Source_File_Name_Project " &amp;
" (Body_File_Name => ""*%b""," &amp;
" Casing => %c," &amp;
" Dot_Replacement => ""%d"");";
for Config_Spec_File_Name_Pattern ("Ada") use
"pragma Source_File_Name_Project " &amp;
" (Spec_File_Name => ""*%s""," &amp;
" Casing => %c," &amp;
" Dot_Replacement => ""%d"");";
for Config_File_Unique ("Ada") use "False";
for PIC_Option ("Ada") use ("-fPIC");
end Compiler;
package Binder is
for Objects_Path_File ("Ada") use "ADA_PRJ_OBJECTS_FILE";
for Driver ("Ada") use
"${GPRCONFIG_PREFIX}libexec/gprbuild/gprbind";
for Switches ("Ada") use ("--gnatbind_path=gnatbind-@VER@");
end Binder;
package Clean is
for Source_Artifact_Extensions ("Ada")
use (".dg", ".rep", ".stdout", ".stderr");
for Object_Artifact_Extensions ("Ada") use (".s", ".ci", ".gcno");
end Clean;
for Toolchain_Version ("Ada") use "GNAT ${VERSION(ada)}";
for Runtime_Library_Dir ("Ada") use "${RUNTIME_DIR(ada)}/adalib/";
for Runtime_Source_Dirs ("Ada") use ("${RUNTIME_DIR(ada)}/adainclude/");
for Library_Encapsulated_Supported use "true";
</config>
</configuration>
</gprconfig>

View File

@@ -76,3 +76,30 @@
Add_Name ("a");
Add_Name ("b");
Add_Name ("c");
--- gprbuild-gpl-2017/src/gprlib.adb.old 2017-12-18 12:20:02.937317216 +0100
+++ gprbuild-gpl-2017/src/gprlib.adb 2017-12-18 12:21:36.519604590 +0100
@@ -400,7 +400,7 @@
Driver_Name : Name_Id := No_Name;
- Gnatbind_Name : String_Access := new String'("gnatbind");
+ Gnatbind_Name : String_Access := new String'("@GNATBIND@");
Gnatbind_Path : String_Access;
@@ -2237,13 +2237,13 @@
and then Line (Last - 2 .. Last) = "gcc"
then
Gnatbind_Name :=
- new String'(Line (1 .. Last - 3) & "gnatbind");
+ new String'(Line (1 .. Last - 3) & "@GNATBIND@");
elsif Last > 7
and then Line (Last - 6 .. Last) = "gcc.exe"
then
Gnatbind_Name :=
- new String'(Line (1 .. Last - 7) & "gnatbind");
+ new String'(Line (1 .. Last - 7) & "@GNATBIND@");
end if;
end if;

View File

@@ -1,77 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit toolchain-funcs multiprocessing
MYP=${PN}-gpl-${PV}
DESCRIPTION="Multi-Language Management"
HOMEPAGE="http://libre.adacore.com/"
SRC_URI="
http://mirrors.cdn.adacore.com/art/57399662c7a447658e0affa8
-> ${MYP}-src.tar.gz
http://mirrors.cdn.adacore.com/art/57399978c7a447658e0affc0
-> xmlada-gpl-${PV}-src.tar.gz"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"
IUSE="+gnat_2016 gnat_2017"
DEPEND="gnat_2016? ( dev-lang/gnat-gpl:4.9.4 )
gnat_2017? ( dev-lang/gnat-gpl:6.3.0 )"
RDEPEND="${DEPEND}"
S="${WORKDIR}"/${MYP}-src
REQUIRED_USE="^^ ( gnat_2016 gnat_2017 )"
PATCHES=( "${FILESDIR}"/${P}-gentoo.patch )
src_prepare() {
if use gnat_2016; then
GCC_PV=4.9.4
else
GCC_PV=6.3.0
fi
sed -e "s:@VER@:${GCC_PV}:g" "${FILESDIR}"/${P}.xml > gnat-${GCC_PV}.xml
default
}
src_configure() {
:
}
bin_progs="gprbuild gprconfig gprclean gprinstall gprname gprls"
lib_progs="gprlib gprbind"
src_compile() {
GCC=${CHOST}-gcc-${GCC_PV}
GNATMAKE=${CHOST}-gnatmake-${GCC_PV}
local xmlada_src="../xmlada-gpl-${PV}-src"
incflags="-Isrc -Igpr/src -I${xmlada_src}/sax -I${xmlada_src}/dom \
-I${xmlada_src}/schema -I${xmlada_src}/unicode \
-I${xmlada_src}/input_sources"
${GCC} -c ${CFLAGS} src/gpr_imports.c -o gpr_imports.o || die
for bin in ${bin_progs}; do
${GNATMAKE} -j$(makeopts_jobs) ${incflags} $ADAFLAGS ${bin}-main \
-o ${bin} -largs gpr_imports.o || die
done
for lib in $lib_progs; do
${GNATMAKE} -j$(makeopts_jobs) ${incflags} ${lib} $ADAFLAGS \
-largs gpr_imports.o || die
done
}
src_install() {
dobin ${bin_progs}
exeinto /usr/libexec/gprbuild
doexe ${lib_progs}
insinto /usr/share/gprconfig
doins share/gprconfig/*
insinto /usr/share/gpr
doins share/_default.gpr
insinto /usr/share/gprconfig
doins gnat-${GCC_PV}.xml
einstalldocs
}

View File

@@ -36,6 +36,10 @@ src_prepare() {
fi
sed -e "s:@VER@:${GCC_PV}:g" "${FILESDIR}"/${P}.xml > gnat-${GCC_PV}.xml
default
sed -i \
-e "s:@GNATBIND@:gnatbind-${GCC_PV}:g" \
src/gprlib.adb \
|| die
}
src_configure() {