diff options
author | Tupone Alfredo <tupone@gentoo.org> | 2019-11-20 21:42:25 +0100 |
---|---|---|
committer | Tupone Alfredo <tupone@gentoo.org> | 2019-11-20 21:42:25 +0100 |
commit | 8399882e86b57ae98449eb72eddd4357625f3143 (patch) | |
tree | ac4fb010a76850d619897726461ac3a653cd29da /dev-lang/gnat-gpl | |
parent | sci-astronomy/kstars: 3.3.8 version bump (diff) | |
download | gentoo-8399882e86b57ae98449eb72eddd4357625f3143.tar.gz gentoo-8399882e86b57ae98449eb72eddd4357625f3143.tar.bz2 gentoo-8399882e86b57ae98449eb72eddd4357625f3143.zip |
dev-lang/gnat-gpl: EAPI 6
Package-Manager: Portage-2.3.76, Repoman-2.3.16
Signed-off-by: Alfredo Tupone <tupone@gentoo.org>
Diffstat (limited to 'dev-lang/gnat-gpl')
-rw-r--r-- | dev-lang/gnat-gpl/files/gnat-gpl-2017-gentoo.patch | 28 | ||||
-rw-r--r-- | dev-lang/gnat-gpl/files/gnat-gpl-2017-ustat.patch | 4 | ||||
-rw-r--r-- | dev-lang/gnat-gpl/gnat-gpl-2017-r1.ebuild | 193 |
3 files changed, 209 insertions, 16 deletions
diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2017-gentoo.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2017-gentoo.patch index 9df03f8e7941..de013cdc0d3a 100644 --- a/dev-lang/gnat-gpl/files/gnat-gpl-2017-gentoo.patch +++ b/dev-lang/gnat-gpl/files/gnat-gpl-2017-gentoo.patch @@ -1,5 +1,5 @@ ---- patch/13_all_default-ssp-fix.patch.old 2017-06-14 11:29:28.997183865 +0200 -+++ patch/13_all_default-ssp-fix.patch 2017-06-14 12:24:15.042271863 +0200 +--- a/patch/13_all_default-ssp-fix.patch 2017-06-14 11:29:28.997183865 +0200 ++++ b/patch/13_all_default-ssp-fix.patch 2017-06-14 12:24:15.042271863 +0200 @@ -39,9 +39,9 @@ %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\ %{fsyntax-only:-o %j} %{-param*}\ @@ -12,8 +12,8 @@ --- a/gcc/params.def 2016-03-30 09:47:40.000000000 +0200 +++ b/gcc/params.def 2016-09-19 12:56:58.443179039 +0200 @@ -673,7 +673,7 @@ DEFPARAM (PARAM_INTEGER_SHARE_LIMIT, ---- gcc-6-gpl-2017-src/gcc/ada/osint.adb.old 2017-03-10 21:58:02.600710156 +0100 -+++ gcc-6-gpl-2017-src/gcc/ada/osint.adb 2017-03-10 21:59:38.033983293 +0100 +--- a/gcc-6-gpl-2017-src/gcc/ada/osint.adb 2017-03-10 21:58:02.600710156 +0100 ++++ b/gcc-6-gpl-2017-src/gcc/ada/osint.adb 2017-03-10 21:59:38.033983293 +0100 @@ -2229,14 +2229,11 @@ for J in Start_Of_Prefix .. Name_Len - Prog'Length + 1 loop if Name_Buffer (J .. J + Prog'Length - 1) = Prog then @@ -30,8 +30,8 @@ -- Create the new program name return new String' ---- gcc-6-gpl-2017-src/libgcc/config/i386/linux-unwind.h.old 2017-12-07 20:57:02.737224515 +0100 -+++ gcc-6-gpl-2017-src/libgcc/config/i386/linux-unwind.h 2017-12-07 21:01:59.431929926 +0100 +--- a/gcc-6-gpl-2017-src/libgcc/config/i386/linux-unwind.h 2017-12-07 20:57:02.737224515 +0100 ++++ b/gcc-6-gpl-2017-src/libgcc/config/i386/linux-unwind.h 2017-12-07 21:01:59.431929926 +0100 @@ -58,7 +58,7 @@ if (*(unsigned char *)(pc+0) == 0x48 && *(unsigned long long *)(pc+1) == RT_SIGRETURN_SYSCALL) @@ -50,8 +50,8 @@ } *rt_ = context->cfa; /* The void * cast is necessary to avoid an aliasing warning. The aliasing warning is correct, but should not be a problem ---- gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc.old 2017-12-07 22:05:30.512328872 +0100 -+++ gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc 2017-12-07 22:05:53.104950070 +0100 +--- a/gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc 2017-12-07 22:05:30.512328872 +0100 ++++ b/gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc 2017-12-07 22:05:53.104950070 +0100 @@ -267,7 +267,7 @@ // Alternate stack for signal handling. @@ -61,8 +61,8 @@ internal_memset(&handler_stack, 0, sizeof(handler_stack)); handler_stack.ss_sp = handler_stack_memory.data(); handler_stack.ss_size = kHandlerStackSize; ---- gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_linux.cc.old 2017-12-07 22:09:04.912731275 +0100 -+++ gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_linux.cc 2017-12-07 22:10:03.150754764 +0100 +--- a/gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_linux.cc 2017-12-07 22:09:04.912731275 +0100 ++++ b/gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_linux.cc 2017-12-07 22:10:03.150754764 +0100 @@ -546,8 +546,7 @@ } #endif @@ -73,8 +73,8 @@ return internal_syscall(SYSCALL(sigaltstack), (uptr)ss, (uptr)oss); } ---- gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_linux.h.old 2017-12-07 22:10:10.109638062 +0100 -+++ gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_linux.h 2017-12-07 22:10:30.991287828 +0100 +--- a/gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_linux.h 2017-12-07 22:10:10.109638062 +0100 ++++ b/gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_linux.h 2017-12-07 22:10:30.991287828 +0100 @@ -28,8 +28,7 @@ // Syscall wrappers. @@ -85,8 +85,8 @@ uptr internal_sigprocmask(int how, __sanitizer_sigset_t *set, __sanitizer_sigset_t *oldset); void internal_sigfillset(__sanitizer_sigset_t *set); ---- gcc-6-gpl-2017-src/libsanitizer/tsan/tsan_platform_linux.cc.old 2017-12-07 22:15:09.626608907 +0100 -+++ gcc-6-gpl-2017-src/libsanitizer/tsan/tsan_platform_linux.cc 2017-12-07 22:15:28.825286145 +0100 +--- a/gcc-6-gpl-2017-src/libsanitizer/tsan/tsan_platform_linux.cc 2017-12-07 22:15:09.626608907 +0100 ++++ b/gcc-6-gpl-2017-src/libsanitizer/tsan/tsan_platform_linux.cc 2017-12-07 22:15:28.825286145 +0100 @@ -291,7 +291,7 @@ int ExtractResolvFDs(void *state, int *fds, int nfd) { #if SANITIZER_LINUX diff --git a/dev-lang/gnat-gpl/files/gnat-gpl-2017-ustat.patch b/dev-lang/gnat-gpl/files/gnat-gpl-2017-ustat.patch index 505c23b03a01..4c57b814ce57 100644 --- a/dev-lang/gnat-gpl/files/gnat-gpl-2017-ustat.patch +++ b/dev-lang/gnat-gpl/files/gnat-gpl-2017-ustat.patch @@ -1,5 +1,5 @@ ---- a/gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2019-04-19 20:53:11.382114157 +0200 -+++ b/gcc-6-gpl-2017-src/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2019-04-19 20:57:10.725037767 +0200 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2019-04-19 20:53:11.382114157 +0200 ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2019-04-19 20:57:10.725037767 +0200 @@ -150,7 +150,6 @@ # include <sys/procfs.h> #endif diff --git a/dev-lang/gnat-gpl/gnat-gpl-2017-r1.ebuild b/dev-lang/gnat-gpl/gnat-gpl-2017-r1.ebuild new file mode 100644 index 000000000000..0ea6d3ee0762 --- /dev/null +++ b/dev-lang/gnat-gpl/gnat-gpl-2017-r1.ebuild @@ -0,0 +1,193 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PATCH_VER="1.0" + +TOOLCHAIN_GCC_PV=6.3.0 + +inherit toolchain-funcs toolchain + +REL=6 +MYP=gcc-${REL}-gpl-${PV}-src +BTSTRP_X86=gnat-gpl-2014-x86-linux-bin +BTSTRP_AMD64=gnat-gpl-2014-x86_64-linux-bin + +DESCRIPTION="GNAT Ada Compiler - GPL version" +HOMEPAGE="http://libre.adacore.com/" +SRC_URI+=" + http://mirrors.cdn.adacore.com/art/591adbb4c7a4473fcc4532a3 + -> ${P}-src.tar.gz + http://mirrors.cdn.adacore.com/art/591adb65c7a4473fcbb153ac + -> ${MYP}.tar.gz + http://mirrors.cdn.adacore.com/art/591adbc5c7a4473fcbb153ae + -> gcc-interface-${REL}-gpl-${PV}-src.tar.gz + bootstrap? ( + amd64? ( + http://mirrors.cdn.adacore.com/art/564b3ebec8e196b040fbe66c -> + ${BTSTRP_AMD64}.tar.gz + ) + x86? ( + http://mirrors.cdn.adacore.com/art/564b3e9dc8e196b040fbe248 -> + ${BTSTRP_X86}.tar.gz + ) + )" + +LICENSE+=" GPL-2 GPL-3" +SLOT="${TOOLCHAIN_GCC_PV}" +KEYWORDS="~amd64 ~x86" +IUSE="+bootstrap" + +RDEPEND="!sys-devel/gcc:${TOOLCHAIN_GCC_PV}" +DEPEND="${RDEPEND} + elibc_glibc? ( >=sys-libs/glibc-2.13 ) + >=sys-devel/binutils-2.20" + +S="${WORKDIR}"/${MYP} +PDEPEND="${PDEPEND} elibc_glibc? ( >=sys-libs/glibc-2.13 )" +FSFGCC=gcc-${TOOLCHAIN_GCC_PV} + +pkg_setup() { + toolchain_pkg_setup + + if use amd64; then + BTSTRP=${BTSTRP_AMD64} + else + BTSTRP=${BTSTRP_X86} + fi + + if use bootstrap; then + GCC="${WORKDIR}"/${BTSTRP}/bin/gcc + else + GCC=${ADA:-$(tc-getCC)} + fi + + gnatbase=$(basename ${GCC}) + gnatpath=$(dirname ${GCC}) + + GNATMAKE=${gnatbase/gcc/gnatmake} + if [[ ${gnatpath} != "." ]] ; then + GNATMAKE="${gnatpath}/${GNATMAKE}" + fi +} + +src_unpack() { + if ! use bootstrap && [[ -z "$(type ${GNATMAKE} 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 the bootstrap use flag" + die "ada compiler not available" + fi + + GCC_A_FAKEIT=" + ${P}-src.tar.gz + ${MYP}.tar.gz + gcc-interface-${REL}-gpl-${PV}-src.tar.gz" + if use bootstrap; then + GCC_A_FAKEIT="${GCC_A_FAKEIT} ${BTSTRP}.tar.gz" + fi + + toolchain_src_unpack + if use bootstrap; then + rm ${BTSTRP}/libexec/gcc/${CHOST}/4.7.4/ld || die + fi +} + +src_prepare() { + CC=${GCC} + CXX="${gnatbase/gcc/g++}" + GNATBIND="${gnatbase/gcc/gnatbind}" + GNATLINK="${gnatbase/gcc/gnatlink}" + GNATLS="${gnatbase/gcc/gnatls}" + if [[ ${gnatpath} != "." ]] ; then + CXX="${gnatpath}/${CXX}" + GNATBIND="${gnatpath}/${GNATBIND}" + GNATLINK="${gnatpath}/${GNATLINK}" + GNATLS="${gnatpath}/${GNATLS}" + fi + mkdir bin || die + ln -s $(which ${GCC}) bin/gcc || die + ln -s $(which ${CXX}) bin/g++ || die + ln -s $(which ${GNATMAKE}) bin/gnatmake || die + ln -s $(which ${GNATBIND}) bin/gnatbind || die + ln -s $(which ${GNATLINK}) bin/gnatlink || die + ln -s $(which ${GNATLS}) bin/gnatls || die + + echo ${TOOLCHAIN_GCC_PV} > gcc/BASE-VER + + cd .. + mv ${P}-src/src/ada ${MYP}/gcc/ || die + mv gcc-interface-${REL}-gpl-${PV}-src ${MYP}/gcc/ada/gcc-interface || die + eapply "${FILESDIR}"/${P}-gentoo.patch + cd - + sed -i \ + -e 's:$(P) ::g' \ + gcc/ada/gcc-interface/Makefile.in \ + || die "sed failed" + # fix missing ustat.h + eapply "${FILESDIR}/${P}-ustat.patch" + + toolchain_src_prepare +} + +src_configure() { + export PATH=${PWD}/bin:${PATH} + local trueGCC_BRANCH_VER=${GCC_BRANCH_VER} + GCC_BRANCH_VER=$(gcc-version) + downgrade_arch_flags + GCC_BRANCH_VER=${trueGCC_BRANCH_VER} + toolchain_src_configure \ + --enable-languages=ada \ + --disable-libada +} + +src_compile() { + unset ADAFLAGS + toolchain_src_compile + gcc_do_make "-C gcc gnatlib-shared" + ln -s gcc ../build/prev-gcc || die + ln -s ${CHOST} ../build/prev-${CHOST} || die + gcc_do_make "-C gcc gnattools" +} + +src_install() { + toolchain_src_install + cd "${D}"${BINPATH} + for x in gnat*; do + # For some reason, g77 gets made instead of ${CTARGET}-g77... + # this should take care of that + if [[ -f ${x} ]] ; then + # In case they're hardlinks, clear out the target first + # otherwise the mv below will complain. + rm -f ${CTARGET}-${x} + mv ${x} ${CTARGET}-${x} + fi + + if [[ -f ${CTARGET}-${x} ]] ; then + if ! is_crosscompile ; then + ln -sf ${CTARGET}-${x} ${x} + dosym ${BINPATH#${EPREFIX}}/${CTARGET}-${x} \ + /usr/bin/${x}-${GCC_CONFIG_VER} + fi + # Create versioned symlinks + dosym ${BINPATH#${EPREFIX}}/${CTARGET}-${x} \ + /usr/bin/${CTARGET}-${x}-${GCC_CONFIG_VER} + fi + + if [[ -f ${CTARGET}-${x}-${GCC_CONFIG_VER} ]] ; then + rm -f ${CTARGET}-${x}-${GCC_CONFIG_VER} + ln -sf ${CTARGET}-${x} ${CTARGET}-${x}-${GCC_CONFIG_VER} + fi + done +} + +pkg_postinst () { + toolchain_pkg_postinst + einfo "This provide the GNAT compiler with gcc for ada/c/c++ and more" + einfo "The compiler binary is ${CTARGET}-gcc-${TOOLCHAIN_GCC_PV}" + einfo "Even if the c/c++ compilers are using almost the same patched" + einfo "source as the sys-devel/gcc package its use is not extensively" + einfo "tested, and not supported for updating your system, except for ada" + einfo "related packages" +} |