gcc: enable Ada (gnat) for x86_64 and i686
See: #4154 Signed-off-by: Jürgen Buchmüller <pullmoll@t-online.de>
This commit is contained in:
parent
985bb8e918
commit
e1da908004
|
@ -7,7 +7,7 @@ _isl_version=0.19
|
|||
|
||||
pkgname=gcc
|
||||
version=${_majorver}.0
|
||||
revision=4
|
||||
revision=5
|
||||
short_desc="The GNU C Compiler"
|
||||
maintainer="Juan RP <xtraeme@voidlinux.eu>"
|
||||
homepage="http://gcc.gnu.org"
|
||||
|
@ -38,10 +38,29 @@ fi
|
|||
makedepends="zlib-devel"
|
||||
depends="binutils libgcc-devel-${version}_${revision}
|
||||
libstdc++-devel-${version}_${revision} libssp-devel-${version}_${revision}"
|
||||
checkdepends="dejagnu"
|
||||
|
||||
subpackages="libgcc libgomp libgomp-devel libatomic libatomic-devel"
|
||||
subpackages+=" libssp libssp-devel"
|
||||
|
||||
build_options="gnatboot"
|
||||
desc_option_gnatboot="Bootstrap Ada using adacore.com binaries"
|
||||
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
x86_64)
|
||||
_gnat_tarball="gnat-gpl-2017-x86_64-linux-bin.tar.gz"
|
||||
distfiles+=" http://mirrors.cdn.adacore.com/art/591c6d80c7a447af2deed1d7>$_gnat_tarball"
|
||||
checksum+=" b942bcac20dea39748b39f8b624d9619f60a8dee2e8195dbe3829c835b0956e6"
|
||||
build_options_default="gnatboot"
|
||||
;;
|
||||
i686)
|
||||
_gnat_tarball="gnat-gpl-2014-x86-linux-bin.tar.gz"
|
||||
distfiles+=" http://mirrors.cdn.adacore.com/art/564b3e9dc8e196b040fbe248>$_gnat_tarball"
|
||||
checksum+=" 3b693510f5d22a240abb3034934c1adbd80ccd6e4f61a4f491cc408fdfd9c042"
|
||||
build_options_default="gnatboot"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -n "$CHROOT_READY" ]; then
|
||||
subpackages+=" gcc-fortran libgfortran-devel libgfortran"
|
||||
if [ -z "$CROSS_BUILD" ]; then
|
||||
|
@ -56,6 +75,10 @@ if [ -n "$CHROOT_READY" ]; then
|
|||
fi
|
||||
|
||||
subpackages+=" libstdc++-devel libstdc++ libgcc-devel"
|
||||
if [ "$build_option_gnatboot" ]; then
|
||||
subpackages+=" gcc-ada libada-devel libada"
|
||||
fi
|
||||
# TODO: figure whether the host's gcc is able to compile ada and enable the subpackages
|
||||
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
i686) _triplet="i686-pc-linux-gnu";;
|
||||
|
@ -104,6 +127,21 @@ post_extract() {
|
|||
cp -ar ${XBPS_BUILDDIR}/mpfr-${_mpfr_version}/* ${wrksrc}/mpfr/
|
||||
cp -ar ${XBPS_BUILDDIR}/mpc-${_mpc_version}/* ${wrksrc}/mpc/
|
||||
cp -ar ${XBPS_BUILDDIR}/isl-${_isl_version}/* ${wrksrc}/isl/
|
||||
|
||||
if [ "$build_option_gnatboot" ]; then
|
||||
local f="${XBPS_SRCDISTDIR}/${pkgname}-${version}/${_gnat_tarball}"
|
||||
msg_normal "Extracting ${_gnat_tarball} ...\n"
|
||||
mkdir -p ${wrksrc}/gnat-ins
|
||||
tar -x -f "$f" --strip-components=1 -C ${wrksrc}/gnat-ins
|
||||
cd ${wrksrc}/gnat-ins
|
||||
make ins-all prefix=${wrksrc}/gnat
|
||||
cd ${wrksrc}
|
||||
rm -rf ${wrksrc}/gnat-ins
|
||||
|
||||
# Rename obsolete ld and as
|
||||
find ${wrksrc}/gnat -name ld -exec mv -v {} {}.old \;
|
||||
find ${wrksrc}/gnat -name as -exec mv -v {} {}.old \;
|
||||
fi
|
||||
}
|
||||
|
||||
pre_configure() {
|
||||
|
@ -141,26 +179,23 @@ do_configure() {
|
|||
export GCC_FOR_TARGET="$CC"
|
||||
export CXX_FOR_TARGET="$CXX"
|
||||
|
||||
_args+=" --disable-multilib"
|
||||
_args+=" --host=$XBPS_CROSS_TRIPLET"
|
||||
_args+=" --with-build-sysroot=${XBPS_CROSS_BASE}"
|
||||
_args+=" --enable-sjlj-exceptions=no"
|
||||
_langs+=",fortran"
|
||||
elif [ -z "$CHROOT_READY" ]; then
|
||||
export LD_LIBRARY_PATH="${XBPS_MASTERDIR}/usr/lib"
|
||||
_args+=" --build=${_triplet}"
|
||||
else
|
||||
if [ -z "$CHROOT_READY" ]; then
|
||||
export LD_LIBRARY_PATH="${XBPS_MASTERDIR}/usr/lib"
|
||||
_args+=" --build=${_triplet}"
|
||||
else
|
||||
_langs="c,c++,objc,obj-c++,fortran,lto"
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
*-musl) # Linking libgo.so is broken for musl libc
|
||||
;;
|
||||
*) _langs+=",go"
|
||||
;;
|
||||
esac
|
||||
_args+=" --build=${_triplet}"
|
||||
_args+=" --enable-fast-character"
|
||||
fi
|
||||
_langs="c,c++,objc,obj-c++,fortran,lto"
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
*-musl) # Linking libgo.so is broken for musl libc
|
||||
;;
|
||||
*) _langs+=",go"
|
||||
;;
|
||||
esac
|
||||
_args+=" --build=${_triplet}"
|
||||
_args+=" --enable-fast-character"
|
||||
fi
|
||||
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
|
@ -182,6 +217,7 @@ do_configure() {
|
|||
# Disable explicit -fno-PIE, gcc will figure this out itself.
|
||||
export CFLAGS="${CFLAGS//-fno-PIE/}"
|
||||
export CXXFLAGS="${CXXFLAGS//-fno-PIE/}"
|
||||
export LDFLAGS="${LDFLAGS//-no-pie/}"
|
||||
|
||||
_args+=" --prefix=/usr"
|
||||
_args+=" --mandir=/usr/share/man"
|
||||
|
@ -208,11 +244,23 @@ do_configure() {
|
|||
_args+=" --with-linker-hash-style=$_hash"
|
||||
_args+=" --disable-libunwind-exceptions"
|
||||
_args+=" --disable-target-libiberty"
|
||||
_args+=" --enable-languages=${_langs}"
|
||||
|
||||
mkdir -p build
|
||||
cd build
|
||||
CONFIG_SHELL=/bin/bash ${wrksrc}/configure ${_args}
|
||||
if [ "$build_option_gnatboot" ]; then
|
||||
_args+=" --enable-languages=${_langs},ada"
|
||||
_args+=" --enable-libada"
|
||||
CONFIG_SHELL=/bin/bash \
|
||||
CC="${wrksrc}/gnat/bin/gcc" \
|
||||
GNATBIND="${wrksrc}/gnat/bin/gnatbind" \
|
||||
GNATMAKE="${wrksrc}/gnat/bin/gnatmake" \
|
||||
PATH="${wrksrc}/gnat/bin:$PATH" \
|
||||
${wrksrc}/configure ${_args}
|
||||
else
|
||||
_args+=" --enable-languages=${_langs}"
|
||||
CONFIG_SHELL=/bin/bash \
|
||||
${wrksrc}/configure ${_args}
|
||||
fi
|
||||
|
||||
}
|
||||
do_build() {
|
||||
|
@ -220,7 +268,15 @@ do_build() {
|
|||
export LD_LIBRARY_PATH="${XBPS_MASTERDIR}/usr/lib"
|
||||
fi
|
||||
cd build
|
||||
make ${makejobs}
|
||||
if [ "$build_option_gnatboot" ]; then
|
||||
CC="${wrksrc}/gnat/bin/gcc" \
|
||||
GNATBIND="${wrksrc}/gnat/bin/gnatbind" \
|
||||
GNATMAKE="${wrksrc}/gnat/bin/gnatmake" \
|
||||
PATH="${wrksrc}/gnat/bin:$PATH" \
|
||||
make ${makejobs}
|
||||
else
|
||||
make ${makejobs}
|
||||
fi
|
||||
}
|
||||
pre_install() {
|
||||
if [ "$CROSS_BUILD" ]; then
|
||||
|
@ -284,6 +340,16 @@ do_install() {
|
|||
esac
|
||||
}
|
||||
|
||||
gcc-ada_package() {
|
||||
lib32disabled=yes
|
||||
depends="gcc>=${_majorver} libada>=${_majorver}"
|
||||
short_desc+=" - Ada compiler frontend"
|
||||
pkg_install() {
|
||||
for f in gnat{,bind,chop,clean,find,kr,link,ls,make,name,prep,xref}; do
|
||||
vmove usr/bin/${f}
|
||||
done
|
||||
}
|
||||
}
|
||||
gcc-go_package() {
|
||||
lib32disabled=yes
|
||||
depends="gcc>=${_majorver} libgo-devel>=${_majorver}"
|
||||
|
@ -346,6 +412,20 @@ gcc-objc_package() {
|
|||
vmove usr/lib/gcc/${_triplet}/${_majorver}/cc1obj
|
||||
}
|
||||
}
|
||||
libada-devel_package() {
|
||||
depends="libada>=${_majorver}"
|
||||
short_desc+=" - Ada library - development files"
|
||||
pkg_install() {
|
||||
vmove usr/lib/gcc/${_triplet}/${_majorver}/adainclude
|
||||
vmove usr/lib/gcc/${_triplet}/${_majorver}/plugin/include/ada
|
||||
}
|
||||
}
|
||||
libada_package() {
|
||||
short_desc=" - Ada library"
|
||||
pkg_install() {
|
||||
vmove usr/lib/gcc/${_triplet}/${_majorver}/adalib
|
||||
}
|
||||
}
|
||||
libgfortran-devel_package() {
|
||||
depends="libgfortran>=${_majorver}"
|
||||
short_desc+=" - Fortran library - development files"
|
||||
|
|
Loading…
Reference in New Issue