# Description: The GNU Compiler Collection Java Front End # URL: http://gcc.gnu.org # Maintainer: John Vogel, jvogel4 at stny dot rr dot com # Depends on: gcc6 unzip zip name=gcj6-jdk version=6.5.0 release=1 source=(https://gcc.gnu.org/pub/gcc/releases/gcc-$version/gcc-$version.tar.xz gcc-nocheck-fixincludes.patch gcc-4.7.3-multilib-dirs.patch libsanitizer.patch ftp://gcc.gnu.org/pub/java/ecj-4.9.jar https://oss.sonatype.org/content/repositories/releases/org/antlr/antlr-runtime/3.5.2/antlr-runtime-3.5.2.jar) build() { export CC='gcc-6' export CXX='g++-6' export CFLAGS="-O2 -march=x86-64" export CXXFLAGS="${CFLAGS}" patch -d gcc-$version -p1 -i $SRC/gcc-nocheck-fixincludes.patch patch -d gcc-$version -p1 -i $SRC/gcc-4.7.3-multilib-dirs.patch patch -d gcc-$version -p2 -i $SRC/libsanitizer.patch mv $SRC/ecj-4.9.jar gcc-$version/ecj.jar mkdir build cd build ../gcc-$version/configure \ --prefix=/usr \ --libexecdir=/usr/lib \ --disable-bootstrap \ --enable-version-specific-runtime-libs \ --enable-languages=java \ --enable-threads=posix \ --enable-__cxa_atexit \ --enable-clocale=gnu \ --enable-shared \ --disable-nls \ --with-system-zlib \ --enable-multilib \ --enable-java-home \ --with-jvm-root-dir=/usr/lib/java/$name \ --with-java-home=/usr/lib/java/$name/jre \ --with-jvm-jar-dir=/usr/lib/java/$name/jvm-exports \ --with-antlr-jar=$SRC/antlr-runtime-3.5.2.jar \ --with-pkgversion="CRUX-x86_64-multilib" \ --program-suffix="-${version%%.*}" make make -j1 DESTDIR=$PKG install-target-libjava cd gcc make -j1 DESTDIR=$PKG java.install-common java.install-man target_alias=$(sed -n -e 's/^target=\(.*\)$/\1/p' Makefile) ln -sr $PKG/usr/lib/gcc/$target_alias/$version/libgcj.so.17.0.0 $PKG/usr/lib/libgcj.so.17 ln -sr $PKG/usr/lib/gcc/$target_alias/$version/libgcj_bc.so.1.0.0 $PKG/usr/lib/libgcj_bc.so.1 ln -sr $PKG/usr/lib/gcc/$target_alias/$version/libgcj-tools.so.17.0.0 $PKG/usr/lib/libgcj-tools.so.17 ln -sr $PKG/usr/lib/gcc/$target_alias/$version/libgij.so.17.0.0 $PKG/usr/lib/libgij.so.17 install -m755 jc1 $PKG/usr/lib/gcc/$target_alias/$version/ install -m755 jvgenmain $PKG/usr/lib/gcc/$target_alias/$version/ $PKG/usr/bin/gcj-6 -B /usr/lib/gcc/$target_alias/$version -o $PKG/usr/bin/ecj \ $PKG/usr/share/java/ecj.jar --main=org.eclipse.jdt.internal.compiler.batch.Main ln -sr $PKG/usr/bin/ecj $PKG/usr/lib/java/$name/bin/javac ln -sr $PKG/usr/bin/jcf-dump-6 $PKG/usr/lib/java/$name/bin/javap mv $PKG/usr/lib/gcc/$target_alias/$version/pkgconfig $PKG/usr/lib rm -rf $PKG/usr/lib/gcc/$target_alias/lib{,32} rm -rf $PKG/usr/lib/gcc/$target_alias/$version/{,32/}{*.a,*.o,pkgconfig} rm -f $PKG/usr/lib/gcc/$target_alias/$version/include/unwind.h rm -f $PKG/usr/lib/java/$name/jre/lib/amd64/libjawt.so rm -rf $PKG/usr/share/{info,gcc-$version} rm -f $PKG/usr/bin/${target_alias}-* rm -rf $PKG/usr/include rm -rf $PKG/usr/share/man/man7 # Broken link, no actual libjawt.so found, even in build directory find $PKG/usr/lib -name 'libjawt.so' -delete # The libtool archive files reference the build directories, purge until evidenced to be needed find $PKG/usr/lib -name '*.la' -delete for l in $(find $PKG/usr/lib/java/$name/include -lname '*/pkg/*/*.h'); do ln -srf "$(find $PKG/usr/lib/gcc/$target_alias/$version/include -name ${l##*/} -type f)" $l done }