aboutsummaryrefslogtreecommitdiff
path: root/testing/libgccjit
diff options
context:
space:
mode:
authorCem Keylan <cem@ckyln.com>2020-12-25 02:37:30 +0300
committerCem Keylan <cem@ckyln.com>2020-12-25 02:37:30 +0300
commitf3528ed91601cc994aa7118758790063b3b62f1b (patch)
tree11e09a698cc4503d49fc3e9c0689856d6f515c3c /testing/libgccjit
parentf8578219687f65e2e7be362ac3e3ad2692816b45 (diff)
downloadrepository-f3528ed91601cc994aa7118758790063b3b62f1b.tar.gz
libgccjit: add new package at 10.2.0 [TESTING]
Diffstat (limited to 'testing/libgccjit')
-rwxr-xr-xtesting/libgccjit/build72
-rw-r--r--testing/libgccjit/checksums2
-rw-r--r--testing/libgccjit/depends7
-rw-r--r--testing/libgccjit/patches/gccjit-musl-fix.patch63
-rw-r--r--testing/libgccjit/sources2
-rw-r--r--testing/libgccjit/version1
6 files changed, 147 insertions, 0 deletions
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
+ <http://www.gnu.org/licenses/>. */
+
++#include <pthread.h>
++
+ #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 <pthread.h>
+-
+ #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
+ <http://www.gnu.org/licenses/>. */
+
++#include <pthread.h>
++
+ #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 <pthread.h>
+-
+ #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
+ <http://www.gnu.org/licenses/>. */
+
++#include <pthread.h>
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "timevar.h"
+ #include "typed-splay-tree.h"
+ #include "cppbuiltin.h"
+-#include <pthread.h>
+
+ #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