aboutsummaryrefslogtreecommitdiffstats
path: root/testing
diff options
context:
space:
mode:
Diffstat (limited to 'testing')
-rw-r--r--testing/julia/0001-hardened.patch29
-rw-r--r--testing/julia/0002-verbose-build.patch17
-rw-r--r--testing/julia/0003-no-clean-docs.patch18
-rw-r--r--testing/julia/0004-remove-sysctl.h.patch33
-rw-r--r--testing/julia/0005-llvm-3.8.patch56
-rw-r--r--testing/julia/0006-fix-contrib-install.patch32
-rw-r--r--testing/julia/0007-fix-stack-addr.patch64
-rw-r--r--testing/julia/0008-ldconfig-compat.patch24
-rw-r--r--testing/julia/APKBUILD187
-rwxr-xr-xtesting/julia/find-syslibs19
10 files changed, 479 insertions, 0 deletions
diff --git a/testing/julia/0001-hardened.patch b/testing/julia/0001-hardened.patch
new file mode 100644
index 0000000000..2984356c7b
--- /dev/null
+++ b/testing/julia/0001-hardened.patch
@@ -0,0 +1,29 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Sun, 05 Jun 2016 14:11:00 +0200
+Subject: [PATCH] Disable PaX memory protection for julia binary
+--- a/Makefile
++++ b/Makefile
+@@ -71,7 +71,13 @@
+ julia-sysimg-debug : julia-inference julia-ui-debug
+ @$(MAKE) $(QUIET_MAKE) $(build_private_libdir)/sys-debug.$(SHLIB_EXT) JULIA_BUILD_MODE=debug
+
+-julia-debug julia-release : julia-% : julia-ui-% julia-sysimg-% julia-symlink julia-libccalltest
++julia-pax-release : julia-ui-release
++ paxmark m $(JULIA_EXECUTABLE_release)
++
++julia-pax-debug : julia-ui-debug
++ paxmark m $(JULIA_EXECUTABLE_debug)
++
++julia-debug julia-release : julia-% : julia-ui-% julia-pax-% julia-sysimg-% julia-symlink julia-libccalltest
+
+ debug release : % : julia-%
+
+@@ -527,7 +533,7 @@
+ test testall testall1 test clean distcleanall cleanall clean-* \
+ run-julia run-julia-debug run-julia-release run \
+ install binary-dist light-source-dist.tmp light-source-dist \
+- dist full-source-dist source-dist
++ dist full-source-dist source-dist julia-pax-release julia-pax-debug
+
+ test: check-whitespace $(JULIA_BUILD_MODE)
+ @$(MAKE) $(QUIET_MAKE) -C test default JULIA_BUILD_MODE=$(JULIA_BUILD_MODE)
diff --git a/testing/julia/0002-verbose-build.patch b/testing/julia/0002-verbose-build.patch
new file mode 100644
index 0000000000..49bb036996
--- /dev/null
+++ b/testing/julia/0002-verbose-build.patch
@@ -0,0 +1,17 @@
+Description: Ensure that build is verbose
+Author: Sébastien Villemot <sebastien@debian.org>
+Forwarded: not-needed
+Last-Update: 2013-10-09
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/deps/Makefile
++++ b/deps/Makefile
+@@ -756,7 +756,7 @@
+ touch -c $(LIBUV_SRC_DIR)/Makefile.in
+ touch -c $(LIBUV_SRC_DIR)/configure
+ cd $(LIBUV_SRC_DIR) && \
+- ./configure --with-pic $(CONFIGURE_COMMON) $(UV_FLAGS)
++ ./configure --with-pic $(CONFIGURE_COMMON) $(UV_FLAGS) --disable-silent-rules
+ touch -c $@
+ $(UV_SRC_TARGET): $(LIBUV_SRC_DIR)/config.status
+ $(MAKE) -C $(LIBUV_SRC_DIR) $(UV_MFLAGS)
diff --git a/testing/julia/0003-no-clean-docs.patch b/testing/julia/0003-no-clean-docs.patch
new file mode 100644
index 0000000000..7046ea34a2
--- /dev/null
+++ b/testing/julia/0003-no-clean-docs.patch
@@ -0,0 +1,18 @@
+--- a/Makefile
++++ b/Makefile
+@@ -495,7 +493,6 @@
+
+ clean: | $(CLEAN_TARGETS)
+ @$(MAKE) -C base clean
+- @$(MAKE) -C doc clean
+ @$(MAKE) -C src clean
+ @$(MAKE) -C ui clean
+ @$(MAKE) -C test clean
+@@ -517,7 +514,6 @@
+
+ distcleanall: cleanall
+ @$(MAKE) -C deps distcleanall
+- @$(MAKE) -C doc cleanall
+ rm -fr $(build_prefix) $(build_staging)
+
+ .PHONY: default debug release check-whitespace release-candidate \
diff --git a/testing/julia/0004-remove-sysctl.h.patch b/testing/julia/0004-remove-sysctl.h.patch
new file mode 100644
index 0000000000..42c71cb893
--- /dev/null
+++ b/testing/julia/0004-remove-sysctl.h.patch
@@ -0,0 +1,33 @@
+From 6f09a6de41e7e35779e0755d9e52a4bf79424109 Mon Sep 17 00:00:00 2001
+From: albap <albapompeo@gmail.com>
+Date: Sun, 31 Jan 2016 10:50:02 -0200
+Subject: [PATCH] Remove nonstandard header sys/sysctl.h
+
+This header prevents me from building Julia on musl libc.
+
+```
+/home/alba/julia/src/sys.c:16:24: fatal error: sys/sysctl.h: No such file or directory
+compilation terminated.
+Makefile:94: recipe for target 'sys.o' failed
+make[1]: *** [sys.o] Error 1
+```
+
+If I remove it from julia/src/sys.c then it works.
+
+Why is sys/sysctl.h needed in first place? I cannot find it in POSIX.
+---
+ src/sys.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/src/sys.c b/src/sys.c
+index 9a48871..89069a9 100644
+--- a/src/sys.c
++++ b/src/sys.c
+@@ -13,7 +13,6 @@
+ #ifdef _OS_WINDOWS_
+ #include <psapi.h>
+ #else
+-#include <sys/sysctl.h>
+ #include <sys/wait.h>
+ #include <sys/ptrace.h>
+ #include <unistd.h>
diff --git a/testing/julia/0005-llvm-3.8.patch b/testing/julia/0005-llvm-3.8.patch
new file mode 100644
index 0000000000..c301f964c2
--- /dev/null
+++ b/testing/julia/0005-llvm-3.8.patch
@@ -0,0 +1,56 @@
+Description: LLVM 3.8 compatibility
+ These fixes come straight from upstream's git.
+Origin: Upstream, https://github.com/JuliaLang/julia/commit/b67609b988febe062e6709d8972c4f869c82cfc0
+Origin: Upstream, https://github.com/JuliaLang/julia/commit/3f6abadc9d12bb9d59ec775db4277b3841395d0b
+Origin: Upstream, https://github.com/JuliaLang/julia/commit/caf3c74426696d43101d9607b1a2cd3a5e05bc0f
+Author: Graham Inggs <ginggs@debian.org>
+Last-Update: 2016-02-03
+--- a/src/cgutils.cpp
++++ b/src/cgutils.cpp
+@@ -219,7 +219,11 @@
+ }
+ }
+
++#ifdef LLVM38
++ virtual Value *materializeDeclFor(Value *V)
++#else
+ virtual Value *materializeValueFor (Value *V)
++#endif
+ {
+ Function *F = dyn_cast<Function>(V);
+ if (F) {
+@@ -492,7 +496,11 @@
+
+ // now copy the module, since PM.run may modify it
+ ValueToValueMapTy VMap;
++#ifdef LLVM38
++ Module *clone = CloneModule(shadow_module, VMap).release();
++#else
+ Module *clone = CloneModule(shadow_module, VMap);
++#endif
+ #ifdef LLVM37
+ // Reset the target triple to make sure it matches the new target machine
+ clone->setTargetTriple(TM->getTargetTriple().str());
+--- a/src/intrinsics.cpp
++++ b/src/intrinsics.cpp
+@@ -780,12 +780,20 @@
+ jl_options.fast_math == JL_OPTIONS_FAST_MATH_ON)) {
+ FastMathFlags fmf;
+ fmf.setUnsafeAlgebra();
++#ifdef LLVM38
++ builder.setFastMathFlags(fmf);
++#else
+ builder.SetFastMathFlags(fmf);
++#endif
+ }
+ }
+ IRBuilder<>& operator()() const { return builder; }
+ ~math_builder() {
++#ifdef LLVM38
++ builder.setFastMathFlags(old_fmf);
++#else
+ builder.SetFastMathFlags(old_fmf);
++#endif
+ }
+ };
+
diff --git a/testing/julia/0006-fix-contrib-install.patch b/testing/julia/0006-fix-contrib-install.patch
new file mode 100644
index 0000000000..f41746586b
--- /dev/null
+++ b/testing/julia/0006-fix-contrib-install.patch
@@ -0,0 +1,32 @@
+From 2298cb0e5158fe0edc58afdb6a06c8b2d5ae4092 Mon Sep 17 00:00:00 2001
+From: Tony Kelman <tony@kelman.net>
+Date: Mon, 6 Jun 2016 10:40:01 -0700
+Subject: [PATCH] fix contrib/install.sh when using busybox awk
+
+```
+/ # echo foobar | busybox awk '{print substr($0, 2, length-2)}'
+awk: cmd. line:1: Unexpected token
+/ # echo foobar | busybox awk '{print substr($0, 2, length($0)-2)}'
+ooba
+/ # echo foobar | gawk '{print substr($0, 2, length-2)}'
+ooba
+/ # echo foobar | gawk '{print substr($0, 2, length($0)-2)}'
+ooba
+```
+---
+ contrib/install.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/contrib/install.sh b/contrib/install.sh
+index f6a7ccf..cb8a43b 100755
+--- a/contrib/install.sh
++++ b/contrib/install.sh
+@@ -20,7 +20,7 @@ for SRC in $ARGS; do
+
+ # If there are surrounding quotes, remove them. We do this simply by knowing that the destination is always an absolute path
+ if [ "$(echo $DESTFILE | head -c1)" != "/" ]; then
+- DESTFILE=$(echo $DESTFILE | awk '{print substr($0, 2, length-2)}')
++ DESTFILE=$(echo $DESTFILE | awk '{print substr($0, 2, length($0)-2)}')
+ fi
+
+ # Do the chmod dance, and ignore errors on platforms that don't like setting permissions of symlinks
diff --git a/testing/julia/0007-fix-stack-addr.patch b/testing/julia/0007-fix-stack-addr.patch
new file mode 100644
index 0000000000..e627572605
--- /dev/null
+++ b/testing/julia/0007-fix-stack-addr.patch
@@ -0,0 +1,64 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Wed, 8 Jun 2016 01:51:00 +0200
+Subject: [PATCH] Try not to use address of local variable as stack address to copy.
+
+It triggers bounds check on musl libc that leads to Illegal instruction error.
+
+This patch is backported from https://github.com/JuliaLang/julia/pull/16813
+--- a/src/gc.c
++++ b/src/gc.c
+@@ -270,10 +270,7 @@
+
+ NOINLINE static uintptr_t gc_get_stack_ptr()
+ {
+- void *dummy = NULL;
+- // The mask is to suppress the compiler warning about returning
+- // address of local variable
+- return (uintptr_t)&dummy & ~(uintptr_t)15;
++ return (uintptr_t)jl_get_frame_addr();
+ }
+
+ #include "gc-debug.c"
+--- a/src/julia_internal.h
++++ b/src/julia_internal.h
+@@ -222,6 +222,18 @@
+
+ DLLEXPORT jl_value_t *(jl_array_data_owner)(jl_array_t *a);
+
++STATIC_INLINE void *jl_get_frame_addr(void)
++{
++#ifdef __GNUC__
++ return __builtin_frame_address(0);
++#else
++ void *dummy = NULL;
++ // The mask is to suppress the compiler warning about returning
++ // address of local variable
++ return (void*)((uintptr_t)&dummy & ~(uintptr_t)15);
++#endif
++}
++
+ #ifdef __cplusplus
+ }
+ #endif
+--- a/src/task.c
++++ b/src/task.c
+@@ -163,8 +163,8 @@
+ {
+ if (t->state == done_sym || t->state == failed_sym)
+ return;
+- volatile char *_x;
+- size_t nb = (char*)jl_stackbase - (char*)&_x;
++ char *frame_addr = (char*)jl_get_frame_addr();
++ size_t nb = (char*)jl_stackbase - frame_addr;
+ char *buf;
+ if (t->stkbuf == NULL || t->bufsz < nb) {
+ buf = (char*)allocb(nb);
+@@ -175,7 +175,7 @@
+ buf = (char*)t->stkbuf;
+ }
+ t->ssize = nb;
+- memcpy(buf, (char*)&_x, nb);
++ memcpy(buf, frame_addr, nb);
+ // this task's stack could have been modified after
+ // it was marked by an incremental collection
+ // move the barrier back instead of walking it again here
diff --git a/testing/julia/0008-ldconfig-compat.patch b/testing/julia/0008-ldconfig-compat.patch
new file mode 100644
index 0000000000..b8a4efaab3
--- /dev/null
+++ b/testing/julia/0008-ldconfig-compat.patch
@@ -0,0 +1,24 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Thu, 9 Jun 2016 01:15:00 +0200
+Subject: [PATCH] Use our find-syslibs script instead of /sbin/ldconfig -p
+
+Julia uses "ldconfig -p" to find system libraries. The problem is that musl's
+ldconfig doesn't support the option "-p". Moreover, ldconfig relies on .pc
+files that are installed only with -dev subpackages.
+
+This workaround lies in using custom script that adapts output of scanelf to
+the format produced by "ldconfig -p".
+
+See https://github.com/JuliaLang/julia/issues/6742.
+
+--- a/src/ccall.cpp
++++ b/src/ccall.cpp
+@@ -14,7 +14,7 @@
+ char *line=NULL;
+ size_t sz=0;
+ #if defined(__linux__)
+- FILE *ldc = popen("/sbin/ldconfig -p", "r");
++ FILE *ldc = popen("/usr/share/julia/find-syslibs", "r");
+ #else
+ FILE *ldc = popen("/sbin/ldconfig -r", "r");
+ #endif
diff --git a/testing/julia/APKBUILD b/testing/julia/APKBUILD
new file mode 100644
index 0000000000..322dbb4b57
--- /dev/null
+++ b/testing/julia/APKBUILD
@@ -0,0 +1,187 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=julia
+pkgver=0.4.5
+# Keep in sync with deps/libuv.version.
+_libuv_ver=efb40768b7c7bd9f173a7868f74b92b1c5a61a0e
+# Keep in sync with deps/Versions.make.
+_rmathjulia_ver=0.1
+pkgrel=0
+pkgdesc="A high-level, high-performance dynamic language for technical computing"
+url="http://julialang.org"
+arch="x86 x86_64"
+license="MIT"
+depends="arpack
+ fftw>=3.3
+ gmp>=5.0
+ libgit2>=0.21
+ mpfr3
+ openblas
+ openlibm
+ openspecfun>=0.4
+ pcre2>=10.0
+ suitesparse>=4.1
+ "
+depends_dev="arpack-dev
+ dsfmt-dev
+ fftw-dev
+ gmp-dev
+ libgit2-dev
+ libunwind-dev
+ llvm-dev>=3.7
+ mpfr-dev
+ openblas-dev
+ openlibm-dev
+ openspecfun-dev
+ pcre2-dev
+ suitesparse-dev
+ utf8proc-dev>=1.3
+ "
+makedepends="$depends_dev
+ bash
+ cmake
+ dsfmt
+ gfortran
+ linux-headers
+ openssl-dev
+ paxmark
+ perl
+ "
+subpackages="$pkgname-dev $pkgname-doc $pkgname-debug"
+source="https://github.com/JuliaLang/julia/releases/download/v$pkgver/$pkgname-$pkgver.tar.gz
+ libuv-$_libuv_ver.tar.gz::https://api.github.com/repos/JuliaLang/libuv/tarball/$_libuv_ver
+ Rmath-julia-$_rmathjulia_ver.tar.gz::https://api.github.com/repos/JuliaLang/Rmath-julia/tarball/v$_rmathjulia_ver
+ find-syslibs
+ 0001-hardened.patch
+ 0002-verbose-build.patch
+ 0003-no-clean-docs.patch
+ 0004-remove-sysctl.h.patch
+ 0005-llvm-3.8.patch
+ 0006-fix-contrib-install.patch
+ 0007-fix-stack-addr.patch
+ 0008-ldconfig-compat.patch
+ "
+builddir="$srcdir/$pkgname-$pkgver"
+ldpath="/usr/lib/julia"
+
+prepare() {
+ cd "$builddir"
+
+ cp "$srcdir"/Rmath-julia-$_rmathjulia_ver.tar.gz deps/ || return 1
+
+ # Julia needs patched libuv.
+ cp "$srcdir"/libuv-$_libuv_ver.tar.gz deps/ || return 1
+
+ # Prevent fetching of bundled stuff in the build and package phase.
+ cat <<-EOF > deps/jldownload
+ #!/bin/sh
+ echo "!!! Downloading disabled !!!"
+ echo "Abuild should not fetch any files in the build phase."
+ echo "Add all the needed files to the APKBUILD's source=."
+ exit 1
+ EOF
+
+ cat <<-EOF > Make.user
+ prefix=/usr
+ libexecdir=/usr/lib
+ sysconfdir=/etc
+ DESTDIR="$pkgdir"
+ LIBBLAS=-lopenblas
+ LIBBLASNAME=libopenblas
+ LIBLAPACK=-lopenblas
+ LIBLAPACKNAME=libopenblas
+ USE_SYSTEM_LLVM=1
+ USE_SYSTEM_LIBUNWIND=1
+ USE_SYSTEM_PCRE=1
+ USE_SYSTEM_LIBM=1
+ USE_SYSTEM_OPENLIBM=1
+ USE_SYSTEM_OPENSPECFUN=1
+ USE_SYSTEM_DSFMT=1
+ USE_SYSTEM_BLAS=1
+ USE_SYSTEM_LAPACK=1
+ USE_SYSTEM_FFTW=1
+ USE_SYSTEM_GMP=1
+ USE_SYSTEM_MPFR=1
+ USE_SYSTEM_ARPACK=1
+ USE_SYSTEM_SUITESPARSE=1
+ USE_SYSTEM_LIBUV=0
+ USE_SYSTEM_UTF8PROC=1
+ USE_SYSTEM_LIBGIT2=1
+ USE_SYSTEM_PATCHELF=1
+ USE_LLVM_SHLIB=1
+ VERBOSE=1
+ EOF
+
+ # Pre-SSE2 CPU targets are not supported;
+ # create a generic 32-bit x86 binary.
+ if [ "$CARCH" = x86 ]; then
+ echo "MARCH=i686" >> Make.user
+ echo "JULIA_CPU_TARGET=pentium4" >> Make.user
+ else
+ echo "MARCH=${CARCH/_/-}" >> Make.user
+ fi
+
+ default_prepare
+}
+
+build() {
+ cd "$builddir"
+
+ # If we don't clean here, then make install will recompile everything,
+ # don't know why...
+ make clean && make release
+}
+
+package() {
+ cd "$builddir"
+
+ make install || return 1
+ install -D "$srcdir"/find-syslibs "$pkgdir"/usr/share/julia/find-syslibs
+}
+
+debug() {
+ pkgdesc="$pkgdesc (debug build)"
+
+ install -d "$subpkgdir"/usr/bin
+ mv "$pkgdir"/usr/bin/*-debug "$subpkgdir"/usr/bin/ || return 1
+
+ install -d "$subpkgdir"/usr/lib/julia
+ mv "$pkgdir"/usr/lib/julia/*-debug.* "$subpkgdir"/usr/lib/julia/
+}
+
+md5sums="dc2ff07bb6fd5eeae12c7ec41ec38f22 julia-0.4.5.tar.gz
+b94c9164471d0492dce170961d7c65a2 libuv-efb40768b7c7bd9f173a7868f74b92b1c5a61a0e.tar.gz
+4e3f9e41e7b8cd3070225d1f5e8b21d9 Rmath-julia-0.1.tar.gz
+d529d078678c242b6ac61d65ad61e530 find-syslibs
+8a2ced6314457d47739deef08adb9ff4 0001-hardened.patch
+2539b4abe49d669ae01a4239fb14243f 0002-verbose-build.patch
+0fc44cc7b6a0167ee1e36310364e7049 0003-no-clean-docs.patch
+e5a50262e22a97d7f8108e6e8fc160d1 0004-remove-sysctl.h.patch
+aa0a5c577ccd3d0c652d15b6a064594e 0005-llvm-3.8.patch
+ab0e26d5ac79161d7e65481700cf9114 0006-fix-contrib-install.patch
+16f15ab47f1aff789966c90887916e9e 0007-fix-stack-addr.patch
+3cf5ef31fd586ffac9a29cc3eca00e8a 0008-ldconfig-compat.patch"
+sha256sums="441ff61b71bb0ad1d5279156105b20e9d2b59fccf2ad0c390636923d9c37ec25 julia-0.4.5.tar.gz
+872a96b616fc3517526812df11ed188500abff8dd73b75ae92377916b6efd3fe libuv-efb40768b7c7bd9f173a7868f74b92b1c5a61a0e.tar.gz
+64c1ac8ee12859cf295d23bc1c840ea52e5abbcf4384ffacdaec0fc2246c252a Rmath-julia-0.1.tar.gz
+b4bdd0dc307a76e51b40aa33de8856e9bd6e3d8be11b4c509d73f05d78a0cb79 find-syslibs
+587f87971d0e8fa65cf06653c56f62db283be102f8ed57712cad30d18dfb6c22 0001-hardened.patch
+892b3e0b3a94ad53a06574851dd397da4293c371ad980a03daa816a0585cb0ee 0002-verbose-build.patch
+8dc6aabe30ff02acfdae7aea3c6ef8fcf397481dfe2a3e2ad7c65bd8d1bbb09a 0003-no-clean-docs.patch
+70b9f2957d818ccd93f64a61f87eb5c7476258905d235c8e34745ec9c9e9a649 0004-remove-sysctl.h.patch
+2fa4fd8aef4a8805919cf66442f8b76f6a47886c1f6d31e7be525aad33c358c0 0005-llvm-3.8.patch
+56ce9bbbc2a623ee06646fe41a9c9170cc2637b6794ea8a3e41e1adb68e720a5 0006-fix-contrib-install.patch
+5688090d48c93ae36b068a454d0c9b11e40ba5722b4e62980bfc4ee5de8caaf7 0007-fix-stack-addr.patch
+7895279378e08f394501af568b08fb59244c272735045b077de1d7ff67810787 0008-ldconfig-compat.patch"
+sha512sums="66af1b1f25350f92c229725391993ccf2ad516c22348d3523a76c110509792c083d7ad0c32058c236900afb0b854e939d151501c2611dfd8afe4b266861287cc julia-0.4.5.tar.gz
+21bdcffd0c13c864bac6a1f42c5f229a57fd91e124ab4c43bd14ab29e5334bfcbdcdda2e16b3b08e8f79df5ab133bac5cdaeb2a88627fe152dd91d5e18154e61 libuv-efb40768b7c7bd9f173a7868f74b92b1c5a61a0e.tar.gz
+1dd94eca05bc06c3f33e8be5087d3b1742d01c8b38588e0fa79b8f6b9998760bca21bee1b65873825c4dde2d994a8271166bc21f670a34810fa9db598473a887 Rmath-julia-0.1.tar.gz
+0283c7b0ff7dd99ae79f6ddac63513ce7d58ba31de506a3fee07af9b8882ddc275d0f9cb002381ba1e304bcacf252612fa16b21b85667422477e6b945b725899 find-syslibs
+15968d95b09ed0f2315e08a5fd14e798db7fd1faebd1327ceaf7886248b61d2e61f64e726d98cd70cbc2349c66fc3a707298a2481c6abf98c699826f3f2f4ccb 0001-hardened.patch
+266e0170c133e5be98f843adca948a4d13f3549a3a01b0c6220d495149ef26a9a837e9d7b0d9066eb7f8370a46ee5de042882a7dd585ddb245a1573882e32365 0002-verbose-build.patch
+2eae3ea85a56b5deaef464d36f543d60afb2e6a65ee4b57b599dd508046a02179ca53c5efd91351c8d0cbd5a3585b236da9b316e82416f9bff249b8b74ded305 0003-no-clean-docs.patch
+6c111ccdd12af5b00fdf0b7cc8fba11980fceccf7c246b40e791cd1be8e39cd75b8c290c65ebd9b4add60fc242261e17e94807736fce6a96733e9bf18182b489 0004-remove-sysctl.h.patch
+8546ff6c762b2a3a9f15a898e8b95b6cb0dd50a014de8349ee8d94d9663ca5031f775ec4f00e136ae2aef4778a8bdb1074930d10e2e1c40a8ec8db55fb7dc4d8 0005-llvm-3.8.patch
+8a3f14a908e3b16aef0afbbd437322ca2fdbba0bf2738f93704f19b06ef4dfee64f3e3932e4b2e18776333f25962d1b1c62c1638d4ca020570e30ddef1fb56f8 0006-fix-contrib-install.patch
+523a403095160af5f126e8883f356e52b1b0a3056f1f4921c8204fb699a729e2f5537437d00c0edb1af05d1f3c1489edc44149a629edca47bb91361243fb4db3 0007-fix-stack-addr.patch
+ab53aeaf3464236896295eab25092e4881def9e12483728be4d8323e5d3213c8b0fc064e62d21fd049df9acd2976eee032b254f10d2092ac0a4be4ecf9c319af 0008-ldconfig-compat.patch"
diff --git a/testing/julia/find-syslibs b/testing/julia/find-syslibs
new file mode 100755
index 0000000000..ef25263607
--- /dev/null
+++ b/testing/julia/find-syslibs
@@ -0,0 +1,19 @@
+#!/bin/sh
+#
+# This script adapts output of scanelf to the format produced by
+# GNU's "ldconfig -p".
+#
+# Note: Julia uses "ldconfig -p" as a workaround to find system
+# libraries, see https://github.com/JuliaLang/julia/issues/6742.
+#
+set -e
+
+echo 'libs found on ldpath'
+scanelf --ldpath -E ET_DYN -BF '%F %M %S %f' | while read path class soname _; do
+ case "$class" in
+ ELFCLASS32) arch='i686';;
+ ELFCLASS64) arch='x86-64';;
+ *) arch="$(uname -m | sed 's/_/-/g')";;
+ esac
+ printf '\t%s (libc,%s) => %s\n' "$soname" "$arch" "$path"
+done