diff --git a/gcc-5.5.0-1.build.sh b/gcc-5.5.0-1.build.sh new file mode 100755 index 0000000..36becfa --- /dev/null +++ b/gcc-5.5.0-1.build.sh @@ -0,0 +1,149 @@ +#! /bin/bash + +# COOKIE=$(mcookie); grep -v V_GREP_ME $0 > /dev/shm/runme-$COOKIE.sh ; sleep 1; exec bash /dev/shm/runme-$COOKIE.sh + +PKG=gcc +VERSION=5.5.0 +BUILD=1 +# URL=http://ftp.gnu.org/gnu/gcc/gcc-${VERSION}/gcc-${VERSION}.tar.gz +URL=ftp://ftp.fu-berlin.de/unix/languages/gcc/releases/gcc-$VERSION/gcc-$VERSION.tar.xz +SRC=$( echo $URL | rev | cut -d/ -f1 | rev ) + +# gcc 3.4 didn't need this to build java (back in the good old days ...) +ECJ_URL=ftp://sourceware.org/pub/java/ecj-latest.jar +ECJ_JAR=$( echo $ECJ_URL | rev | cut -d/ -f1 | rev ) + +PREFIX=/pkg/$PKG-$VERSION-$BUILD +# PREFIX=/dev/shm/pkg/$PKG-$VERSION-$BUILD + +set -xe +umask 022 + +BUILD_TMPDIR=/dev/shm/$PKG-$VERSION-$BUILD.build.tmp +test -d $BUILD_TMPDIR && rm -rf $BUILD_TMPDIR +mkdir -p $BUILD_TMPDIR/home +export TMPDIR=$BUILD_TMPDIR +export HOME=$BUILD_TMPDIR/home + +exec $PREFIX/profile <<-EOF + PATH=$PREFIX/bin:\$PATH + LD_LIBRARY_PATH=$PREFIX/lib64\${LD_LIBRARY_PATH:+:}\$LD_LIBRARY_PATH + export LD_LIBRARY_PATH +EOF +. $PREFIX/profile + +BUILDDIR=$PREFIX/build + +mkdir -p $BUILDDIR +cd $BUILDDIR + +test -e $SRC || wget $URL +test -n 'XWIPE' && rm -rf ./gcc-$VERSION ./gcc-$VERSION-build +test -d gcc-$VERSION || tar xf $SRC + +# Copy ecj.jar into the TLD of the source. Needed to build the java compiler. +test -e $ECJ_JAR || wget $ECJ_URL +test -e gcc-$VERSION/ecj.jar || cp $ECJ_JAR gcc-$VERSION/ecj.jar + +mkdir -p gcc-$VERSION-build + +cd gcc-$VERSION-build + +../gcc-$VERSION/configure \ + --prefix=$PREFIX \ + --enable-shared \ + --enable-bootstrap \ + --enable-threads=posix \ + --enable-checking=release \ + --enable-clocale=gnu \ + --enable-languages=c,c++,fortran,objc,obj-c++,go,java,lto \ + --disable-multilib \ + --enable-objc-gc \ + --with-system-zlib \ + --enable-libstdcxx-dual-abi \ + --with-default-libstdcxx-abi=gcc4-compatible \ + --enable-__cxa_atexit \ + --enable-libssp \ + --enable-lto \ + --enable-java-awt=gtk \ + --disable-gtktest \ + --verbose + +make -j $(nproc) +# make -k check 2>&1 | tee check.log +make install + +cd $PREFIX +mkdir -vp lib64 +ln -sv ${PREFIX}/bin/cpp lib64/ +test -e bin/cc || ln -sv gcc bin/cc + +install -v -dm755 lib64/bfd-plugins +ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/$VERSION/liblto_plugin.so lib64/bfd-plugins/ + +# and dump these ... +rm -v lib64/*-gdb.py + +# ++++++++++++++++++ Prepare OpenJDK build ++++++++++++++++++ + +# create a JDK compatible directory structure below $PREFIX/lib/jvm (yes, 'lib') +# emulation is required in order to compile OpenJDK using GNU java +# Main author: Eric Hameleers December 2011 + +cd $PREFIX + +JVM=$PREFIX/lib/jvm +BINDIR=$PREFIX/bin +LIB_ARCH=amd64 # not kidding, grep amd64 in openjdk-boot/jdk/make/jdk_generic_profile.sh ;) + +GCJVER=$(gcj -dumpversion) +# next yields a '16' +GCJSOVER=$( readlink -f $(gcj -print-file-name=libgcj.so) | rev | cut -d. -f3 | rev ) + +# remove the old set of symlinks if they should exist: +rm -fr $JVM + +mkdir -p $JVM +mkdir -p $JVM/bin +mkdir -p $JVM/jre/bin +mkdir -p $JVM/jre/lib/${LIB_ARCH}/client +mkdir -p $JVM/jre/lib/${LIB_ARCH}/server +mkdir -p $JVM/lib + +ln -sf $BINDIR/gjar $JVM/bin/jar +ln -sf $BINDIR/grmic $JVM/bin/rmic +ln -sf $BINDIR/gjavah $JVM/bin/javah +ln -sf $BINDIR/jcf-dump $JVM/bin/javap +ln -sf $BINDIR/gappletviewer $JVM/bin/appletviewer +ln -sf $BINDIR/grmiregistry $JVM/bin/rmiregistry +ln -sf $BINDIR/grmiregistry $JVM/jre/bin/rmiregistry +ln -sf $BINDIR/gkeytool $JVM/bin/keytool +ln -sf $BINDIR/gkeytool $JVM/jre/bin/keytool +ln -sf $BINDIR/gij $JVM/bin/java +ln -sf $BINDIR/ecj $JVM/bin/javac +ln -sf $BINDIR/gnative2ascii $JVM/bin/native2ascii +ln -sf $PREFIX/lib/gcj-${GCJVER}-$GCJSOVER/libjvm.so $JVM/jre/lib/${LIB_ARCH}/client/libjvm.so +ln -sf $PREFIX/lib/gcj-${GCJVER}-$GCJSOVER/libjvm.so $JVM/jre/lib/${LIB_ARCH}/server/libjvm.so +ln -sf $PREFIX/lib/gcj-${GCJVER}-$GCJSOVER/libjawt.so $JVM/jre/lib/${LIB_ARCH}/libjawt.so +ln -sf $PREFIX/share/java/libgcj-${GCJVER}.jar $JVM/jre/lib/rt.jar +ln -sf $PREFIX/share/java/libgcj-tools-${GCJVER}.jar $JVM/lib/tools.jar +ln -sf $PREFIX/include/c++/${GCJVER}/gnu/java $JVM/include + +# Add a Eclipse Java Compiler wrapper which is required +# for bootstrapping OpenJDK using GNU java: +cat < $PREFIX/bin/ecj +#!/bin/sh + +CLASSPATH=$PREFIX/share/java/ecj.jar\${CLASSPATH:+:}\$CLASSPATH \ + java org.eclipse.jdt.internal.compiler.batch.Main "\$@" + +EOT +chmod 755 $PREFIX/bin/ecj + +# exit 1 # inhibit 'closing' +exit diff --git a/openjdk-7u181-0.build.sh b/openjdk-7u181-0.build.sh new file mode 100755 index 0000000..260eec0 --- /dev/null +++ b/openjdk-7u181-0.build.sh @@ -0,0 +1,132 @@ +#! /bin/bash + +# COOKIE=$(mcookie); grep -v V_GREP_ME $0 > /dev/shm/runme-$COOKIE.sh ; sleep 1; exec bash /dev/shm/runme-$COOKIE.sh + +set -xe +umask 022 + +PKG=openjdk +VERSION=7u181 +BUILD=0 +PREFIX=/pkg/$PKG-$VERSION-$BUILD +# PREFIX=/dev/shm/pkg/$PKG-$VERSION-$BUILD + +ICEDTEA=icedtea-2.6.14 +ICEDTEA_VER=$(echo $ICEDTEA | cut -f2 -d-) + +GCJ=/pkg/gcc-5.5.0-1 + +# the build has its own opinion of parallel builds, high counts seem to be instable: +PARALLELJOBS=${PARALLELJOBS:-4} + +SOURCES=(http://icedtea.classpath.org/download/source/icedtea-$ICEDTEA_VER.tar.xz \ + http://icedtea.classpath.org/download/drops/icedtea7/$ICEDTEA_VER/openjdk.tar.bz2 \ + http://icedtea.classpath.org/download/drops/icedtea7/$ICEDTEA_VER/corba.tar.bz2 \ + http://icedtea.classpath.org/download/drops/icedtea7/$ICEDTEA_VER/jaxp.tar.bz2 \ + http://icedtea.classpath.org/download/drops/icedtea7/$ICEDTEA_VER/jaxws.tar.bz2 \ + http://icedtea.classpath.org/download/drops/icedtea7/$ICEDTEA_VER/jdk.tar.bz2 \ + http://icedtea.classpath.org/download/drops/icedtea7/$ICEDTEA_VER/langtools.tar.bz2 \ + http://icedtea.classpath.org/download/drops/icedtea7/$ICEDTEA_VER/hotspot.tar.bz2) + +MD5SUMS=(ec7bf064e33e35dd3845d044e175a698 \ + 307abf13b695c61a8b16d9fa384277db \ + 96b72013cce3000cb46808aa9f9bce40 \ + d3c9cf8e51c043bdb0db360ffaf34d8c \ + f087bbcaffbb65906514448dc49f173e \ + 6580efb17017a4a9402a4a5043374bd7 \ + 1518c296a6125af5119aa5442d88bebf \ + b190d917e60aeba3d9b7d1c61660ea68) + +COUNT_1=$(( ${#SOURCES[@]} - 1 )) + +function fetch_preprocess() { + local url=$1 + local md5=$2 + local opt_unpack=$3 + local tar=$(echo $url | rev | cut -f1 -d/ | rev) + local dir=$(echo $tar | rev | cut -f3- -d. | rev) + + ( + cd $BUILDDIR + echo "$md5 $tar" > $tar.md5 + test -e $tar || wget $url + md5sum -c $tar.md5 + test -n 'XWIPE' && rm -rf ./$dir + if test -n "$opt_unpack"; then + test -d $dir || tar xf $tar + fi + ) +} + +BUILD_TMPDIR=/dev/shm/$PKG-$VERSION-$BUILD.build.tmp +test -d $BUILD_TMPDIR && rm -rf $BUILD_TMPDIR +mkdir -p $BUILD_TMPDIR/home +export TMPDIR=$BUILD_TMPDIR +export HOME=$BUILD_TMPDIR/home + +mkdir -p $PREFIX +cat >$PREFIX/profile <<-EOF + PATH=$PREFIX/bin:\$PATH +EOF + +source $PREFIX/profile + +BOOT_JAVA=$GCJ/lib/jvm +source $GCJ/profile + +BUILDDIR=$PREFIX/build +mkdir -p $BUILDDIR +cd $BUILDDIR + +fetch_preprocess ${SOURCES[0]} ${MD5SUMS[0]} 'yes' +for X in $(seq 1 $COUNT_1); do + fetch_preprocess ${SOURCES[$X]} ${MD5SUMS[$X]} +done + +# recent cacerts taken from CentOS package, so Red Hat is at least of some use ... +( + CACERTS_URL=http://mirror.centos.org/centos/6/os/x86_64/Packages + RPM=ca-certificates-2018.2.22-65.1.el6.noarch.rpm + mkdir -p $BUILDDIR/tmp-certificates + cd $BUILDDIR/tmp-certificates + test -e $RPM || wget $CACERTS_URL/$RPM + test -d ./etc || rpm2cpio $RPM | cpio -imVd + cp etc/pki/java/cacerts $BUILDDIR +) + +mkdir -p icedtea-build +cd icedtea-build + +JAVA_HOME=${BOOT_JAVA} PATH=${BOOT_JAVA}/bin:$PATH \ +../$ICEDTEA/configure \ + --with-jdk-home=${BOOT_JAVA} \ + --without-rhino \ + --disable-system-kerberos \ + --disable-system-pcsc \ + --disable-system-sctp \ + --with-cacerts-file="$BUILDDIR/cacerts" \ + --with-openjdk-src-zip="$BUILDDIR/openjdk.tar.bz2" \ + --with-corba-src-zip="$BUILDDIR/corba.tar.bz2" \ + --with-jaxp-src-zip="$BUILDDIR/jaxp.tar.bz2" \ + --with-jaxws-src-zip="$BUILDDIR/jaxws.tar.bz2" \ + --with-jdk-src-zip="$BUILDDIR/jdk.tar.bz2" \ + --with-langtools-src-zip="$BUILDDIR/langtools.tar.bz2" \ + --with-hotspot-src-zip="$BUILDDIR/hotspot.tar.bz2" \ + --disable-docs \ + --with-parallel-jobs=$PARALLELJOBS \ + --disable-downloading + +# ALT_UNIXCOMMAND_PATH is needed, otherwise make fails due to 'missing' /bin/touch & /bin/cpio +# ... make/common/shared/Defs-linux.gmk +# UNIXCOMMAND_PATH: path to where the most common Unix commands are. +# NOTE: Must end with / so that it could be empty, allowing PATH usage. +# +# From time to time the build fails (1 outof 5), if so, start over. +ALT_UNIXCOMMAND_PATH=/usr/bin/ JAVA_HOME=${BOOT_JAVA} PATH=${BOOT_JAVA}/bin:$PATH LOG=trace \ +make + +# install +cp -a $BUILDDIR/icedtea-build/openjdk.build/j2sdk-image/* $PREFIX + +# exit 1 # inhibit closing +exit diff --git a/openjdk-8u171-0.build.sh b/openjdk-8u171-0.build.sh new file mode 100755 index 0000000..6c7fbfe --- /dev/null +++ b/openjdk-8u171-0.build.sh @@ -0,0 +1,132 @@ +#! /bin/bash + +# COOKIE=$(mcookie); grep -v V_GREP_ME $0 > /dev/shm/runme-$COOKIE.sh ; sleep 1; exec bash /dev/shm/runme-$COOKIE.sh + +set -xe +umask 022 + +PKG=openjdk +VERSION=8u171 +BUILD=0 +PREFIX=/pkg/$PKG-$VERSION-$BUILD +# PREFIX=/dev/shm/pkg/$PKG-$VERSION-$BUILD + +ICEDTEA=icedtea-3.8.0 +ICEDTEA_VER=$(echo $ICEDTEA | cut -f2 -d-) + +# the build has its own opinion of parallel builds, high counts seem to be instable: +PARALLELJOBS=${PARALLELJOBS:-4} + +SOURCES=(http://icedtea.classpath.org/download/source/icedtea-$ICEDTEA_VER.tar.xz \ + http://icedtea.classpath.org/download/drops/icedtea8/$ICEDTEA_VER/openjdk.tar.xz \ + http://icedtea.classpath.org/download/drops/icedtea8/$ICEDTEA_VER/corba.tar.xz \ + http://icedtea.classpath.org/download/drops/icedtea8/$ICEDTEA_VER/jaxp.tar.xz \ + http://icedtea.classpath.org/download/drops/icedtea8/$ICEDTEA_VER/jaxws.tar.xz \ + http://icedtea.classpath.org/download/drops/icedtea8/$ICEDTEA_VER/jdk.tar.xz \ + http://icedtea.classpath.org/download/drops/icedtea8/$ICEDTEA_VER/langtools.tar.xz \ + http://icedtea.classpath.org/download/drops/icedtea8/$ICEDTEA_VER/nashorn.tar.xz \ + http://icedtea.classpath.org/download/drops/icedtea8/$ICEDTEA_VER/hotspot.tar.xz) + +MD5SUMS=(e6a2a693291296a8e4b3cc76499b047e \ + d532e0e7d893c6f3f427d571304fa6b8 \ + 083df5866e8434786bd62c5d26cf4b1a \ + 4859c3d3f6c8b6f1b3d92f316089b6a6 \ + 3f811761f995c7056ab2ab516dd2870f \ + 7e820fa93b44bc3a214313e0354da026 \ + 22df0b6af90e722e5cc802a5915f8385 \ + e7f0b4ca8f2b897c8f4225d4fe3291fb \ + c0017c13ea1c5fc8026d9f2b2bed4a11) + +COUNT_1=$(( ${#SOURCES[@]} - 1 )) + +function fetch_preprocess() { + local url=$1 + local md5=$2 + local opt_unpack=$3 + local tar=$(echo $url | rev | cut -f1 -d/ | rev) + local dir=$(echo $tar | rev | cut -f3- -d. | rev) + + ( + cd $BUILDDIR + echo "$md5 $tar" > $tar.md5 + test -e $tar || wget $url + md5sum -c $tar.md5 + test -n 'XWIPE' && rm -rf ./$dir + if test -n "$opt_unpack"; then + test -d $dir || tar xf $tar + fi + ) +} + +BUILD_TMPDIR=/dev/shm/$PKG-$VERSION-$BUILD.build.tmp +test -d $BUILD_TMPDIR && rm -rf $BUILD_TMPDIR +mkdir -p $BUILD_TMPDIR/home +export TMPDIR=$BUILD_TMPDIR +export HOME=$BUILD_TMPDIR/home + +mkdir -p $PREFIX +cat >$PREFIX/profile <<-EOF + PATH=$PREFIX/bin:\$PATH +EOF + +source $PREFIX/profile + +BOOT_JAVA=/pkg/openjdk-7u181-0 +source $BOOT_JAVA/profile + +BUILDDIR=$PREFIX/build +mkdir -p $BUILDDIR +cd $BUILDDIR + +fetch_preprocess ${SOURCES[0]} ${MD5SUMS[0]} 'yes' +for X in $(seq 1 $COUNT_1); do + fetch_preprocess ${SOURCES[$X]} ${MD5SUMS[$X]} +done + +# recent cacerts taken from CentOS package, so Red Hat is at least of some use ... +( + CACERTS_URL=http://mirror.centos.org/centos/6/os/x86_64/Packages + RPM=ca-certificates-2018.2.22-65.1.el6.noarch.rpm + mkdir -p $BUILDDIR/tmp-certificates + cd $BUILDDIR/tmp-certificates + test -e $RPM || wget $CACERTS_URL/$RPM + test -d ./etc || rpm2cpio $RPM | cpio -imVd + cp etc/pki/java/cacerts $BUILDDIR +) + +mkdir -p icedtea-build +cd icedtea-build + +JAVA_HOME=${BOOT_JAVA} PATH=${BOOT_JAVA}/bin:$PATH \ +../$ICEDTEA/configure \ + --with-jdk-home=${BOOT_JAVA} \ + --disable-system-kerberos \ + --disable-system-pcsc \ + --disable-system-sctp \ + --with-cacerts-file="$BUILDDIR/cacerts" \ + --with-openjdk-src-zip="$BUILDDIR/openjdk.tar.xz" \ + --with-corba-src-zip="$BUILDDIR/corba.tar.xz" \ + --with-jaxp-src-zip="$BUILDDIR/jaxp.tar.xz" \ + --with-jaxws-src-zip="$BUILDDIR/jaxws.tar.xz" \ + --with-jdk-src-zip="$BUILDDIR/jdk.tar.xz" \ + --with-langtools-src-zip="$BUILDDIR/langtools.tar.xz" \ + --with-nashorn-src-zip="$BUILDDIR/nashorn.tar.xz" \ + --with-hotspot-src-zip="$BUILDDIR/hotspot.tar.xz" \ + --disable-docs \ + --with-parallel-jobs=$PARALLELJOBS \ + --disable-downloading + +# ALT_UNIXCOMMAND_PATH is needed, otherwise make fails due to 'missing' /bin/touch & /bin/cpio +# ... make/common/shared/Defs-linux.gmk +# UNIXCOMMAND_PATH: path to where the most common Unix commands are. +# NOTE: Must end with / so that it could be empty, allowing PATH usage. +# +# From time to time the build fails (1 outof 5), if so, start over. +ALT_UNIXCOMMAND_PATH=/usr/bin/ JAVA_HOME=${BOOT_JAVA} PATH=${BOOT_JAVA}/bin:$PATH LOG=trace \ +make + +# install +cp -a $BUILDDIR/icedtea-build/openjdk.build/images/j2sdk-image/* $PREFIX + +# exit 1 # inhibit closing +exit