91 lines
3.3 KiB
Plaintext
91 lines
3.3 KiB
Plaintext
# 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
|
|
}
|