From f3528ed91601cc994aa7118758790063b3b62f1b Mon Sep 17 00:00:00 2001 From: Cem Keylan Date: Fri, 25 Dec 2020 02:37:30 +0300 Subject: libgccjit: add new package at 10.2.0 [TESTING] --- testing/libgccjit/build | 72 +++++++++++++++++++++++++ testing/libgccjit/checksums | 2 + testing/libgccjit/depends | 7 +++ testing/libgccjit/patches/gccjit-musl-fix.patch | 63 ++++++++++++++++++++++ testing/libgccjit/sources | 2 + testing/libgccjit/version | 1 + 6 files changed, 147 insertions(+) create mode 100755 testing/libgccjit/build create mode 100644 testing/libgccjit/checksums create mode 100644 testing/libgccjit/depends create mode 100644 testing/libgccjit/patches/gccjit-musl-fix.patch create mode 100644 testing/libgccjit/sources create mode 100644 testing/libgccjit/version (limited to 'testing') diff --git a/testing/libgccjit/build b/testing/libgccjit/build new file mode 100755 index 00000000..3d2dc7c1 --- /dev/null +++ b/testing/libgccjit/build @@ -0,0 +1,72 @@ +#!/bin/sh -e + +# TODO Cleanup non-libgccjit items. + +sys_arch=${3:-$(uname -m)} + +sed_i() { + for file; do :; done + sed "$@" > _ + cat _ > "$file"; rm -f _ +} + +if [ "${sys_arch#i*86}" ]; then + # Do not create lib64 directories + sed_i '/m64=/s/lib64/lib/' gcc/gcc/config/i386/t-linux64 + sed_i 's/lib64/lib/' gcc/gcc/config/i386/linux64.h +fi + +# FIXME: there is an offset on the diff, causing 'busybox patch' to fail. +(cd gcc; patch -p1 < ../gccjit-musl-fix.patch) + +case "$sys_arch" in + i*86) archopts="--build=i686-pc-linux-musl" ;; + x86_64) archopts="--build=x86_64-pc-linux-musl" +esac + +# Build must happen outside of gcc source. +mkdir -p gcc-build +cd gcc-build + +export libat_cv_have_ifunc=no + +../gcc/configure \ + --prefix=/usr \ + "$archopts" \ + --disable-bootstrap \ + --disable-fixed-point \ + --disable-libada \ + --disable-libquadmath \ + --disable-libsanitizer \ + --disable-libssp \ + --disable-libvtv \ + --disable-lto \ + --disable-multilib \ + --disable-nls \ + --disable-symvers \ + --disable-werror \ + --enable-__cxa_atexit \ + --enable-checking=release \ + --enable-default-pie \ + --enable-default-ssp \ + --enable-host-shared \ + --enable-languages=jit \ + --enable-shared \ + --enable-threads \ + --enable-tls \ + --infodir=/usr/share/info \ + --mandir=/usr/share/man \ + --with-system-zlib \ + --without-included-gettext + +make +make DESTDIR="$1" -C gcc install + +# Remove unnecessary gcc files. +rm -rf "$1/usr/bin" \ + "$1/usr/lib/gcc" \ + "$1/usr/libexec" \ + "$1/usr/share/man" + +# Remove info pages other than libgccjit +find "$1/usr/share/info" -type f ! -name libgccjit.info -exec rm -f {} + diff --git a/testing/libgccjit/checksums b/testing/libgccjit/checksums new file mode 100644 index 00000000..79088732 --- /dev/null +++ b/testing/libgccjit/checksums @@ -0,0 +1,2 @@ +b8dd4368bb9c7f0b98188317ee0254dd8cc99d1e3a18d0ff146c855fe16c1d8c gcc-10.2.0.tar.xz +0485655dbccf9034ba1d2cf5fb2e7bdbfe10aee32906c9488c0ec3da69dbb44f gccjit-musl-fix.patch diff --git a/testing/libgccjit/depends b/testing/libgccjit/depends new file mode 100644 index 00000000..7674b4f1 --- /dev/null +++ b/testing/libgccjit/depends @@ -0,0 +1,7 @@ +binutils +byacc make +flex make +gmp +libmpc +mpfr +zlib diff --git a/testing/libgccjit/patches/gccjit-musl-fix.patch b/testing/libgccjit/patches/gccjit-musl-fix.patch new file mode 100644 index 00000000..d2ed1692 --- /dev/null +++ b/testing/libgccjit/patches/gccjit-musl-fix.patch @@ -0,0 +1,63 @@ +diff --git a/gcc/jit/jit-playback.c b/gcc/jit/jit-playback.c +index 5bccf591a..35f5e35ef 100644 +--- a/gcc/jit/jit-playback.c ++++ b/gcc/jit/jit-playback.c +@@ -18,6 +18,8 @@ You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING3. If not see + . */ + ++#include ++ + #include "config.h" + #include "system.h" + #include "coretypes.h" +@@ -41,8 +43,6 @@ along with GCC; see the file COPYING3. If not see + #include "diagnostic.h" + #include "stmt.h" + +-#include +- + #include "jit-playback.h" + #include "jit-result.h" + #include "jit-builtins.h" +diff --git a/gcc/jit/jit-recording.c b/gcc/jit/jit-recording.c +index a237d574f..5785e3269 100644 +--- a/gcc/jit/jit-recording.c ++++ b/gcc/jit/jit-recording.c +@@ -18,6 +18,8 @@ You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING3. If not see + . */ + ++#include ++ + #include "config.h" + #include "system.h" + #include "coretypes.h" +@@ -25,8 +27,6 @@ along with GCC; see the file COPYING3. If not see + #include "pretty-print.h" + #include "toplev.h" + +-#include +- + #include "jit-builtins.h" + #include "jit-recording.h" + #include "jit-playback.h" +diff --git a/gcc/jit/libgccjit.c b/gcc/jit/libgccjit.c +index f9c33c63c..75f21d275 100644 +--- a/gcc/jit/libgccjit.c ++++ b/gcc/jit/libgccjit.c +@@ -18,13 +18,13 @@ You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING3. If not see + . */ + ++#include + #include "config.h" + #include "system.h" + #include "coretypes.h" + #include "timevar.h" + #include "typed-splay-tree.h" + #include "cppbuiltin.h" +-#include + + #include "libgccjit.h" + #include "jit-recording.h" diff --git a/testing/libgccjit/sources b/testing/libgccjit/sources new file mode 100644 index 00000000..d39c5e72 --- /dev/null +++ b/testing/libgccjit/sources @@ -0,0 +1,2 @@ +https://gcc.gnu.org/pub/gcc/releases/gcc-10.2.0/gcc-10.2.0.tar.xz gcc +patches/gccjit-musl-fix.patch diff --git a/testing/libgccjit/version b/testing/libgccjit/version new file mode 100644 index 00000000..1564eb7c --- /dev/null +++ b/testing/libgccjit/version @@ -0,0 +1 @@ +10.2.0 1 -- cgit v1.2.3