<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[HyperForum — [gcc] PKGBUILDs for newer versions]]></title>
		<link>https://forums.hyperbola.info/viewtopic.php?id=352</link>
		<atom:link href="https://forums.hyperbola.info/extern.php?action=feed&amp;tid=352&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent posts in [gcc] PKGBUILDs for newer versions.]]></description>
		<lastBuildDate>Tue, 31 Mar 2020 19:01:05 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: [gcc] PKGBUILDs for newer versions]]></title>
			<link>https://forums.hyperbola.info/viewtopic.php?pid=1837#p1837</link>
			<description><![CDATA[<p><strong>PKGBUILD for gcc-multilib 9.3.0</strong></p><div class="codebox"><pre><code># Maintainer (Arch): Jan Alexander Steffens (heftig) &lt;jan.steffens@gmail.com&gt;
# Contributor (Arch): Allan McRae &lt;allan@archlinux.org&gt;
# Maintainer: André Silva &lt;emulatorman@hyperbola.info&gt;
# Contributor: Luke R. &lt;g4jc@hyperbola.info&gt;

# toolchain build order: linux-libre-api-headers-&gt;glibc-&gt;binutils-&gt;gcc-&gt;binutils-&gt;glibc
# NOTE: libtool requires rebuilt with each new gcc version

pkgname=(&#039;gcc-multilib&#039; &#039;gcc-libs-multilib&#039; &#039;lib32-gcc-libs&#039; &#039;gcc-fortran-multilib&#039; &#039;gcc-objc-multilib&#039; &#039;gcc-ada-multilib&#039; &#039;gcc-go-multilib&#039;)
pkgver=9.3.0
pkgrel=1
_pkgver=9
_islver=0.21
pkgdesc=&quot;The GNU Compiler Collection for multilib&quot;
arch=(&#039;x86_64&#039;)
license=(&#039;GPL-3&#039; &#039;LGPL-3&#039; &#039;custom:GCC-Exception-3.1&#039; &#039;FDL-1.3&#039;)
url=&quot;https://gcc.gnu.org&quot;
makedepends=(&#039;binutils&gt;=2.28&#039; &#039;libmpc&#039; &#039;gcc-ada-multilib&#039; &#039;doxygen&#039;
             &#039;lib32-glibc&gt;=2.25&#039; &#039;quilt&#039;)
checkdepends=(&#039;dejagnu&#039; &#039;inetutils&#039;)
options=(&#039;!emptydirs&#039;)
source=(https://ftp.gnu.org/gnu/gcc/gcc-$pkgver/gcc-$pkgver.tar.xz{,.sig}
        http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2
        COPYING.DOC)
validpgpkeys=(&#039;33C235A34C46AA3FFB293709A328C3A2C3C45C06&#039;) # Jakub Jelinek &lt;jakub@redhat.com&gt; # Note: (Weak DSA) :(
sha512sums=(&#039;4b9e3639eef6e623747a22c37a904b4750c93b6da77cf3958d5047e9b5ebddb7eebe091cc16ca0a227c0ecbd2bf3b984b221130f269a97ee4cc18f9cf6c444de&#039;
            &#039;SKIP&#039;
            &#039;48f3b8d90550e8ab28837b5757f87bf99cddec67769877e04942abef69bbe526ef4c863951d55dd89a6027dc09df48988c8df6029782f990aa4d5b67e65f6d53&#039;
            &#039;bea1788b2bdc84f470e459114b871cf4ee991718964a63e18adde65116806d7676484cb30857cf74dece5eef5f96a015ee4a21900e019623e5d3484868b28b7f&#039;)

_libdir=&quot;usr/lib/gcc/$CHOST/$pkgver&quot;

prepare() {
  cd ${srcdir}/gcc-$pkgver

  # link isl for in-tree build
  ln -s ../isl-${_islver} isl

  # Do not run fixincludes
  sed -i &#039;s@\./fixinc\.sh@-c true@&#039; gcc/Makefile.in

  # Hyperbola installs x86_64 libraries /lib
  [[ $CARCH == &quot;x86_64&quot; ]] &amp;&amp; sed -i &#039;/m64=/s/lib64/lib/&#039; gcc/config/i386/t-linux64

  # hack! - some configure tests for header files using &quot;$CPP $CPPFLAGS&quot;
  sed -i &quot;/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/&quot; {libiberty,gcc}/configure

  mkdir ${srcdir}/gcc-build
}

build() {
  cd ${srcdir}/gcc-build

  # using -pipe causes spurious test-suite failures
  # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48565
  CFLAGS=${CFLAGS/-pipe/}
  CXXFLAGS=${CXXFLAGS/-pipe/}

  ${srcdir}/gcc-$pkgver/configure --prefix=/usr \
      --libdir=/usr/lib \
      --libexecdir=/usr/libexec \
      --mandir=/usr/share/man \
      --infodir=/usr/share/info \
      --with-bugurl=https://issues.hyperbola.info/ \
      --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ \
      --enable-shared \
      --enable-threads=posix \
      --with-system-zlib \
      --with-isl \
      --enable-__cxa_atexit \
      --disable-libunwind-exceptions \
      --enable-clocale=gnu \
      --disable-libstdcxx-pch \
      --disable-libssp \
      --enable-gnu-unique-object \
      --enable-linker-build-id \
      --enable-lto \
      --enable-plugin \
      --enable-install-libiberty \
      --with-linker-hash-style=gnu \
      --enable-gnu-indirect-function \
      --enable-multilib \
      --disable-werror \
      --enable-checking=release \
      --enable-default-pie \
      --enable-default-ssp \
      --enable-cet=auto \
      gdc_include_dir=/usr/include/dlang/gdc

  make -j8

  # make documentation
  make -C $CHOST/libstdc++-v3/doc doc-man-doxygen
}

check() {
  cd ${srcdir}/gcc-build

  # increase stack size to prevent test failures
  # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827
  ulimit -s 32768

  # do not abort on error as some are &quot;expected&quot;
  make -k check || true
  ${srcdir}/gcc-$pkgver/contrib/test_summary
}

package_lib32-gcc-libs()
{
  pkgdesc=&quot;Runtime libraries shipped by GCC (32-bit)&quot;
  depends=(&#039;lib32-glibc&gt;=2.25&#039;)
  options=(&#039;!emptydirs&#039; &#039;!strip&#039;)

  cd ${srcdir}/gcc-build

  make -C $CHOST/32/libgcc DESTDIR=${pkgdir} install-shared
  rm ${pkgdir}/${_libdir}/32/libgcc_eh.a

  for lib in libatomic \
             libgfortran \
             libgo \
             libgomp \
             libitm \
             libquadmath \
             libsanitizer/{a,l,ub}san \
             libstdc++-v3/src \
             libvtv; do
    make -C $CHOST/32/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
  done

  make -C $CHOST/32/libobjc DESTDIR=${pkgdir} install-libs

  # remove stuff in gcc-libs-multilib
  rm -r ${pkgdir}/usr/lib

  # Add licenses
  install -m755 -d ${pkgdir}/usr/share/licenses/lib32-gcc-libs
  install -m644 ${srcdir}/gcc-$pkgver/COPYING{3{,.LIB},.RUNTIME} ${srcdir}/COPYING.DOC \
    ${pkgdir}/usr/share/licenses/lib32-gcc-libs
}

package_gcc-libs-multilib()
{
  pkgdesc=&quot;Runtime libraries shipped by GCC for multilib&quot;
  depends=(&#039;glibc&gt;=2.25&#039; &quot;lib32-gcc-libs=$pkgver-$pkgrel&quot;)
  provides=(&quot;gcc-libs=$pkgver-$pkgrel&quot;)
  conflicts=(&#039;gcc-libs&#039;)
  options=(&#039;!emptydirs&#039; &#039;!strip&#039;)

  cd ${srcdir}/gcc-build

  make -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared
  rm ${pkgdir}/${_libdir}/libgcc_eh.a

  for lib in libatomic \
             libgfortran \
             libgo \
             libgomp \
             libitm \
             libquadmath \
             libsanitizer/{a,l,ub}san \
             libstdc++-v3/src \
             libvtv; do
    make -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
  done

  [[ $CARCH == &quot;x86_64&quot; ]] &amp;&amp; \
    make -C $CHOST/libsanitizer/tsan DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES

  make -C $CHOST/libobjc DESTDIR=${pkgdir} install-libs

  make -C $CHOST/libstdc++-v3/po DESTDIR=${pkgdir} install

  for lib in libgomp \
             libitm \
             libquadmath; do
    make -C $CHOST/$lib DESTDIR=${pkgdir} install-info
  done

  # remove stuff in lib32-gcc-libs
  rm -r ${pkgdir}/usr/lib32

  # Add licenses
  install -m755 -d ${pkgdir}/usr/share/licenses/gcc-libs-multilib
  install -m644 ${srcdir}/gcc-$pkgver/COPYING{3{,.LIB},.RUNTIME} ${srcdir}/COPYING.DOC \
    ${pkgdir}/usr/share/licenses/gcc-libs-multilib
}

package_gcc-multilib()
{
  pkgdesc=&quot;The GNU Compiler Collection - C and C++ frontends for multilib&quot;
  depends=(&quot;gcc-libs-multilib=$pkgver-$pkgrel&quot; &#039;binutils&gt;=2.28&#039; &#039;libmpc&#039;)
  groups=(&#039;multilib-devel&#039;)
  options=(&#039;staticlibs&#039;)
  provides=(&quot;gcc=$pkgver-$pkgrel&quot;)
  conflicts=(&#039;gcc&#039;)

  cd ${srcdir}/gcc-build

  make -C gcc DESTDIR=${pkgdir} install-driver install-cpp install-gcc-ar \
    c++.install-common install-headers install-plugin install-lto-wrapper

  install -m755 -t $pkgdir/usr/bin/ gcc/gcov{,-tool}
  install -m755 -t $pkgdir/${_libdir}/ gcc/{cc1,cc1plus,collect2,lto1}

  make -C $CHOST/libgcc DESTDIR=${pkgdir} install
  make -C $CHOST/32/libgcc DESTDIR=${pkgdir} install
  rm ${pkgdir}/usr/lib{,32}/libgcc_s.so*

  make -C $CHOST/libstdc++-v3/src DESTDIR=${pkgdir} install
  make -C $CHOST/libstdc++-v3/include DESTDIR=${pkgdir} install
  make -C $CHOST/libstdc++-v3/libsupc++ DESTDIR=${pkgdir} install
  make -C $CHOST/libstdc++-v3/python DESTDIR=${pkgdir} install
  make -C $CHOST/32/libstdc++-v3/src DESTDIR=${pkgdir} install
  make -C $CHOST/32/libstdc++-v3/include DESTDIR=${pkgdir} install
  make -C $CHOST/32/libstdc++-v3/libsupc++ DESTDIR=${pkgdir} install

  make DESTDIR=${pkgdir} install-libcc1
  install -d $pkgdir/usr/share/gdb/auto-load/usr/lib
  mv $pkgdir/usr/lib/libstdc++.so.6.*-gdb.py \
    $pkgdir/usr/share/gdb/auto-load/usr/lib/
  rm ${pkgdir}/usr/lib{,32}/libstdc++.so*

  make DESTDIR=${pkgdir} install-fixincludes
  make -C gcc DESTDIR=${pkgdir} install-mkheaders

  make -C lto-plugin DESTDIR=${pkgdir} install
  install -dm755 ${pkgdir}/usr/lib/bfd-plugins/
  ln -s /usr/lib/gcc/$CHOST/${pkgver}/liblto_plugin.so \
    ${pkgdir}/usr/lib/bfd-plugins/

  make -C $CHOST/libgomp DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS \
    install-nodist_libsubincludeHEADERS
  make -C $CHOST/libitm DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS
  make -C $CHOST/libquadmath DESTDIR=${pkgdir} install-nodist_libsubincludeHEADERS
  make -C $CHOST/libsanitizer DESTDIR=${pkgdir} install-nodist_{saninclude,toolexeclib}HEADERS
  make -C $CHOST/libsanitizer/asan DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS
  make -C $CHOST/libsanitizer/tsan DESTDIR=&quot;$pkgdir&quot; install-nodist_toolexeclibHEADERS
  make -C $CHOST/libsanitizer/lsan DESTDIR=&quot;$pkgdir&quot; install-nodist_toolexeclibHEADERS
  make -C $CHOST/32/libgomp DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS
  make -C $CHOST/32/libitm DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS
  make -C $CHOST/32/libsanitizer DESTDIR=${pkgdir} install-nodist_{saninclude,toolexeclib}HEADERS
  make -C $CHOST/32/libsanitizer/asan DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS


  make -C libiberty DESTDIR=${pkgdir} install
  # install PIC version of libiberty
  install -m644 ${srcdir}/gcc-build/libiberty/pic/libiberty.a ${pkgdir}/usr/lib

  make -C gcc DESTDIR=${pkgdir} install-man install-info
  rm ${pkgdir}/usr/share/man/man1/{gccgo,gfortran}.1
  rm ${pkgdir}/usr/share/info/{gccgo,gfortran,gnat-style,gnat_rm,gnat_ugn}.info

  make -C libcpp DESTDIR=${pkgdir} install
  make -C gcc DESTDIR=${pkgdir} install-po

  # many packages expect this symlink
  ln -s gcc ${pkgdir}/usr/bin/cc

  # POSIX conformance launcher scripts for c89 and c99
  cat &gt; $pkgdir/usr/bin/c89 &lt;&lt;&quot;EOF&quot;
#!/bin/sh
fl=&quot;-std=c89&quot;
for opt; do
  case &quot;$opt&quot; in
    -ansi|-std=c89|-std=iso9899:1990) fl=&quot;&quot;;;
    -std=*) echo &quot;`basename $0` called with non ANSI/ISO C option $opt&quot; &gt;&amp;2
            exit 1;;
  esac
done
exec gcc $fl ${1+&quot;$@&quot;}
EOF

  cat &gt; $pkgdir/usr/bin/c99 &lt;&lt;&quot;EOF&quot;
#!/bin/sh
fl=&quot;-std=c99&quot;
for opt; do
  case &quot;$opt&quot; in
    -std=c99|-std=iso9899:1999) fl=&quot;&quot;;;
    -std=*) echo &quot;`basename $0` called with non ISO C99 option $opt&quot; &gt;&amp;2
            exit 1;;
  esac
done
exec gcc $fl ${1+&quot;$@&quot;}
EOF

  chmod 755 $pkgdir/usr/bin/c{8,9}9

  # install the libstdc++ man pages
  make -C $CHOST/libstdc++-v3/doc DESTDIR=$pkgdir doc-install-man

  # Add licenses
  install -m755 -d ${pkgdir}/usr/share/licenses/gcc-multilib
  install -m644 ${srcdir}/gcc-$pkgver/COPYING{3{,.LIB},.RUNTIME} ${srcdir}/COPYING.DOC \
    ${pkgdir}/usr/share/licenses/gcc-multilib
}

package_gcc-fortran-multilib()
{
  pkgdesc=&quot;Fortran front-end for GCC for multilib&quot;
  depends=(&quot;gcc-multilib=$pkgver-$pkgrel&quot;)
  provides=(&quot;gcc-fortran=$pkgver-$pkgrel&quot;)
  conflicts=(&#039;gcc-fortran&#039;)
  options=(&#039;!emptydirs&#039;)

  cd ${srcdir}/gcc-build
  make -C $CHOST/libgfortran DESTDIR=$pkgdir install-cafexeclibLTLIBRARIES \
    install-{toolexeclibDATA,nodist_fincludeHEADERS}
  make -C $CHOST/32/libgfortran DESTDIR=$pkgdir install-cafexeclibLTLIBRARIES \
    install-{toolexeclibDATA,nodist_fincludeHEADERS}
  make -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS
  make -C gcc DESTDIR=$pkgdir fortran.install-{common,man,info}
  install -Dm755 gcc/f951 $pkgdir/${_libdir}/f951

  ln -s gfortran ${pkgdir}/usr/bin/f95

  # Add licenses
  install -m755 -d ${pkgdir}/usr/share/licenses/gcc-fortran-multilib
  install -m644 ${srcdir}/gcc-$pkgver/COPYING{3{,.LIB},.RUNTIME} ${srcdir}/COPYING.DOC \
    ${pkgdir}/usr/share/licenses/gcc-fortran-multilib
}

package_gcc-objc-multilib()
{
  pkgdesc=&quot;Objective-C front-end for GCC for multilib&quot;
  depends=(&quot;gcc-multilib=$pkgver-$pkgrel&quot;)
  provides=(&quot;gcc-objc=$pkgver-$pkgrel&quot;)
  conflicts=(&#039;gcc-objc&#039;)

  cd ${srcdir}/gcc-build
  make DESTDIR=$pkgdir -C $CHOST/libobjc install-headers
  install -dm755 $pkgdir/${_libdir}
  install -m755 gcc/cc1obj{,plus} $pkgdir/${_libdir}/

  # Add licenses
  install -m755 -d ${pkgdir}/usr/share/licenses/gcc-objc-multilib
  install -m644 ${srcdir}/gcc-$pkgver/COPYING{3{,.LIB},.RUNTIME} ${srcdir}/COPYING.DOC \
    ${pkgdir}/usr/share/licenses/gcc-objc-multilib
}

package_gcc-ada-multilib()
{
  pkgdesc=&quot;Ada front-end for GCC (GNAT) for multilib&quot;
  depends=(&quot;gcc-multilib=$pkgver-$pkgrel&quot;)
  provides=(&quot;gcc-ada=$pkgver-$pkgrel&quot;)
  conflicts=(&#039;gcc-ada&#039;)
  options=(&#039;staticlibs&#039; &#039;!emptydirs&#039;)

  cd ${srcdir}/gcc-build/gcc
  make DESTDIR=$pkgdir ada.install-{common,info}
  install -m755 gnat1 $pkgdir/${_libdir}

  cd ../$CHOST/32/libada
  make DESTDIR=${pkgdir} INSTALL=&quot;install&quot; \
    INSTALL_DATA=&quot;install -m644&quot; install-libada

  ln -s gcc ${pkgdir}/usr/bin/gnatgcc

  # insist on dynamic linking, but keep static libraries because gnatmake complains
  mv ${pkgdir}/${_libdir}/adalib/libgna{rl,t}-${_pkgver}.so ${pkgdir}/usr/lib
  ln -s libgnarl-${_pkgver}.so ${pkgdir}/usr/lib/libgnarl.so
  ln -s libgnat-${_pkgver}.so ${pkgdir}/usr/lib/libgnat.so
  rm ${pkgdir}/${_libdir}/adalib/libgna{rl,t}.so

  install -d ${pkgdir}/usr/lib32/
  mv ${pkgdir}/${_libdir}/32/adalib/libgna{rl,t}-${_pkgver}.so ${pkgdir}/usr/lib32
  ln -s libgnarl-${_pkgver}.so ${pkgdir}/usr/lib32/libgnarl.so
  ln -s libgnat-${_pkgver}.so ${pkgdir}/usr/lib32/libgnat.so
  rm ${pkgdir}/${_libdir}/32/adalib/libgna{rl,t}.so

  # Add licenses
  install -m755 -d ${pkgdir}/usr/share/licenses/gcc-ada-multilib
  install -m644 ${srcdir}/gcc-$pkgver/COPYING{3{,.LIB},.RUNTIME} ${srcdir}/COPYING.DOC \
    ${pkgdir}/usr/share/licenses/gcc-ada-multilib
}

package_gcc-go-multilib()
{
  pkgdesc=&quot;Go front-end for GCC for multilib&quot;
  depends=(&quot;gcc-multilib=$pkgver-$pkgrel&quot;)
  provides=(&quot;gcc-go=$pkgver-$pkgrel&quot;)
  conflicts=(&#039;go&#039; &#039;gcc-go&#039;)
  options=(&#039;!emptydirs&#039;)

  cd ${srcdir}/gcc-build
  make -C $CHOST/libgo DESTDIR=$pkgdir install-exec-am
  make -C $CHOST/32/libgo DESTDIR=$pkgdir install-exec-am
  rm ${pkgdir}/usr/lib/libgo.so* ${pkgdir}/usr/lib32/libgo.so*
  make -C gcc DESTDIR=$pkgdir go.install-{common,man,info}
  install -Dm755 gcc/go1 $pkgdir/${_libdir}/go1

  make DESTDIR=${pkgdir} install-gotools

  # Add licenses
  install -m755 -d ${pkgdir}/usr/share/licenses/gcc-go-multilib
  install -m644 ${srcdir}/gcc-$pkgver/COPYING{3{,.LIB},.RUNTIME} ${srcdir}/COPYING.DOC \
    ${pkgdir}/usr/share/licenses/gcc-go-multilib
}</code></pre></div><p><strong>NOTE;</strong> You need a newer version of <strong>glibc</strong> for sure to finalize the compilation. Looking <a href="https://forums.hyperbola.info/viewtopic.php?id=327">here</a> for the concurrent PKGBUILD for version 2.27!</p>]]></description>
			<author><![CDATA[null@example.com (throgh)]]></author>
			<pubDate>Tue, 31 Mar 2020 19:01:05 +0000</pubDate>
			<guid>https://forums.hyperbola.info/viewtopic.php?pid=1837#p1837</guid>
		</item>
		<item>
			<title><![CDATA[Re: [gcc] PKGBUILDs for newer versions]]></title>
			<link>https://forums.hyperbola.info/viewtopic.php?pid=1836#p1836</link>
			<description><![CDATA[<p><strong>PKGBUILD for gcc-multilib 8.4.0</strong></p><div class="codebox"><pre><code># Maintainer (Arch): Jan Alexander Steffens (heftig) &lt;jan.steffens@gmail.com&gt;
# Contributor (Arch): Allan McRae &lt;allan@archlinux.org&gt;
# Maintainer: André Silva &lt;emulatorman@hyperbola.info&gt;
# Contributor: Luke R. &lt;g4jc@hyperbola.info&gt;

# toolchain build order: linux-libre-api-headers-&gt;glibc-&gt;binutils-&gt;gcc-&gt;binutils-&gt;glibc
# NOTE: libtool requires rebuilt with each new gcc version

pkgname=(&#039;gcc-multilib&#039; &#039;gcc-libs-multilib&#039; &#039;lib32-gcc-libs&#039; &#039;gcc-fortran-multilib&#039; &#039;gcc-objc-multilib&#039; &#039;gcc-ada-multilib&#039; &#039;gcc-go-multilib&#039;)
pkgver=8.4.0
pkgrel=1
_pkgver=8
_islver=0.21
pkgdesc=&quot;The GNU Compiler Collection for multilib&quot;
arch=(&#039;x86_64&#039;)
license=(&#039;GPL-3&#039; &#039;LGPL-3&#039; &#039;custom:GCC-Exception-3.1&#039; &#039;FDL-1.3&#039;)
url=&quot;https://gcc.gnu.org&quot;
makedepends=(&#039;binutils&gt;=2.28&#039; &#039;libmpc&#039; &#039;gcc-ada-multilib&#039; &#039;doxygen&#039;
             &#039;lib32-glibc&gt;=2.25&#039; &#039;quilt&#039;)
checkdepends=(&#039;dejagnu&#039; &#039;inetutils&#039;)
options=(&#039;!emptydirs&#039;)
source=(https://ftp.gnu.org/gnu/gcc/gcc-$pkgver/gcc-$pkgver.tar.xz{,.sig}
        http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2
        COPYING.DOC)
validpgpkeys=(&#039;33C235A34C46AA3FFB293709A328C3A2C3C45C06&#039;) # Jakub Jelinek &lt;jakub@redhat.com&gt; # Note: (Weak DSA) :(
sha512sums=(&#039;6de904f552a02de33b11ef52312bb664396efd7e1ce3bbe37bfad5ef617f133095b3767b4804bc7fe78df335cb53bc83f1ac055baed40979ce4c2c3e46b70280&#039;
            &#039;SKIP&#039;
            &#039;48f3b8d90550e8ab28837b5757f87bf99cddec67769877e04942abef69bbe526ef4c863951d55dd89a6027dc09df48988c8df6029782f990aa4d5b67e65f6d53&#039;
            &#039;bea1788b2bdc84f470e459114b871cf4ee991718964a63e18adde65116806d7676484cb30857cf74dece5eef5f96a015ee4a21900e019623e5d3484868b28b7f&#039;)

_libdir=&quot;usr/lib/gcc/$CHOST/$pkgver&quot;

prepare() {
  cd ${srcdir}/gcc-$pkgver

  # link isl for in-tree build
  ln -s ../isl-${_islver} isl

  # Do not run fixincludes
  sed -i &#039;s@\./fixinc\.sh@-c true@&#039; gcc/Makefile.in

  # Hyperbola installs x86_64 libraries /lib
  [[ $CARCH == &quot;x86_64&quot; ]] &amp;&amp; sed -i &#039;/m64=/s/lib64/lib/&#039; gcc/config/i386/t-linux64

  # hack! - some configure tests for header files using &quot;$CPP $CPPFLAGS&quot;
  sed -i &quot;/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/&quot; {libiberty,gcc}/configure

  mkdir ${srcdir}/gcc-build
}

build() {
  cd ${srcdir}/gcc-build

  # using -pipe causes spurious test-suite failures
  # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48565
  CFLAGS=${CFLAGS/-pipe/}
  CXXFLAGS=${CXXFLAGS/-pipe/}

  ${srcdir}/gcc-$pkgver/configure --prefix=/usr \
      --libdir=/usr/lib \
      --libexecdir=/usr/libexec \
      --mandir=/usr/share/man \
      --infodir=/usr/share/info \
      --with-bugurl=https://issues.hyperbola.info/ \
      --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ \
      --enable-shared \
      --enable-threads=posix \
      --enable-libmpx \
      --with-system-zlib \
      --with-isl \
      --enable-__cxa_atexit \
      --disable-libunwind-exceptions \
      --enable-clocale=gnu \
      --disable-libstdcxx-pch \
      --disable-libssp \
      --enable-gnu-unique-object \
      --enable-linker-build-id \
      --enable-lto \
      --enable-plugin \
      --enable-install-libiberty \
      --with-linker-hash-style=gnu \
      --enable-gnu-indirect-function \
      --enable-multilib \
      --disable-werror \
      --enable-checking=release

  make

  # make documentation
  make -C $CHOST/libstdc++-v3/doc doc-man-doxygen
}

check() {
  cd ${srcdir}/gcc-build

  # increase stack size to prevent test failures
  # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827
  ulimit -s 32768

  # do not abort on error as some are &quot;expected&quot;
  make -k check || true
  ${srcdir}/gcc-$pkgver/contrib/test_summary
}

package_lib32-gcc-libs()
{
  pkgdesc=&quot;Runtime libraries shipped by GCC (32-bit)&quot;
  depends=(&#039;lib32-glibc&gt;=2.25&#039;)
  options=(&#039;!emptydirs&#039; &#039;!strip&#039;)

  cd ${srcdir}/gcc-build

  make -C $CHOST/32/libgcc DESTDIR=${pkgdir} install-shared
  rm ${pkgdir}/${_libdir}/32/libgcc_eh.a

  for lib in libatomic \
             libgfortran \
             libgo \
             libgomp \
             libitm \
             libquadmath \
             libsanitizer/{a,l,ub}san \
             libstdc++-v3/src \
             libvtv; do
    make -C $CHOST/32/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
  done

  make -C $CHOST/32/libobjc DESTDIR=${pkgdir} install-libs

  make -C $CHOST/32/libmpx DESTDIR=${pkgdir} install
  rm ${pkgdir}/usr/lib32/libmpx.spec

  # remove stuff in gcc-libs-multilib
  rm -r ${pkgdir}/usr/lib

  # Add licenses
  install -m755 -d ${pkgdir}/usr/share/licenses/lib32-gcc-libs
  install -m644 ${srcdir}/gcc-$pkgver/COPYING{3{,.LIB},.RUNTIME} ${srcdir}/COPYING.DOC \
    ${pkgdir}/usr/share/licenses/lib32-gcc-libs
}

package_gcc-libs-multilib()
{
  pkgdesc=&quot;Runtime libraries shipped by GCC for multilib&quot;
  depends=(&#039;glibc&gt;=2.25&#039; &quot;lib32-gcc-libs=$pkgver-$pkgrel&quot;)
  provides=(&quot;gcc-libs=$pkgver-$pkgrel&quot;)
  conflicts=(&#039;gcc-libs&#039;)
  options=(&#039;!emptydirs&#039; &#039;!strip&#039;)

  cd ${srcdir}/gcc-build

  make -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared
  rm ${pkgdir}/${_libdir}/libgcc_eh.a

  for lib in libatomic \
             libgfortran \
             libgo \
             libgomp \
             libitm \
             libquadmath \
             libsanitizer/{a,l,ub}san \
             libstdc++-v3/src \
             libvtv; do
    make -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
  done

  [[ $CARCH == &quot;x86_64&quot; ]] &amp;&amp; \
    make -C $CHOST/libsanitizer/tsan DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES

  make -C $CHOST/libobjc DESTDIR=${pkgdir} install-libs

  make -C $CHOST/libstdc++-v3/po DESTDIR=${pkgdir} install

  make -C $CHOST/libmpx DESTDIR=${pkgdir} install
  rm ${pkgdir}/usr/lib/libmpx.spec

  for lib in libgomp \
             libitm \
             libquadmath; do
    make -C $CHOST/$lib DESTDIR=${pkgdir} install-info
  done

  # remove stuff in lib32-gcc-libs
  rm -r ${pkgdir}/usr/lib32

  # Add licenses
  install -m755 -d ${pkgdir}/usr/share/licenses/gcc-libs-multilib
  install -m644 ${srcdir}/gcc-$pkgver/COPYING{3{,.LIB},.RUNTIME} ${srcdir}/COPYING.DOC \
    ${pkgdir}/usr/share/licenses/gcc-libs-multilib
}

package_gcc-multilib()
{
  pkgdesc=&quot;The GNU Compiler Collection - C and C++ frontends for multilib&quot;
  depends=(&quot;gcc-libs-multilib=$pkgver-$pkgrel&quot; &#039;binutils&gt;=2.28&#039; &#039;libmpc&#039;)
  groups=(&#039;multilib-devel&#039;)
  options=(&#039;staticlibs&#039;)
  provides=(&quot;gcc=$pkgver-$pkgrel&quot;)
  conflicts=(&#039;gcc&#039;)

  cd ${srcdir}/gcc-build

  make -C gcc DESTDIR=${pkgdir} install-driver install-cpp install-gcc-ar \
    c++.install-common install-headers install-plugin install-lto-wrapper

  install -m755 -t $pkgdir/usr/bin/ gcc/gcov{,-tool}
  install -m755 -t $pkgdir/${_libdir}/ gcc/{cc1,cc1plus,collect2,lto1}

  make -C $CHOST/libgcc DESTDIR=${pkgdir} install
  make -C $CHOST/32/libgcc DESTDIR=${pkgdir} install
  rm ${pkgdir}/usr/lib{,32}/libgcc_s.so*

  make -C $CHOST/libstdc++-v3/src DESTDIR=${pkgdir} install
  make -C $CHOST/libstdc++-v3/include DESTDIR=${pkgdir} install
  make -C $CHOST/libstdc++-v3/libsupc++ DESTDIR=${pkgdir} install
  make -C $CHOST/libstdc++-v3/python DESTDIR=${pkgdir} install
  make -C $CHOST/32/libstdc++-v3/src DESTDIR=${pkgdir} install
  make -C $CHOST/32/libstdc++-v3/include DESTDIR=${pkgdir} install
  make -C $CHOST/32/libstdc++-v3/libsupc++ DESTDIR=${pkgdir} install

  make DESTDIR=${pkgdir} install-libcc1
  install -d $pkgdir/usr/share/gdb/auto-load/usr/lib
  mv $pkgdir/usr/lib/libstdc++.so.6.*-gdb.py \
    $pkgdir/usr/share/gdb/auto-load/usr/lib/
  rm ${pkgdir}/usr/lib{,32}/libstdc++.so*

  make DESTDIR=${pkgdir} install-fixincludes
  make -C gcc DESTDIR=${pkgdir} install-mkheaders

  make -C lto-plugin DESTDIR=${pkgdir} install
  install -dm755 ${pkgdir}/usr/lib/bfd-plugins/
  ln -s /usr/lib/gcc/$CHOST/${pkgver}/liblto_plugin.so \
    ${pkgdir}/usr/lib/bfd-plugins/

  make -C $CHOST/libgomp DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS \
    install-nodist_libsubincludeHEADERS
  make -C $CHOST/libitm DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS
  make -C $CHOST/libquadmath DESTDIR=${pkgdir} install-nodist_libsubincludeHEADERS
  make -C $CHOST/libsanitizer DESTDIR=${pkgdir} install-nodist_{saninclude,toolexeclib}HEADERS
  make -C $CHOST/libsanitizer/asan DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS
  make -C $CHOST/libmpx DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS
  make -C $CHOST/32/libgomp DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS
  make -C $CHOST/32/libitm DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS
  make -C $CHOST/32/libsanitizer DESTDIR=${pkgdir} install-nodist_{saninclude,toolexeclib}HEADERS
  make -C $CHOST/32/libsanitizer/asan DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS
  make -C $CHOST/32/libmpx DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS

  make -C libiberty DESTDIR=${pkgdir} install
  # install PIC version of libiberty
  install -m644 ${srcdir}/gcc-build/libiberty/pic/libiberty.a ${pkgdir}/usr/lib

  make -C gcc DESTDIR=${pkgdir} install-man install-info
  rm ${pkgdir}/usr/share/man/man1/{gccgo,gfortran}.1
  rm ${pkgdir}/usr/share/info/{gccgo,gfortran,gnat-style,gnat_rm,gnat_ugn}.info

  make -C libcpp DESTDIR=${pkgdir} install
  make -C gcc DESTDIR=${pkgdir} install-po

  # many packages expect this symlink
  ln -s gcc ${pkgdir}/usr/bin/cc

  # POSIX conformance launcher scripts for c89 and c99
  cat &gt; $pkgdir/usr/bin/c89 &lt;&lt;&quot;EOF&quot;
#!/bin/sh
fl=&quot;-std=c89&quot;
for opt; do
  case &quot;$opt&quot; in
    -ansi|-std=c89|-std=iso9899:1990) fl=&quot;&quot;;;
    -std=*) echo &quot;`basename $0` called with non ANSI/ISO C option $opt&quot; &gt;&amp;2
            exit 1;;
  esac
done
exec gcc $fl ${1+&quot;$@&quot;}
EOF

  cat &gt; $pkgdir/usr/bin/c99 &lt;&lt;&quot;EOF&quot;
#!/bin/sh
fl=&quot;-std=c99&quot;
for opt; do
  case &quot;$opt&quot; in
    -std=c99|-std=iso9899:1999) fl=&quot;&quot;;;
    -std=*) echo &quot;`basename $0` called with non ISO C99 option $opt&quot; &gt;&amp;2
            exit 1;;
  esac
done
exec gcc $fl ${1+&quot;$@&quot;}
EOF

  chmod 755 $pkgdir/usr/bin/c{8,9}9

  # install the libstdc++ man pages
  make -C $CHOST/libstdc++-v3/doc DESTDIR=$pkgdir doc-install-man

  # Add licenses
  install -m755 -d ${pkgdir}/usr/share/licenses/gcc-multilib
  install -m644 ${srcdir}/gcc-$pkgver/COPYING{3{,.LIB},.RUNTIME} ${srcdir}/COPYING.DOC \
    ${pkgdir}/usr/share/licenses/gcc-multilib
}

package_gcc-fortran-multilib()
{
  pkgdesc=&quot;Fortran front-end for GCC for multilib&quot;
  depends=(&quot;gcc-multilib=$pkgver-$pkgrel&quot;)
  provides=(&quot;gcc-fortran=$pkgver-$pkgrel&quot;)
  conflicts=(&#039;gcc-fortran&#039;)
  options=(&#039;!emptydirs&#039;)

  cd ${srcdir}/gcc-build
  make -C $CHOST/libgfortran DESTDIR=$pkgdir install-cafexeclibLTLIBRARIES \
    install-{toolexeclibDATA,nodist_fincludeHEADERS}
  make -C $CHOST/32/libgfortran DESTDIR=$pkgdir install-cafexeclibLTLIBRARIES \
    install-{toolexeclibDATA,nodist_fincludeHEADERS}
  make -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS
  make -C gcc DESTDIR=$pkgdir fortran.install-{common,man,info}
  install -Dm755 gcc/f951 $pkgdir/${_libdir}/f951

  ln -s gfortran ${pkgdir}/usr/bin/f95

  # Add licenses
  install -m755 -d ${pkgdir}/usr/share/licenses/gcc-fortran-multilib
  install -m644 ${srcdir}/gcc-$pkgver/COPYING{3{,.LIB},.RUNTIME} ${srcdir}/COPYING.DOC \
    ${pkgdir}/usr/share/licenses/gcc-fortran-multilib
}

package_gcc-objc-multilib()
{
  pkgdesc=&quot;Objective-C front-end for GCC for multilib&quot;
  depends=(&quot;gcc-multilib=$pkgver-$pkgrel&quot;)
  provides=(&quot;gcc-objc=$pkgver-$pkgrel&quot;)
  conflicts=(&#039;gcc-objc&#039;)

  cd ${srcdir}/gcc-build
  make DESTDIR=$pkgdir -C $CHOST/libobjc install-headers
  install -dm755 $pkgdir/${_libdir}
  install -m755 gcc/cc1obj{,plus} $pkgdir/${_libdir}/

  # Add licenses
  install -m755 -d ${pkgdir}/usr/share/licenses/gcc-objc-multilib
  install -m644 ${srcdir}/gcc-$pkgver/COPYING{3{,.LIB},.RUNTIME} ${srcdir}/COPYING.DOC \
    ${pkgdir}/usr/share/licenses/gcc-objc-multilib
}

package_gcc-ada-multilib()
{
  pkgdesc=&quot;Ada front-end for GCC (GNAT) for multilib&quot;
  depends=(&quot;gcc-multilib=$pkgver-$pkgrel&quot;)
  provides=(&quot;gcc-ada=$pkgver-$pkgrel&quot;)
  conflicts=(&#039;gcc-ada&#039;)
  options=(&#039;staticlibs&#039; &#039;!emptydirs&#039;)

  cd ${srcdir}/gcc-build/gcc
  make DESTDIR=$pkgdir ada.install-{common,info}
  install -m755 gnat1 $pkgdir/${_libdir}

  cd ../$CHOST/32/libada
  make DESTDIR=${pkgdir} INSTALL=&quot;install&quot; \
    INSTALL_DATA=&quot;install -m644&quot; install-gnatlib

  ln -s gcc ${pkgdir}/usr/bin/gnatgcc

  # insist on dynamic linking, but keep static libraries because gnatmake complains
  mv ${pkgdir}/${_libdir}/adalib/libgna{rl,t}-${_pkgver}.so ${pkgdir}/usr/lib
  ln -s libgnarl-${_pkgver}.so ${pkgdir}/usr/lib/libgnarl.so
  ln -s libgnat-${_pkgver}.so ${pkgdir}/usr/lib/libgnat.so
  rm ${pkgdir}/${_libdir}/adalib/libgna{rl,t}.so

  install -d ${pkgdir}/usr/lib32/
  mv ${pkgdir}/${_libdir}/32/adalib/libgna{rl,t}-${_pkgver}.so ${pkgdir}/usr/lib32
  ln -s libgnarl-${_pkgver}.so ${pkgdir}/usr/lib32/libgnarl.so
  ln -s libgnat-${_pkgver}.so ${pkgdir}/usr/lib32/libgnat.so
  rm ${pkgdir}/${_libdir}/32/adalib/libgna{rl,t}.so

  # Add licenses
  install -m755 -d ${pkgdir}/usr/share/licenses/gcc-ada-multilib
  install -m644 ${srcdir}/gcc-$pkgver/COPYING{3{,.LIB},.RUNTIME} ${srcdir}/COPYING.DOC \
    ${pkgdir}/usr/share/licenses/gcc-ada-multilib
}

package_gcc-go-multilib()
{
  pkgdesc=&quot;Go front-end for GCC for multilib&quot;
  depends=(&quot;gcc-multilib=$pkgver-$pkgrel&quot;)
  provides=(&quot;gcc-go=$pkgver-$pkgrel&quot;)
  conflicts=(&#039;go&#039; &#039;gcc-go&#039;)
  options=(&#039;!emptydirs&#039;)

  cd ${srcdir}/gcc-build
  make -C $CHOST/libgo DESTDIR=$pkgdir install-exec-am
  make -C $CHOST/32/libgo DESTDIR=$pkgdir install-exec-am
  rm ${pkgdir}/usr/lib/libgo.so* ${pkgdir}/usr/lib32/libgo.so*
  make -C gcc DESTDIR=$pkgdir go.install-{common,man,info}
  install -Dm755 gcc/go1 $pkgdir/${_libdir}/go1

  make DESTDIR=${pkgdir} install-gotools

  # Add licenses
  install -m755 -d ${pkgdir}/usr/share/licenses/gcc-go-multilib
  install -m644 ${srcdir}/gcc-$pkgver/COPYING{3{,.LIB},.RUNTIME} ${srcdir}/COPYING.DOC \
    ${pkgdir}/usr/share/licenses/gcc-go-multilib
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (throgh)]]></author>
			<pubDate>Tue, 31 Mar 2020 17:24:21 +0000</pubDate>
			<guid>https://forums.hyperbola.info/viewtopic.php?pid=1836#p1836</guid>
		</item>
		<item>
			<title><![CDATA[Re: [gcc] PKGBUILDs for newer versions]]></title>
			<link>https://forums.hyperbola.info/viewtopic.php?pid=1835#p1835</link>
			<description><![CDATA[<p><strong>PKGBUILD for gcc-multilib 7.5.0</strong></p><div class="codebox"><pre><code># Maintainer (Arch): Jan Alexander Steffens (heftig) &lt;jan.steffens@gmail.com&gt;
# Contributor (Arch): Allan McRae &lt;allan@archlinux.org&gt;
# Maintainer: André Silva &lt;emulatorman@hyperbola.info&gt;
# Contributor: Luke R. &lt;g4jc@hyperbola.info&gt;

# toolchain build order: linux-libre-api-headers-&gt;glibc-&gt;binutils-&gt;gcc-&gt;binutils-&gt;glibc
# NOTE: libtool requires rebuilt with each new gcc version

pkgname=(&#039;gcc-multilib&#039; &#039;gcc-libs-multilib&#039; &#039;lib32-gcc-libs&#039; &#039;gcc-fortran-multilib&#039; &#039;gcc-objc-multilib&#039; &#039;gcc-ada-multilib&#039; &#039;gcc-go-multilib&#039;)
pkgver=7.5.0
pkgrel=1
_pkgver=7
_islver=0.18
pkgdesc=&quot;The GNU Compiler Collection for multilib&quot;
arch=(&#039;x86_64&#039;)
license=(&#039;GPL-3&#039; &#039;LGPL-3&#039; &#039;custom:GCC-Exception-3.1&#039; &#039;FDL-1.3&#039;)
url=&quot;https://gcc.gnu.org&quot;
makedepends=(&#039;binutils&gt;=2.28&#039; &#039;libmpc&#039; &#039;gcc-ada-multilib&#039; &#039;doxygen&#039;
             &#039;lib32-glibc&gt;=2.25&#039; &#039;quilt&#039;)
checkdepends=(&#039;dejagnu&#039; &#039;inetutils&#039;)
options=(&#039;!emptydirs&#039;)
source=(https://ftp.gnu.org/gnu/gcc/gcc-$pkgver/gcc-$pkgver.tar.xz{,.sig}
        http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2
        COPYING.DOC)
validpgpkeys=(&#039;33C235A34C46AA3FFB293709A328C3A2C3C45C06&#039;) # Jakub Jelinek &lt;jakub@redhat.com&gt; # Note: (Weak DSA) :(
sha512sums=(&#039;fe716cc19f2e3255d3a8b1b8290777bf769c6d98e6e0b07b81a3d6ad43f8af74cb170dfa18b1555dbfcd3f55ae582b91a286ccef496b9b65c1579902f96a1f60&#039;
            &#039;SKIP&#039;
            &#039;85d0b40f4dbf14cb99d17aa07048cdcab2dc3eb527d2fbb1e84c41b2de5f351025370e57448b63b2b8a8cf8a0843a089c3263f9baee1542d5c2e1cb37ed39d94&#039;
            &#039;bea1788b2bdc84f470e459114b871cf4ee991718964a63e18adde65116806d7676484cb30857cf74dece5eef5f96a015ee4a21900e019623e5d3484868b28b7f&#039;)

_libdir=&quot;usr/lib/gcc/$CHOST/$pkgver&quot;

prepare() {
  cd ${srcdir}/gcc-$pkgver

  # link isl for in-tree build
  ln -s ../isl-${_islver} isl

  # Do not run fixincludes
  sed -i &#039;s@\./fixinc\.sh@-c true@&#039; gcc/Makefile.in

  # Hyperbola installs x86_64 libraries /lib
  [[ $CARCH == &quot;x86_64&quot; ]] &amp;&amp; sed -i &#039;/m64=/s/lib64/lib/&#039; gcc/config/i386/t-linux64

  # hack! - some configure tests for header files using &quot;$CPP $CPPFLAGS&quot;
  sed -i &quot;/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/&quot; {libiberty,gcc}/configure

  mkdir ${srcdir}/gcc-build
}

build() {
  cd ${srcdir}/gcc-build

  # using -pipe causes spurious test-suite failures
  # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48565
  CFLAGS=${CFLAGS/-pipe/}
  CXXFLAGS=${CXXFLAGS/-pipe/}

  ${srcdir}/gcc-$pkgver/configure --prefix=/usr \
      --libdir=/usr/lib \
      --libexecdir=/usr/libexec \
      --mandir=/usr/share/man \
      --infodir=/usr/share/info \
      --with-bugurl=https://issues.hyperbola.info/ \
      --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ \
      --enable-shared \
      --enable-threads=posix \
      --enable-libmpx \
      --with-system-zlib \
      --with-isl \
      --enable-__cxa_atexit \
      --disable-libunwind-exceptions \
      --enable-clocale=gnu \
      --disable-libstdcxx-pch \
      --disable-libssp \
      --enable-gnu-unique-object \
      --enable-linker-build-id \
      --enable-lto \
      --enable-plugin \
      --enable-install-libiberty \
      --with-linker-hash-style=gnu \
      --enable-gnu-indirect-function \
      --enable-multilib \
      --disable-werror \
      --enable-checking=release

  make

  # make documentation
  make -C $CHOST/libstdc++-v3/doc doc-man-doxygen
}

check() {
  cd ${srcdir}/gcc-build

  # increase stack size to prevent test failures
  # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827
  ulimit -s 32768

  # do not abort on error as some are &quot;expected&quot;
  make -k check || true
  ${srcdir}/gcc-$pkgver/contrib/test_summary
}

package_lib32-gcc-libs()
{
  pkgdesc=&quot;Runtime libraries shipped by GCC (32-bit)&quot;
  depends=(&#039;lib32-glibc&gt;=2.25&#039;)
  options=(&#039;!emptydirs&#039; &#039;!strip&#039;)

  cd ${srcdir}/gcc-build

  make -C $CHOST/32/libgcc DESTDIR=${pkgdir} install-shared
  rm ${pkgdir}/${_libdir}/32/libgcc_eh.a

  for lib in libatomic \
             libcilkrts \
             libgfortran \
             libgo \
             libgomp \
             libitm \
             libquadmath \
             libsanitizer/{a,l,ub}san \
             libstdc++-v3/src \
             libvtv; do
    make -C $CHOST/32/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
  done

  make -C $CHOST/32/libobjc DESTDIR=${pkgdir} install-libs

  make -C $CHOST/32/libmpx DESTDIR=${pkgdir} install
  rm ${pkgdir}/usr/lib32/libmpx.spec

  # remove stuff in gcc-libs-multilib
  rm -r ${pkgdir}/usr/lib

  # Add licenses
  install -m755 -d ${pkgdir}/usr/share/licenses/lib32-gcc-libs
  install -m644 ${srcdir}/gcc-$pkgver/COPYING{3{,.LIB},.RUNTIME} ${srcdir}/COPYING.DOC \
    ${pkgdir}/usr/share/licenses/lib32-gcc-libs
}

package_gcc-libs-multilib()
{
  pkgdesc=&quot;Runtime libraries shipped by GCC for multilib&quot;
  depends=(&#039;glibc&gt;=2.25&#039; &quot;lib32-gcc-libs=$pkgver-$pkgrel&quot;)
  provides=(&quot;gcc-libs=$pkgver-$pkgrel&quot;)
  conflicts=(&#039;gcc-libs&#039;)
  options=(&#039;!emptydirs&#039; &#039;!strip&#039;)

  cd ${srcdir}/gcc-build

  make -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared
  rm ${pkgdir}/${_libdir}/libgcc_eh.a

  for lib in libatomic \
             libcilkrts \
             libgfortran \
             libgo \
             libgomp \
             libitm \
             libquadmath \
             libsanitizer/{a,l,ub}san \
             libstdc++-v3/src \
             libvtv; do
    make -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
  done

  [[ $CARCH == &quot;x86_64&quot; ]] &amp;&amp; \
    make -C $CHOST/libsanitizer/tsan DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES

  make -C $CHOST/libobjc DESTDIR=${pkgdir} install-libs

  make -C $CHOST/libstdc++-v3/po DESTDIR=${pkgdir} install

  make -C $CHOST/libmpx DESTDIR=${pkgdir} install
  rm ${pkgdir}/usr/lib/libmpx.spec

  for lib in libgomp \
             libitm \
             libquadmath; do
    make -C $CHOST/$lib DESTDIR=${pkgdir} install-info
  done

  # remove stuff in lib32-gcc-libs
  rm -r ${pkgdir}/usr/lib32

  # Add licenses
  install -m755 -d ${pkgdir}/usr/share/licenses/gcc-libs-multilib
  install -m644 ${srcdir}/gcc-$pkgver/COPYING{3{,.LIB},.RUNTIME} ${srcdir}/COPYING.DOC \
    ${pkgdir}/usr/share/licenses/gcc-libs-multilib
}

package_gcc-multilib()
{
  pkgdesc=&quot;The GNU Compiler Collection - C and C++ frontends for multilib&quot;
  depends=(&quot;gcc-libs-multilib=$pkgver-$pkgrel&quot; &#039;binutils&gt;=2.28&#039; &#039;libmpc&#039;)
  groups=(&#039;multilib-devel&#039;)
  options=(&#039;staticlibs&#039;)
  provides=(&quot;gcc=$pkgver-$pkgrel&quot;)
  conflicts=(&#039;gcc&#039;)

  cd ${srcdir}/gcc-build

  make -C gcc DESTDIR=${pkgdir} install-driver install-cpp install-gcc-ar \
    c++.install-common install-headers install-plugin install-lto-wrapper

  install -m755 -t $pkgdir/usr/bin/ gcc/gcov{,-tool}
  install -m755 -t $pkgdir/${_libdir}/ gcc/{cc1,cc1plus,collect2,lto1}

  make -C $CHOST/libgcc DESTDIR=${pkgdir} install
  make -C $CHOST/32/libgcc DESTDIR=${pkgdir} install
  rm ${pkgdir}/usr/lib{,32}/libgcc_s.so*

  make -C $CHOST/libstdc++-v3/src DESTDIR=${pkgdir} install
  make -C $CHOST/libstdc++-v3/include DESTDIR=${pkgdir} install
  make -C $CHOST/libstdc++-v3/libsupc++ DESTDIR=${pkgdir} install
  make -C $CHOST/libstdc++-v3/python DESTDIR=${pkgdir} install
  make -C $CHOST/32/libstdc++-v3/src DESTDIR=${pkgdir} install
  make -C $CHOST/32/libstdc++-v3/include DESTDIR=${pkgdir} install
  make -C $CHOST/32/libstdc++-v3/libsupc++ DESTDIR=${pkgdir} install

  make DESTDIR=${pkgdir} install-libcc1
  install -d $pkgdir/usr/share/gdb/auto-load/usr/lib
  mv $pkgdir/usr/lib/libstdc++.so.6.*-gdb.py \
    $pkgdir/usr/share/gdb/auto-load/usr/lib/
  rm ${pkgdir}/usr/lib{,32}/libstdc++.so*

  make DESTDIR=${pkgdir} install-fixincludes
  make -C gcc DESTDIR=${pkgdir} install-mkheaders

  make -C lto-plugin DESTDIR=${pkgdir} install
  install -dm755 ${pkgdir}/usr/lib/bfd-plugins/
  ln -s /usr/lib/gcc/$CHOST/${pkgver}/liblto_plugin.so \
    ${pkgdir}/usr/lib/bfd-plugins/

  make -C $CHOST/libcilkrts DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS \
    install-nodist_cilkincludeHEADERS
  make -C $CHOST/libgomp DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS \
    install-nodist_libsubincludeHEADERS
  make -C $CHOST/libitm DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS
  make -C $CHOST/libquadmath DESTDIR=${pkgdir} install-nodist_libsubincludeHEADERS
  make -C $CHOST/libsanitizer DESTDIR=${pkgdir} install-nodist_{saninclude,toolexeclib}HEADERS
  make -C $CHOST/libsanitizer/asan DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS
  make -C $CHOST/libmpx DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS
  make -C $CHOST/32/libcilkrts DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS
  make -C $CHOST/32/libgomp DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS
  make -C $CHOST/32/libitm DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS
  make -C $CHOST/32/libsanitizer DESTDIR=${pkgdir} install-nodist_{saninclude,toolexeclib}HEADERS
  make -C $CHOST/32/libsanitizer/asan DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS
  make -C $CHOST/32/libmpx DESTDIR=${pkgdir} install-nodist_toolexeclibHEADERS

  make -C libiberty DESTDIR=${pkgdir} install
  # install PIC version of libiberty
  install -m644 ${srcdir}/gcc-build/libiberty/pic/libiberty.a ${pkgdir}/usr/lib

  make -C gcc DESTDIR=${pkgdir} install-man install-info
  rm ${pkgdir}/usr/share/man/man1/{gccgo,gfortran}.1
  rm ${pkgdir}/usr/share/info/{gccgo,gfortran,gnat-style,gnat_rm,gnat_ugn}.info

  make -C libcpp DESTDIR=${pkgdir} install
  make -C gcc DESTDIR=${pkgdir} install-po

  # many packages expect this symlink
  ln -s gcc ${pkgdir}/usr/bin/cc

  # POSIX conformance launcher scripts for c89 and c99
  cat &gt; $pkgdir/usr/bin/c89 &lt;&lt;&quot;EOF&quot;
#!/bin/sh
fl=&quot;-std=c89&quot;
for opt; do
  case &quot;$opt&quot; in
    -ansi|-std=c89|-std=iso9899:1990) fl=&quot;&quot;;;
    -std=*) echo &quot;`basename $0` called with non ANSI/ISO C option $opt&quot; &gt;&amp;2
            exit 1;;
  esac
done
exec gcc $fl ${1+&quot;$@&quot;}
EOF

  cat &gt; $pkgdir/usr/bin/c99 &lt;&lt;&quot;EOF&quot;
#!/bin/sh
fl=&quot;-std=c99&quot;
for opt; do
  case &quot;$opt&quot; in
    -std=c99|-std=iso9899:1999) fl=&quot;&quot;;;
    -std=*) echo &quot;`basename $0` called with non ISO C99 option $opt&quot; &gt;&amp;2
            exit 1;;
  esac
done
exec gcc $fl ${1+&quot;$@&quot;}
EOF

  chmod 755 $pkgdir/usr/bin/c{8,9}9

  # install the libstdc++ man pages
  make -C $CHOST/libstdc++-v3/doc DESTDIR=$pkgdir doc-install-man

  # Add licenses
  install -m755 -d ${pkgdir}/usr/share/licenses/gcc-multilib
  install -m644 ${srcdir}/gcc-$pkgver/COPYING{3{,.LIB},.RUNTIME} ${srcdir}/COPYING.DOC \
    ${pkgdir}/usr/share/licenses/gcc-multilib
}

package_gcc-fortran-multilib()
{
  pkgdesc=&quot;Fortran front-end for GCC for multilib&quot;
  depends=(&quot;gcc-multilib=$pkgver-$pkgrel&quot;)
  provides=(&quot;gcc-fortran=$pkgver-$pkgrel&quot;)
  conflicts=(&#039;gcc-fortran&#039;)
  options=(&#039;!emptydirs&#039;)

  cd ${srcdir}/gcc-build
  make -C $CHOST/libgfortran DESTDIR=$pkgdir install-cafexeclibLTLIBRARIES \
    install-{toolexeclibDATA,nodist_fincludeHEADERS}
  make -C $CHOST/32/libgfortran DESTDIR=$pkgdir install-cafexeclibLTLIBRARIES \
    install-{toolexeclibDATA,nodist_fincludeHEADERS}
  make -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS
  make -C gcc DESTDIR=$pkgdir fortran.install-{common,man,info}
  install -Dm755 gcc/f951 $pkgdir/${_libdir}/f951

  ln -s gfortran ${pkgdir}/usr/bin/f95

  # Add licenses
  install -m755 -d ${pkgdir}/usr/share/licenses/gcc-fortran-multilib
  install -m644 ${srcdir}/gcc-$pkgver/COPYING{3{,.LIB},.RUNTIME} ${srcdir}/COPYING.DOC \
    ${pkgdir}/usr/share/licenses/gcc-fortran-multilib
}

package_gcc-objc-multilib()
{
  pkgdesc=&quot;Objective-C front-end for GCC for multilib&quot;
  depends=(&quot;gcc-multilib=$pkgver-$pkgrel&quot;)
  provides=(&quot;gcc-objc=$pkgver-$pkgrel&quot;)
  conflicts=(&#039;gcc-objc&#039;)

  cd ${srcdir}/gcc-build
  make DESTDIR=$pkgdir -C $CHOST/libobjc install-headers
  install -dm755 $pkgdir/${_libdir}
  install -m755 gcc/cc1obj{,plus} $pkgdir/${_libdir}/

  # Add licenses
  install -m755 -d ${pkgdir}/usr/share/licenses/gcc-objc-multilib
  install -m644 ${srcdir}/gcc-$pkgver/COPYING{3{,.LIB},.RUNTIME} ${srcdir}/COPYING.DOC \
    ${pkgdir}/usr/share/licenses/gcc-objc-multilib
}

package_gcc-ada-multilib()
{
  pkgdesc=&quot;Ada front-end for GCC (GNAT) for multilib&quot;
  depends=(&quot;gcc-multilib=$pkgver-$pkgrel&quot;)
  provides=(&quot;gcc-ada=$pkgver-$pkgrel&quot;)
  conflicts=(&#039;gcc-ada&#039;)
  options=(&#039;staticlibs&#039; &#039;!emptydirs&#039;)

  cd ${srcdir}/gcc-build/gcc
  make DESTDIR=$pkgdir ada.install-{common,info}
  install -m755 gnat1 $pkgdir/${_libdir}

  cd ../$CHOST/32/libada
  make DESTDIR=${pkgdir} INSTALL=&quot;install&quot; \
    INSTALL_DATA=&quot;install -m644&quot; install-gnatlib

  ln -s gcc ${pkgdir}/usr/bin/gnatgcc

  # insist on dynamic linking, but keep static libraries because gnatmake complains
  mv ${pkgdir}/${_libdir}/adalib/libgna{rl,t}-${_pkgver}.so ${pkgdir}/usr/lib
  ln -s libgnarl-${_pkgver}.so ${pkgdir}/usr/lib/libgnarl.so
  ln -s libgnat-${_pkgver}.so ${pkgdir}/usr/lib/libgnat.so
  rm ${pkgdir}/${_libdir}/adalib/libgna{rl,t}.so

  install -d ${pkgdir}/usr/lib32/
  mv ${pkgdir}/${_libdir}/32/adalib/libgna{rl,t}-${_pkgver}.so ${pkgdir}/usr/lib32
  ln -s libgnarl-${_pkgver}.so ${pkgdir}/usr/lib32/libgnarl.so
  ln -s libgnat-${_pkgver}.so ${pkgdir}/usr/lib32/libgnat.so
  rm ${pkgdir}/${_libdir}/32/adalib/libgna{rl,t}.so

  # Add licenses
  install -m755 -d ${pkgdir}/usr/share/licenses/gcc-ada-multilib
  install -m644 ${srcdir}/gcc-$pkgver/COPYING{3{,.LIB},.RUNTIME} ${srcdir}/COPYING.DOC \
    ${pkgdir}/usr/share/licenses/gcc-ada-multilib
}

package_gcc-go-multilib()
{
  pkgdesc=&quot;Go front-end for GCC for multilib&quot;
  depends=(&quot;gcc-multilib=$pkgver-$pkgrel&quot;)
  provides=(&quot;gcc-go=$pkgver-$pkgrel&quot;)
  conflicts=(&#039;go&#039; &#039;gcc-go&#039;)
  options=(&#039;!emptydirs&#039;)

  cd ${srcdir}/gcc-build
  make -C $CHOST/libgo DESTDIR=$pkgdir install-exec-am
  make -C $CHOST/32/libgo DESTDIR=$pkgdir install-exec-am
  rm ${pkgdir}/usr/lib/libgo.so* ${pkgdir}/usr/lib32/libgo.so*
  make -C gcc DESTDIR=$pkgdir go.install-{common,man,info}
  install -Dm755 gcc/go1 $pkgdir/${_libdir}/go1

  make DESTDIR=${pkgdir} install-gotools

  # Add licenses
  install -m755 -d ${pkgdir}/usr/share/licenses/gcc-go-multilib
  install -m644 ${srcdir}/gcc-$pkgver/COPYING{3{,.LIB},.RUNTIME} ${srcdir}/COPYING.DOC \
    ${pkgdir}/usr/share/licenses/gcc-go-multilib
}</code></pre></div><p>This can be built with <strong>gcc-multilib 6.3</strong> we already have within the repositories!</p>]]></description>
			<author><![CDATA[null@example.com (throgh)]]></author>
			<pubDate>Tue, 31 Mar 2020 17:23:05 +0000</pubDate>
			<guid>https://forums.hyperbola.info/viewtopic.php?pid=1835#p1835</guid>
		</item>
		<item>
			<title><![CDATA[[gcc] PKGBUILDs for newer versions]]></title>
			<link>https://forums.hyperbola.info/viewtopic.php?pid=1834#p1834</link>
			<description><![CDATA[<p>Hello you all,</p><p>within the last weeks I was busy creating further newer PKGBUILD-files for the newer <strong>gcc-multilib</strong> suite and named packages. So first of I&#039;d like to thank Luke as I&#039;ve used the files as <a href="https://git.hyperbola.info:50100/packages/multilib.git/tree/gcc-multilib">examples</a>. Attention therefore: You should use them incremental, so if you want version 9.3.0 on your system you&#039;ll need the previous version for building. Same with this one to repeat!</p>]]></description>
			<author><![CDATA[null@example.com (throgh)]]></author>
			<pubDate>Tue, 31 Mar 2020 17:21:59 +0000</pubDate>
			<guid>https://forums.hyperbola.info/viewtopic.php?pid=1834#p1834</guid>
		</item>
	</channel>
</rss>
