From 143d3f5347249c23893b9a492e0a4c5db294d978 Mon Sep 17 00:00:00 2001 From: khronosschoty Date: Mon, 22 May 2017 23:57:59 +0700 Subject: development/gcclegacy494: Added (GCC 4.9.4 legacy). Signed-off-by: Willy Sudiarto Raharjo --- development/gcclegacy494/README | 9 ++ development/gcclegacy494/gcclegacy494.SlackBuild | 192 +++++++++++++++++++++++ development/gcclegacy494/gcclegacy494.info | 20 +++ development/gcclegacy494/slack-desc | 19 +++ development/gcclegacy494/wrapper.sh | 3 + 5 files changed, 243 insertions(+) create mode 100644 development/gcclegacy494/README create mode 100644 development/gcclegacy494/gcclegacy494.SlackBuild create mode 100644 development/gcclegacy494/gcclegacy494.info create mode 100644 development/gcclegacy494/slack-desc create mode 100644 development/gcclegacy494/wrapper.sh (limited to 'development/gcclegacy494') diff --git a/development/gcclegacy494/README b/development/gcclegacy494/README new file mode 100644 index 0000000000..54df65a6ff --- /dev/null +++ b/development/gcclegacy494/README @@ -0,0 +1,9 @@ +The GNU Compiler Collection includes front ends for C, C++, Objective-C, +Fortran, Ada, and Go, as well as libraries for these languages +(libstdc++,...). GCC was originally written as the compiler for the GNU +operating system. The GNU system was developed to be 100% free software, free +in the sense that it respects the user's freedom. + + +This script only compiles the GNU C, and C++ front ends. This script was +written with the intention to compile a better PaleMoon. diff --git a/development/gcclegacy494/gcclegacy494.SlackBuild b/development/gcclegacy494/gcclegacy494.SlackBuild new file mode 100644 index 0000000000..5d4fe5ce25 --- /dev/null +++ b/development/gcclegacy494/gcclegacy494.SlackBuild @@ -0,0 +1,192 @@ +#!/bin/sh + +# Slackware build script for gcc-4.9.4 + +# Copyright 2017 Vasily Sora USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +PRGNAM=gcclegacy494 +VERSION=${VERSION:-4.9.4} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +INSTLOC=${INSTLOC:-/opt/$PRGNAM} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" + LIBDIRSUFFIX="" + LIB_ARCH=i386 +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" + LIB_ARCH=i386 +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" + LIB_ARCH=i386 +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686" + LIBDIRSUFFIX="" + LIB_ARCH=i386 +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + LIB_ARCH=s390 +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" + LIB_ARCH=amd64 +elif [ "$ARCH" = "armv7hl" ]; then + SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16" + LIBDIRSUFFIX="" + LIB_ARCH=armv7hl +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" + LIB_ARCH=$ARCH +fi + +mkdir -p $TMP + +case "$ARCH" in + arm*) TARGET=$ARCH-slackware-linux-gnueabi ;; + *) TARGET=$ARCH-slackware-linux ;; +esac + +if [ "$ARCH" != "x86_64" ]; then + GCC_ARCHOPTS="--with-arch=$ARCH" +else + GCC_ARCHOPTS="--disable-multilib" +fi + +set -e + +cd $TMP/ +rm -rf gcc-4.9.4/ +tar -xzf $CWD/gcc-4.9.4.tar.gz +cd gcc-4.9.4 +cp --preserve=all $CWD/gmp-4.3.2.tar.bz2 \ + $CWD/mpfr-2.4.2.tar.bz2 \ + $CWD/mpc-0.8.1.tar.gz \ + $CWD/isl-0.12.2.tar.bz2 \ + $CWD/cloog-0.18.1.tar.gz . +tar xjf $CWD/mpfr-2.4.2.tar.bz2 +ln -sf mpfr-2.4.2 mpfr +tar xjf $CWD/gmp-4.3.2.tar.bz2 +ln -sf gmp-4.3.2 gmp +tar xzf $CWD/mpc-0.8.1.tar.gz +ln -sf mpc-0.8.1 mpc +tar xjf $CWD/isl-0.12.2.tar.bz2 +ln -sf isl-0.12.2 isl +tar xzf $CWD/cloog-0.18.1.tar.gz +ln -sf cloog-0.18.1 cloog + +chown -R root:root . +find -L . \ +\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ +\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; +rm -rf $TMP/objdir +mkdir $TMP/objdir +cd $TMP/objdir +rm -rf $PKG +mkdir -p $PKG +CFLAGS="$SLKCFLAGS" +CXXFLAGS="$SLKCFLAGS" + $PWD/../gcc-4.9.4/configure --prefix=/usr \ + --program-suffix=-4.9.4 \ + --enable-languages=c,c++ \ + --with-system-zlib \ + --mandir=/usr/man \ + --libdir=/usr/lib$LIBDIRSUFFIX \ + --infodir=/usr/info \ + --enable-threads=posix \ + --with-python-dir=/lib$LIBDIRSUFFIX/python2.7/site-packages \ + --disable-gtktest \ + --target=${TARGET} \ + --build=${TARGET} \ + --host=${TARGET} \ + $GCC_ARCHOPTS \ + --with-arch-directory=$LIB_ARCH \ + --enable-clocale=gnu \ + --with-gnu-ld \ + --enable-shared \ + --enable-__cxa_atexit +make +make DESTDIR=$PKG install-strip + +# Rename / move to /opt so there is no conflicts with Slackware's gcc, libraries etc. +mkdir -p $PKG$INSTLOC +mv -f $PKG/usr/* $PKG$INSTLOC + +# Thank you to 'idlemoor' +mkdir -p $PKG/usr/bin +cd /$PKG/usr/bin +for COMPILER in gcc g++ ; do + sed \ + -e "s~%LIBDIRSUFFIX%~$LIBDIRSUFFIX~" \ + -e "s~%COMPILER%~$COMPILER~" \ + -e "s~%INSTLOC%~$INSTLOC~" \ + < $CWD/wrapper.sh \ + > $PKG/usr/bin/$ARCH-slackware-linux-$COMPILER-4.9.4 + chmod ugo+x $PKG/usr/bin/$ARCH-slackware-linux-$COMPILER-4.9.4 +done +ln -s $ARCH-slackware-linux-gcc-4.9.4 $PKG/usr/bin/gcc-4.9.4 +ln -s $ARCH-slackware-linux-g++-4.9.4 $PKG/usr/bin/g++-gcc-4.9.4 + +mv -f $PKG$INSTLOC/man $PKG/usr/man +cd $PKG/usr/man/man7 +# we do not need these; according to "diff" there is no difference between these files +# and the ones Slackware ships with; except this man page named "gfdl.7"; which shall be +# saved; and renamed so that it does not conflict with Slackware's. +find . ! -name 'gfdl.7' -exec rm -rf {} \; +mv gfdl.7 gfdl494.7 +find $PKG/usr/man -type f -exec gzip -9 {} \; +for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done + +mv -f $PKG$INSTLOC/info $PKG/usr/info +rm -f $PKG/usr/info/dir +cd $PKG/usr/info +#rename the .info files so they do not conflict with Slackware's own .info files. +for info in *.info; do mv "$info" "${info%.*}-4.9.4.info"; done +gzip -9 $PKG/usr/info/*.info* + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/development/gcclegacy494/gcclegacy494.info b/development/gcclegacy494/gcclegacy494.info new file mode 100644 index 0000000000..72d89b7824 --- /dev/null +++ b/development/gcclegacy494/gcclegacy494.info @@ -0,0 +1,20 @@ +PRGNAM="gcclegacy494" +VERSION="4.9.4" +HOMEPAGE="https://gcc.gnu.org/" +DOWNLOAD="http://gcc.parentingamerica.com/releases/gcc-4.9.4/gcc-4.9.4.tar.gz \ + ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-0.18.1.tar.gz \ + ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.12.2.tar.bz2 \ + ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz \ + ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2 \ + ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2" +MD5SUM="b92b423b2f8f517c909fda2621ff2d7c \ + e34fca0540d840e5d0f6427e98c92252 \ + e039bfcfb6c2ab039b8ee69bf883e824 \ + 5b34aa804d514cc295414a963aedb6bf \ + dd60683d7057917e34630b4a787932e8 \ + 89e59fe665e2b3ad44a6789f40b059a0" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="khronosschoty" +EMAIL="khronosschoty@posteo.org" diff --git a/development/gcclegacy494/slack-desc b/development/gcclegacy494/slack-desc new file mode 100644 index 0000000000..f54d822bad --- /dev/null +++ b/development/gcclegacy494/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +gcclegacy494: gcclegac494 (GNU gcc-4.9.4 and GNU g++-4.9.4 compilers) +gcclegacy494: +gcclegacy494: The GNU Compiler Collection includes front ends for C, C++, +gcclegacy494: Objective-C, Fortran, Ada and Go, as well as libraries for these +gcclegacy494: (libstdc++,...) +gcclegacy494: +gcclegacy494: +gcclegacy494: +gcclegacy494: https://gcc.gnu.org/ +gcclegacy494: +gcclegacy494: diff --git a/development/gcclegacy494/wrapper.sh b/development/gcclegacy494/wrapper.sh new file mode 100644 index 0000000000..d664f74edf --- /dev/null +++ b/development/gcclegacy494/wrapper.sh @@ -0,0 +1,3 @@ +#!/bin/sh +export LD_LIBRARY_PATH=%INSTLOC%/lib%LIBDIRSUFFIX% +exec %INSTLOC%/bin/%COMPILER%-4.9.4 "$@" -- cgit v1.2.3