From 8bfda3df43cd9113b0a45b8be971d5a0bbeeb69a Mon Sep 17 00:00:00 2001 From: Brice Waegeneire Date: Thu, 21 May 2020 15:55:13 +0200 Subject: gnu: dconf: Enable tests. * gnu/packages/gnome.scm (dconf)[arguments]: Enable tests. --- gnu/packages/gnome.scm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 213eacecd7..d7ec21a8ae 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3518,9 +3518,7 @@ and RDP protocols.") ("pkg-config" ,pkg-config) ("vala" ,vala))) (arguments - `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id - ; or /etc/machine-id. - #:glib-or-gtk? #t + `(#:glib-or-gtk? #t #:configure-flags '("-Denable-gtk-doc=true"))) (home-page "https://developer.gnome.org/dconf/") (synopsis "Low-level GNOME configuration system") -- cgit v1.2.3 From 4f94a4ea0f29c3229197417bcdcb52134de69091 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 9 Jun 2020 20:19:48 +0200 Subject: gnu: ghc-quickcheck: Remove obsolete input. * gnu/packages/haskell-check.scm (ghc-quickcheck)[inputs]: Remove GHC-TF-RANDOM. --- gnu/packages/haskell-check.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm index bb7f57b49d..ac1cd33d19 100644 --- a/gnu/packages/haskell-check.scm +++ b/gnu/packages/haskell-check.scm @@ -505,8 +505,7 @@ use HUnit assertions as QuickCheck properties.") `(#:tests? #f)) ; FIXME: currently missing libraries used for tests. (inputs `(("ghc-random" ,ghc-random) - ("ghc-splitmix" ,ghc-splitmix-bootstrap) - ("ghc-tf-random" ,ghc-tf-random))) + ("ghc-splitmix" ,ghc-splitmix-bootstrap))) (home-page "https://github.com/nick8325/quickcheck") (synopsis "Automatic testing of Haskell programs") (description -- cgit v1.2.3 From fe9f2d150019b9fc17f08f5a002d7ca932fc3eb0 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 9 Jun 2020 20:20:14 +0200 Subject: gnu: ghc-quickcheck: Enable tests. * gnu/packages/haskell-check.scm (ghc-quickcheck)[arguments]: Remove. --- gnu/packages/haskell-check.scm | 2 -- 1 file changed, 2 deletions(-) diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm index ac1cd33d19..ea541859fd 100644 --- a/gnu/packages/haskell-check.scm +++ b/gnu/packages/haskell-check.scm @@ -501,8 +501,6 @@ use HUnit assertions as QuickCheck properties.") (base32 "0426j43af8v3qmdjjqxivazsvr3a2brac8yw09vpgpjkb2m0nmkv")))) (build-system haskell-build-system) - (arguments - `(#:tests? #f)) ; FIXME: currently missing libraries used for tests. (inputs `(("ghc-random" ,ghc-random) ("ghc-splitmix" ,ghc-splitmix-bootstrap))) -- cgit v1.2.3 From ef2a3871fdebb5aa2b34fefbeec8d7be92e6097e Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 27 Jun 2020 10:32:48 +0200 Subject: gnu: GDB: Inline cross-compilation fix. * gnu/packages/gdb.scm (gdb-9.1)[arguments]: Remove conditionals on %CURRENT-TARGET-SYSTEM. --- gnu/packages/gdb.scm | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm index 38e45b14e5..338b73aa58 100644 --- a/gnu/packages/gdb.scm +++ b/gnu/packages/gdb.scm @@ -70,20 +70,14 @@ #t)) (add-after 'install 'remove-libs-already-in-binutils - (lambda* (#:key inputs outputs - ;; TODO: Inline the native-inputs addition and - ;; below usage in the next rebuild cycle. - ,@(if (%current-target-system) - '(native-inputs) - '()) + (lambda* (#:key native-inputs inputs outputs #:allow-other-keys) ;; Like Binutils, GDB installs libbfd, libopcodes, etc. ;; However, this leads to collisions when both are ;; installed, and really is none of its business, ;; conceptually. So remove them. - (let* ((binutils ,@(if (%current-target-system) - '((assoc-ref native-inputs "binutils")) - '((assoc-ref inputs "binutils")))) + (let* ((binutils (or (assoc-ref inputs "binutils") + (assoc-ref native-inputs "binutils"))) (out (assoc-ref outputs "out")) (files1 (with-directory-excursion binutils (append (find-files "lib") -- cgit v1.2.3 From a62df7cd72423e9ea7cf030a4db034c548eeb59e Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 27 Jun 2020 10:37:19 +0200 Subject: gnu: GDB: Remove version 9.1. * gnu/packages/gdb.scm (gdb-9.1): Rename to ... (gdb): ... this. Update to 9.2. [source](patches): Add 'gdb-hurd.patch'. (gdb-8.2): Inherit from GDB instead of GDB-9.1. (gdb-9.2): Remove variable. (gdb-minimal): Inherit from GDB instead of GDB-9.2. --- gnu/packages/gdb.scm | 29 ++++++----------------------- 1 file changed, 6 insertions(+), 23 deletions(-) diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm index 338b73aa58..2615f1f158 100644 --- a/gnu/packages/gdb.scm +++ b/gnu/packages/gdb.scm @@ -40,17 +40,18 @@ #:use-module (guix build-system gnu) #:use-module (srfi srfi-1)) -(define-public gdb-9.1 +(define-public gdb (package (name "gdb") - (version "9.1") + (version "9.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gdb/gdb-" version ".tar.xz")) + (patches (search-patches "gdb-hurd.patch")) (sha256 (base32 - "0dqp1p7w836iwijg1zb4a784n0j4pyjiw5v6h8fg5lpx6b40x7k9")))) + "0mf5fn8v937qwnal4ykn3ji1y2sxk0fa1yfqi679hxmpg6pdf31n")))) (build-system gnu-build-system) (arguments @@ -125,7 +126,7 @@ written in C, C++, Ada, Objective-C, Pascal and more.") ;; . (define-public gdb-8.2 (package - (inherit gdb-9.1) + (inherit gdb) (version "8.2.1") (source (origin (method url-fetch) @@ -135,27 +136,9 @@ written in C, C++, Ada, Objective-C, Pascal and more.") (base32 "00i27xqawjv282a07i73lp1l02n0a3ywzhykma75qg500wll6sha")))))) -(define-public gdb - ;; This is the fixed version that packages depend on. Update it rarely - ;; enough to avoid massive rebuilds. - gdb-9.1) - -(define-public gdb-9.2 - (package - (inherit gdb) - (version "9.2") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/gdb/gdb-" - version ".tar.xz")) - (patches (search-patches "gdb-hurd.patch")) - (sha256 - (base32 - "0mf5fn8v937qwnal4ykn3ji1y2sxk0fa1yfqi679hxmpg6pdf31n")))))) - (define-public gdb-minimal (package/inherit - gdb-9.2 + gdb (name "gdb-minimal") (inputs (fold alist-delete (package-inputs gdb) '("guile" "libxml2" "ncurses" "python-wrapper" -- cgit v1.2.3 From ac069ed9be60defd1690e0e5756e74d2271c39cb Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 25 May 2020 10:06:11 +0200 Subject: gnu: libevdev: Remove obsolete workaround. * gnu/packages/xorg.scm (libevdev)[arguments]: Remove #:phases. --- gnu/packages/xorg.scm | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 9b663aa158..077735c686 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -2477,18 +2477,7 @@ XC-APPGROUP, XTEST.") "04a2klvii0in9ln8r85mk2cm73jq8ry2m3yzmf2z8xyjxzjcmlr0")))) (build-system gnu-build-system) (arguments - `(#:configure-flags '("--disable-static") - #:phases (modify-phases %standard-phases - (add-before 'configure 'pedantry - (lambda _ - ;; XXX: libevdev includes kernel headers, which causes this - ;; compile test to fail with: - ;; ...-headers-4.14.67/include/asm-generic/posix_types.h:88:14: - ;;error: ISO C90 does not support ‘long long’ [-Werror=long-long] - (substitute* "test/Makefile.in" - (("-pedantic -Werror -std=c89") - "-pedantic -Werror -std=c99")) - #t))))) + `(#:configure-flags '("--disable-static"))) (native-inputs `(("python" ,python))) (home-page "https://www.freedesktop.org/wiki/Software/libevdev/") (synopsis "Wrapper library for evdev devices") -- cgit v1.2.3 From b611597af8641b388dc9f8935b85895a71e9fb52 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 27 Jun 2020 12:16:17 +0200 Subject: gnu: valgrind: Don't depend on GDB. ...but add a special 'valgrind/interactive' variant for end users. * gnu/packages/valgrind.scm (valgrind)[inputs]: Remove. [properties]: New field. (valgrind/interactive): New public variable. --- gnu/packages/valgrind.scm | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/gnu/packages/valgrind.scm b/gnu/packages/valgrind.scm index 75e852915e..c0ea89141e 100644 --- a/gnu/packages/valgrind.scm +++ b/gnu/packages/valgrind.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016, 2020 Efraim Flashner ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2020 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -70,9 +71,6 @@ (mkdir-p dest) (rename-file orig dest) #t)))))) - (inputs - ;; GDB is needed to provide a sane default for `--db-command'. - `(("gdb" ,gdb))) (native-inputs `(("perl" ,perl))) (home-page "https://www.valgrind.org/") @@ -82,4 +80,15 @@ tools. There are Valgrind tools that can automatically detect many memory management and threading bugs, and profile your programs in detail. You can also use Valgrind to build new tools.") - (license gpl2+))) + (license gpl2+) + + ;; Hide this variant so end users get the "interactive" Valgrind below. + (properties '((hidden? . #t))))) + +(define-public valgrind/interactive + (package/inherit + valgrind + (inputs + ;; GDB is needed to provide a sane default for `--db-command'. + `(("gdb" ,gdb))) + (properties '()))) -- cgit v1.2.3 From a3997b83ff24007d0d3d14ff61e7e91133bd593b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 27 Jun 2020 12:33:03 +0200 Subject: gnu: Rust: Use 'gdb-minimal' for tests. * gnu/packages/rust.scm (rust-1.19.0)[native-inputs]: Change from GDB to GDB-MINIMAL. --- gnu/packages/rust.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index d139657f39..b084a6df9e 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -420,7 +420,7 @@ test = { path = \"../libtest\" } `(("bison" ,bison) ; For the tests ("cmake" ,cmake-minimal) ("flex" ,flex) ; For the tests - ("gdb" ,gdb) ; For the tests + ("gdb" ,gdb-minimal) ; For the tests ("procps" ,procps) ; For the tests ("python-2" ,python-2) ("rustc-bootstrap" ,mrustc) -- cgit v1.2.3 From c007d868686fc2f9bf02a34150d4f0ac72b1f8d2 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 27 Jun 2020 12:34:48 +0200 Subject: gnu: gdb@8.2: Inherit from 'gdb-minimal'. * gnu/packages/gdb.scm (gdb-minimal): Move definition up. (gdb-8.2): Rename to ... (gdb-minimal-8.2): ... this. Inherit from GDB-MINIMAL. * gnu/packages/rust.scm (rust-1.27)[native-inputs]: Adjust for the rename. --- gnu/packages/gdb.scm | 18 +++++++++--------- gnu/packages/rust.scm | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm index 56d37960f7..f2f272cc90 100644 --- a/gnu/packages/gdb.scm +++ b/gnu/packages/gdb.scm @@ -122,11 +122,18 @@ the program is running to try to fix bugs. It can be used to debug programs written in C, C++, Ada, Objective-C, Pascal and more.") (license gpl3+))) +(define-public gdb-minimal + (package/inherit + gdb + (name "gdb-minimal") + (inputs (fold alist-delete (package-inputs gdb) + '("libxml2" "ncurses" "python-wrapper" "source-highlight"))))) + ;; This version of GDB is required by some of the Rust compilers, see ;; . -(define-public gdb-8.2 +(define-public gdb-minimal-8.2 (package - (inherit gdb) + (inherit gdb-minimal) (version "8.2.1") (source (origin (method url-fetch) @@ -135,10 +142,3 @@ written in C, C++, Ada, Objective-C, Pascal and more.") (sha256 (base32 "00i27xqawjv282a07i73lp1l02n0a3ywzhykma75qg500wll6sha")))))) - -(define-public gdb-minimal - (package/inherit - gdb - (name "gdb-minimal") - (inputs (fold alist-delete (package-inputs gdb) - '("libxml2" "ncurses" "python-wrapper" "source-highlight"))))) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index b084a6df9e..fe43e72421 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -828,7 +828,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\" (native-inputs ;; FIXME: Rust 1.27 and some later versions require GDB 8.2 specifically. ;; See . - (alist-replace "gdb" (list gdb-8.2) + (alist-replace "gdb" (list gdb-minimal-8.2) (package-native-inputs base-rust))) (arguments (substitute-keyword-arguments (package-arguments base-rust) -- cgit v1.2.3 From 25ceae92ea6cddd2306fab9847ba091c17a0ae69 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 27 Jun 2020 12:51:34 +0200 Subject: gnu: valgrind: Update to 3.16.1. * gnu/packages/valgrind.scm (valgrind): Update to 3.16.1. --- gnu/packages/valgrind.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/valgrind.scm b/gnu/packages/valgrind.scm index c0ea89141e..4036bd461b 100644 --- a/gnu/packages/valgrind.scm +++ b/gnu/packages/valgrind.scm @@ -33,7 +33,9 @@ (define-public valgrind (package (name "valgrind") - (version "3.15.0") + ;; Note: check "guix refresh -l -e '(@ (gnu packages valgrind) valgrind)'" + ;; when updating this package to find which branch it should go to. + (version "3.16.1") (source (origin (method url-fetch) (uri (list (string-append "https://sourceware.org/pub/valgrind" @@ -42,7 +44,7 @@ "/valgrind-" version ".tar.bz2"))) (sha256 (base32 - "1ccawxrni8brcvwhygy12iprkvz409hbr9xkk1bd03gnm2fplz21")) + "1jik19rcd34ip8a5c9nv5wfj8k8maqb8cyclr4xhznq2gcpkl7y9")) (patches (search-patches "valgrind-enable-arm.patch")))) (build-system gnu-build-system) (outputs '("doc" ;16 MB -- cgit v1.2.3 From 6c9dca5a9bc3aeab260bc125e8ddc08a5107ec4e Mon Sep 17 00:00:00 2001 From: Simon South Date: Mon, 1 Jun 2020 13:15:31 -0400 Subject: gnu: jamvm-1-bootstrap: Add aarch64-linux support. * gnu/packages/java.scm (jamvm-1-bootstrap)[source]: Add patch; update name of existing patch. [arguments]<#:phases>: Invoke autoreconf during bootstrap phase when building for aarch64. [native-inputs]: Include packages required for autoreconf when building for aarch64. * gnu/packages/patches/jamvm-1.5.1-aarch64-support.patch: New file. * gnu/packages/patches/jamvm-arm.patch: Rename to "jamvm-1.5.1-armv7-support.patch". * gnu/local.mk (dist_patch_DATA): Add file; update filename. Signed-off-by: Efraim Flashner --- gnu/local.mk | 3 +- gnu/packages/java.scm | 22 +- .../patches/jamvm-1.5.1-aarch64-support.patch | 572 +++++++++ .../patches/jamvm-1.5.1-armv7-support.patch | 1313 ++++++++++++++++++++ gnu/packages/patches/jamvm-arm.patch | 1313 -------------------- 5 files changed, 1907 insertions(+), 1316 deletions(-) create mode 100644 gnu/packages/patches/jamvm-1.5.1-aarch64-support.patch create mode 100644 gnu/packages/patches/jamvm-1.5.1-armv7-support.patch delete mode 100644 gnu/packages/patches/jamvm-arm.patch diff --git a/gnu/local.mk b/gnu/local.mk index 396629cc93..df098708e9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1114,8 +1114,9 @@ dist_patch_DATA = \ %D%/packages/patches/irrlicht-use-system-libs.patch \ %D%/packages/patches/isl-0.11.1-aarch64-support.patch \ %D%/packages/patches/jacal-fix-texinfo.patch \ + %D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \ + %D%/packages/patches/jamvm-1.5.1-armv7-support.patch \ %D%/packages/patches/jamvm-2.0.0-disable-branch-patching.patch \ - %D%/packages/patches/jamvm-arm.patch \ %D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch \ %D%/packages/patches/java-commons-collections-fix-java8.patch \ %D%/packages/patches/java-jeromq-fix-tests.patch \ diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 48f9a52a56..27a6ebc437 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -288,7 +288,8 @@ language.") (uri (string-append "mirror://sourceforge/jamvm/jamvm/" "JamVM%20" version "/jamvm-" version ".tar.gz")) - (patches (search-patches "jamvm-arm.patch")) + (patches (search-patches "jamvm-1.5.1-aarch64-support.patch" + "jamvm-1.5.1-armv7-support.patch")) (sha256 (base32 "06lhi03l3b0h48pc7x58bk9my2nrcf1flpmglvys3wyad6yraf36")) @@ -304,13 +305,30 @@ language.") (assoc-ref %build-inputs "classpath")) "--disable-int-caching" "--enable-runtime-reloc-checks" - "--enable-ffi"))) + "--enable-ffi") + #:phases + ,(if (string-prefix? "aarch64" (or (%current-system) + (%current-target-system))) + ;; Makefiles and the configure script need to be regenerated to + ;; incorporate support for AArch64. + '(modify-phases %standard-phases + (replace 'bootstrap + (lambda _ (invoke "autoreconf" "-vif")))) + '%standard-phases))) (inputs `(("classpath" ,classpath-bootstrap) ("jikes" ,jikes) ("libffi" ,libffi) ("zip" ,zip) ("zlib" ,zlib))) + (native-inputs + (if (string-prefix? "aarch64" (or (%current-system) + (%current-target-system))) + ;; Additional packages needed for autoreconf. + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool)) + '())) (home-page "http://jamvm.sourceforge.net/") (synopsis "Small Java Virtual Machine") (description "JamVM is a Java Virtual Machine conforming to the JVM diff --git a/gnu/packages/patches/jamvm-1.5.1-aarch64-support.patch b/gnu/packages/patches/jamvm-1.5.1-aarch64-support.patch new file mode 100644 index 0000000000..8867d4f191 --- /dev/null +++ b/gnu/packages/patches/jamvm-1.5.1-aarch64-support.patch @@ -0,0 +1,572 @@ +From 9c83c3d3f443eb92f87dc87c7dcfe95577b95621 Mon Sep 17 00:00:00 2001 +From: Simon South +Date: Thu, 28 May 2020 14:29:55 -0400 +Subject: [PATCH] Add support for aarch64 on GNU/Linux + +--- + configure.ac | 10 +- + src/arch/Makefile.am | 2 +- + src/arch/aarch64.h | 110 ++++++++++++++++ + src/os/linux/Makefile.am | 2 +- + src/os/linux/aarch64/Makefile.am | 28 ++++ + src/os/linux/aarch64/callNative.S | 212 ++++++++++++++++++++++++++++++ + src/os/linux/aarch64/dll_md.c | 59 +++++++++ + src/os/linux/aarch64/init.c | 51 +++++++ + 8 files changed, 469 insertions(+), 5 deletions(-) + create mode 100644 src/arch/aarch64.h + create mode 100644 src/os/linux/aarch64/Makefile.am + create mode 100644 src/os/linux/aarch64/callNative.S + create mode 100644 src/os/linux/aarch64/dll_md.c + create mode 100644 src/os/linux/aarch64/init.c + +diff --git a/configure.ac b/configure.ac +index ccd530f..707f281 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -43,6 +43,7 @@ amd64-*-freebsd*) host_os=bsd libdl_needed=no ;; + arm*-*-linux*) host_cpu=arm host_os=linux ;; + arm*-*-openbsd*) host_cpu=arm host_os=bsd libdl_needed=no ;; + arm*-*-freebsd*) host_cpu=arm host_os=bsd libdl_needed=no ;; ++aarch64*-*-linux*) host_cpu=aarch64 host_os=linux ;; + powerpc*-*-linux*) host_cpu=powerpc host_os=linux ;; + powerpc*-*-openbsd*) host_cpu=powerpc host_os=bsd libdl_needed=no ;; + powerpc*-*-freebsd*) host_cpu=powerpc host_os=bsd libdl_needed=no ;; +@@ -149,9 +150,11 @@ AC_ARG_ENABLE(runtime-reloc-checks, + + AC_ARG_ENABLE(int-inlining, + [AS_HELP_STRING(--enable-int-inlining,enable inline threaded version of the interpreter +- (by default enabled on x86_64, i386 and powerpc, disabled otherwise))],, +- [if test "$host_cpu" = x86_64 -o "$host_cpu" = i386 -o "$host_cpu" = powerpc && \ +- test "$cross_compiling" = no -o "$enable_runtime_reloc_checks" != no; then ++ (by default enabled on x86_64, i386, powerpc and aarch64, ++ disabled otherwise))],, ++ [if test "$host_cpu" = x86_64 -o "$host_cpu" = i386 -o "$host_cpu" = powerpc -o \ ++ "$host_cpu" = aarch64 && test "$cross_compiling" = no -o \ ++ "$enable_runtime_reloc_checks" != no; then + enable_int_inlining=yes + else + enable_int_inlining=no +@@ -298,6 +301,7 @@ AC_CONFIG_FILES( + src/os/linux/x86_64/Makefile \ + src/os/linux/parisc/Makefile \ + src/os/linux/mips/Makefile \ ++ src/os/linux/aarch64/Makefile \ + src/os/darwin/i386/Makefile \ + src/os/darwin/arm/Makefile \ + src/os/darwin/powerpc/Makefile \ +diff --git a/src/arch/Makefile.am b/src/arch/Makefile.am +index 078c1de..afb26d1 100644 +--- a/src/arch/Makefile.am ++++ b/src/arch/Makefile.am +@@ -19,4 +19,4 @@ + ## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ## + +-EXTRA_DIST = powerpc.h arm.h i386.h x86_64.h parisc.h mips.h ++EXTRA_DIST = powerpc.h arm.h i386.h x86_64.h parisc.h mips.h aarch64.h +diff --git a/src/arch/aarch64.h b/src/arch/aarch64.h +new file mode 100644 +index 0000000..c96aa9f +--- /dev/null ++++ b/src/arch/aarch64.h +@@ -0,0 +1,110 @@ ++/* ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 ++ * Robert Lougher . ++ * Copyright (C) 2020 Simon South . ++ * ++ * This file is part of JamVM. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++#include ++ ++#define OS_ARCH "aarch64" ++ ++#define HANDLER_TABLE_T static const void ++#define DOUBLE_1_BITS 0x3ff0000000000000LL ++ ++#define READ_DBL(v,p,l) v = ((u8)p[0]<<56)|((u8)p[1]<<48)|((u8)p[2]<<40) \ ++ |((u8)p[3]<<32)|((u8)p[4]<<24)|((u8)p[5]<<16) \ ++ |((u8)p[6]<<8)|(u8)p[7]; p+=8 ++ ++/* Needed for i386 -- empty here */ ++#define FPU_HACK ++ ++#define COMPARE_AND_SWAP_64(addr, old_val, new_val) \ ++({ \ ++ int result, read_val; \ ++ __asm__ __volatile__ (" \ ++ 1: ldaxr %2, %1; \ ++ cmp %2, %3; \ ++ b.ne 2f; \ ++ stlxr %w0, %4, %1; \ ++ cmp %w0, wzr; \ ++ b.ne 1b; \ ++ 2: cset %w0, eq;" \ ++ : "=&r" (result), "+Q" (*addr), "=&r" (read_val) \ ++ : "r" (old_val), "r" (new_val) \ ++ : "cc"); \ ++ result; \ ++}) ++ ++#define COMPARE_AND_SWAP(addr, old_val, new_val) \ ++ COMPARE_AND_SWAP_64(addr, old_val, new_val) ++ ++#define LOCKWORD_READ(addr) \ ++({ \ ++ uintptr_t result; \ ++ __asm__ __volatile__ (" \ ++ ldar %0, %1;" \ ++ : "=r" (result) \ ++ : "Q" (*addr) \ ++ : "cc"); \ ++ result; \ ++}) ++ ++#define LOCKWORD_WRITE(addr, value) \ ++({ \ ++ __asm__ __volatile__ (" \ ++ stlr %1, %0;" \ ++ : "=Q" (*addr) \ ++ : "r" (value) \ ++ : "cc"); \ ++}) ++ ++#define LOCKWORD_COMPARE_AND_SWAP(addr, old_val, new_val) \ ++ COMPARE_AND_SWAP_64(addr, old_val, new_val) ++ ++#define FLUSH_CACHE(addr, length) \ ++{ \ ++ uintptr_t start = (uintptr_t) (addr); \ ++ uintptr_t end = start + length; \ ++ uintptr_t i; \ ++ \ ++ for(i = start & aarch64_data_cache_line_mask; \ ++ i < end; \ ++ i += aarch64_data_cache_line_len) \ ++ __asm__ ("dc cvau, %0" :: "r" (i)); \ ++ \ ++ __asm__ ("dsb ish"); \ ++ \ ++ for(i = start & aarch64_instruction_cache_line_mask; \ ++ i < end; \ ++ i += aarch64_instruction_cache_line_len) \ ++ __asm__ ("ic ivau, %0" :: "r" (i)); \ ++ \ ++ __asm__ ("dsb ish; isb"); \ ++} ++ ++#define MBARRIER() __asm__ ("dmb ish" ::: "memory") ++#define UNLOCK_MBARRIER() __asm__ ("dmb ish" ::: "memory") ++#define JMM_LOCK_MBARRIER() __asm__ ("dmb ish" ::: "memory") ++#define JMM_UNLOCK_MBARRIER() JMM_LOCK_MBARRIER() ++ ++/* Defined in src/os/linux/aarch64/init.c */ ++extern unsigned char aarch64_data_cache_line_len; ++extern uintptr_t aarch64_data_cache_line_mask; ++extern unsigned char aarch64_instruction_cache_line_len; ++extern uintptr_t aarch64_instruction_cache_line_mask; +diff --git a/src/os/linux/Makefile.am b/src/os/linux/Makefile.am +index aa29be1..d582b97 100644 +--- a/src/os/linux/Makefile.am ++++ b/src/os/linux/Makefile.am +@@ -20,7 +20,7 @@ + ## + + SUBDIRS = @arch@ +-DIST_SUBDIRS = powerpc arm i386 x86_64 parisc mips ++DIST_SUBDIRS = powerpc arm i386 x86_64 parisc mips aarch64 + + noinst_LTLIBRARIES = libos.la + libos_la_SOURCES = os.c +diff --git a/src/os/linux/aarch64/Makefile.am b/src/os/linux/aarch64/Makefile.am +new file mode 100644 +index 0000000..1024c3a +--- /dev/null ++++ b/src/os/linux/aarch64/Makefile.am +@@ -0,0 +1,28 @@ ++## ++## Copyright (C) 2003, 2004, 2005, 2006, 2007, 2010, 2011, 2012 ++## Robert Lougher . ++## ++## File added by Simon South . ++## ++## This file is part of JamVM. ++## ++## This program is free software; you can redistribute it and/or ++## modify it under the terms of the GNU General Public License ++## as published by the Free Software Foundation; either version 2, ++## or (at your option) any later version. ++## ++## This program is distributed in the hope that it will be useful, ++## but WITHOUT ANY WARRANTY; without even the implied warranty of ++## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++## GNU General Public License for more details. ++## ++## You should have received a copy of the GNU General Public License ++## along with this program; if not, write to the Free Software ++## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++## ++ ++noinst_LTLIBRARIES = libnative.la ++libnative_la_SOURCES = init.c dll_md.c callNative.S ++ ++AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src ++AM_CCASFLAGS = -I$(top_builddir)/src +diff --git a/src/os/linux/aarch64/callNative.S b/src/os/linux/aarch64/callNative.S +new file mode 100644 +index 0000000..e067c4f +--- /dev/null ++++ b/src/os/linux/aarch64/callNative.S +@@ -0,0 +1,212 @@ ++/* ++ * Copyright (C) 2008, 2009, 2011, 2012 Robert Lougher . ++ * Copyright (C) 2020 Simon South . ++ * ++ * This file is part of JamVM. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++#include "config.h" ++ ++#ifndef USE_FFI ++ .text ++ .arch armv8-a ++ .align 2 ++ .global callJNIMethod ++ .type callJNIMethod,function ++ ++/* ++ * Arguments passed in: ++ * ++ * x0 JNIEnv ++ * x1 class or NULL ++ * x2 sig ++ * w3 extra arg ++ * x4 ostack ++ * x5 function pntr ++ * w6 args count ++ */ ++ ++/* Register usage: ++ * ++ * x20 ostack ++ * x19 sig pntr ++ * x16 function pntr ++ * x15 ostack pntr ++ * x14 args pntr ++ * x13 float/double handler ++ * x12 int/long handler ++ * w11 fp regs remaining ++ * w10 int regs remaining ++ * x9 scratch ++ * x2-x7 outgoing int args ++ * x1 outgoing class or this pntr ++ * x0 outgoing JNIEnv (as passed in) ++ * ++ * d0 - d7 outgoing float args ++ */ ++ ++callJNIMethod: ++ stp x29, x30, [sp, #-32]! ++ mov x29, sp ++ stp x19, x20, [x29, #16] ++ ++ sub sp, sp, w3 /* allocate room for stacked args */ ++ mov x14, sp ++ ++ mov x20, x4 /* preserve ostack */ ++ add x19, x2, #1 /* init sig pntr -- skipping '(' */ ++ ++ mov x16, x5 /* save function pntr */ ++ mov x15, x20 /* init ostack pntr */ ++ ++ adr x13, fp_reg_handlers-8 ++ adr x12, int_reg_handlers-8 ++ ++ mov w11, #8 /* fp regs remaining */ ++ mov w10, #6 /* int regs remaining */ ++ ++ cbnz x1, scan_sig /* is method non-static? */ ++ ldr x1, [x15], #8 /* yes, load x1 with "this" */ ++ ++scan_sig: ++ ldrb w9, [x19], #1 /* get next sig char */ ++ ++ cmp w9, #41 /* ')' */ ++ b.eq done ++ ++ cmp w9, #74 /* 'J' */ ++ b.eq long ++ ++ cmp w9, #70 /* 'F' */ ++ b.eq float ++ ++ cmp w9, #68 /* 'D' */ ++ b.eq double ++ ++skip_brackets: ++ cmp w9, #91 /* '[' */ ++ b.ne 1f ++ ldrb w9, [x19], #1 ++ b skip_brackets ++1: ++ cmp w9, #76 /* 'L' */ ++ b.ne int ++ ++skip_ref: ++ ldrb w9, [x19], #1 ++ cmp w9, #59 /* ';' */ ++ b.ne skip_ref ++ ++int: ++ ldr x9, [x15], #8 ++ cbz w10, stack_push ++ ++load_int_reg: ++ sub w10, w10, #1 ++ add x12, x12, #8 ++ br x12 ++ ++int_reg_handlers: ++ mov x2, x9 ++ b scan_sig ++ mov x3, x9 ++ b scan_sig ++ mov x4, x9 ++ b scan_sig ++ mov x5, x9 ++ b scan_sig ++ mov x6, x9 ++ b scan_sig ++ mov x7, x9 ++ b scan_sig ++ ++long: ++ ldr x9, [x15], #16 ++ cbz w10, stack_push ++ b load_int_reg ++ ++float: ++ ldr w9, [x15], #8 ++ cbz w11, stack_push ++ b load_fp_reg ++ ++double: ++ ldr x9, [x15], #16 ++ cbz w11, stack_push ++ ++load_fp_reg: ++ sub w11, w11, #1 ++ add x13, x13, #8 ++ br x13 ++ ++fp_reg_handlers: ++ fmov d0, x9 ++ b scan_sig ++ fmov d1, x9 ++ b scan_sig ++ fmov d2, x9 ++ b scan_sig ++ fmov d3, x9 ++ b scan_sig ++ fmov d4, x9 ++ b scan_sig ++ fmov d5, x9 ++ b scan_sig ++ fmov d6, x9 ++ b scan_sig ++ fmov d7, x9 ++ b scan_sig ++ ++stack_push: ++ str x9, [x14], #8 ++ b scan_sig ++ ++done: ++ /* Call the function */ ++ blr x16 ++ ++ mov sp, x29 /* Pop argument area */ ++ ++ ldrb w9, [x19] /* Return type */ ++ ++ cmp w9, #86 /* 'V' */ ++ b.eq return ++ ++ cmp w9, #68 /* 'D' */ ++ b.ne 2f ++ str d0, [x20], #16 ++ b return ++2: ++ cmp w9, #70 /* 'F' */ ++ b.ne 3f ++ str s0, [x20], #8 ++ b return ++3: ++ cmp w9, #74 /* 'J' */ ++ b.ne 4f ++ str x0, [x20], #16 ++ b return ++4: ++ str x0, [x20], #8 ++ ++return: ++ mov x0, x20 /* return ostack */ ++ ++ ldp x19, x20, [x29, #16] ++ ldp x29, x30, [sp], #32 ++ ret ++#endif +diff --git a/src/os/linux/aarch64/dll_md.c b/src/os/linux/aarch64/dll_md.c +new file mode 100644 +index 0000000..189f8a8 +--- /dev/null ++++ b/src/os/linux/aarch64/dll_md.c +@@ -0,0 +1,59 @@ ++/* ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2010, 2011 ++ * Robert Lougher . ++ * Copyright (C) 2020 Simon South . ++ * ++ * This file is part of JamVM. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++#include "jam.h" ++ ++#ifndef USE_FFI ++ ++int nativeExtraArg(MethodBlock *mb) { ++ char *sig = mb->type; ++ int stack_args = 0; ++ int int_args = 6; ++ int fp_args = 8; ++ ++ while(*++sig != ')') ++ switch(*sig) { ++ case 'F': ++ case 'D': ++ if(fp_args == 0) ++ stack_args += 8; ++ else ++ fp_args--; ++ ++ default: ++ if(int_args == 0) ++ stack_args += 8; ++ else ++ int_args--; ++ ++ if(*sig == '[') ++ while(*++sig == '['); ++ if(*sig == 'L') ++ while(*++sig != ';'); ++ break; ++ } ++ ++ /* Ensure the stack remains 16 byte aligned. */ ++ return (stack_args + 15) & ~15; ++} ++ ++#endif +diff --git a/src/os/linux/aarch64/init.c b/src/os/linux/aarch64/init.c +new file mode 100644 +index 0000000..e03b446 +--- /dev/null ++++ b/src/os/linux/aarch64/init.c +@@ -0,0 +1,51 @@ ++/* ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007 ++ * Robert Lougher . ++ * Copyright (C) 2020 Simon South . ++ * ++ * This file is part of JamVM. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++#include "arch/aarch64.h" ++ ++/* Length in bytes of the smallest line in the host system's data cache */ ++unsigned char aarch64_data_cache_line_len; ++ ++/* Mask used to align a virtual address to a line in the data cache */ ++uintptr_t aarch64_data_cache_line_mask; ++ ++/* Length in bytes of the smallest line in the host system's instruction ++ cache */ ++unsigned char aarch64_instruction_cache_line_len; ++ ++/* Mask used to align a virtual address to a line in the instruction cache */ ++uintptr_t aarch64_instruction_cache_line_mask; ++ ++void initialisePlatform() { ++ unsigned int cache_type; ++ ++ /* Extract information from the cache-type register, which describes aspects ++ of the host's cache configuration */ ++ __asm__ ("mrs %0, ctr_el0" : "=r" (cache_type)); ++ ++ aarch64_data_cache_line_len = 4 << ((cache_type >> 16) & 0x0f); ++ aarch64_data_cache_line_mask = ~(aarch64_data_cache_line_len - 1); ++ ++ aarch64_instruction_cache_line_len = 4 << (cache_type & 0x0f); ++ aarch64_instruction_cache_line_mask = ++ ~(aarch64_instruction_cache_line_len - 1); ++} +-- +2.26.2 + diff --git a/gnu/packages/patches/jamvm-1.5.1-armv7-support.patch b/gnu/packages/patches/jamvm-1.5.1-armv7-support.patch new file mode 100644 index 0000000000..9e998e18db --- /dev/null +++ b/gnu/packages/patches/jamvm-1.5.1-armv7-support.patch @@ -0,0 +1,1313 @@ +From 67faeb7d58e0d25a50d36788ed49ed383b92e090 Mon Sep 17 00:00:00 2001 +From: Efraim Flashner +Date: Mon, 26 Mar 2018 11:08:17 +0300 +Subject: [PATCH] add ARMv7 support + +--- + src/arch/arm.h | 75 +++++- + src/os/linux/arm/Makefile.am | 9 +- + src/os/linux/arm/Makefile.in | 166 ++++++++---- + src/os/linux/arm/callNative.S | 12 +- + src/os/linux/arm/callNativeEABI.S | 8 +- + src/os/linux/arm/callNativeEABIHard.S | 315 +++++++++++++++++++++++ + src/os/linux/arm/callNativeEABIHardARM.S | 266 +++++++++++++++++++ + src/os/linux/arm/dll_md.c | 61 ++++- + 8 files changed, 843 insertions(+), 69 deletions(-) + create mode 100644 src/os/linux/arm/callNativeEABIHard.S + create mode 100644 src/os/linux/arm/callNativeEABIHardARM.S + +diff --git a/src/arch/arm.h b/src/arch/arm.h +index ccf68c4..d2c0318 100644 +--- a/src/arch/arm.h ++++ b/src/arch/arm.h +@@ -1,6 +1,6 @@ + /* +- * Copyright (C) 2003, 2004, 2005, 2006, 2007 +- * Robert Lougher . ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, ++ * 2014 Robert Lougher . + * + * This file is part of JamVM. + * +@@ -21,10 +21,16 @@ + + #define OS_ARCH "arm" + +-/* Override default min and max heap sizes. ARM machines are +- usually embedded, and the standard defaults are too large. */ +-#define DEFAULT_MAX_HEAP 16*MB ++/* Override minimum min heap size. The initial heap size is a ratio ++ of the physical memory, but it must be at least the minimum min ++ size. The normal setting is too large for ARM machines as they ++ are usually embedded. */ ++#define MIN_MIN_HEAP 1*MB ++ ++/* Likewise, override the default min/max heap sizes used when the ++ size of physical memory is not available */ + #define DEFAULT_MIN_HEAP 1*MB ++#define DEFAULT_MAX_HEAP 64*MB + + #ifdef DIRECT + #define HANDLER_TABLE_T static const void +@@ -51,6 +57,36 @@ + /* Needed for i386 -- empty here */ + #define FPU_HACK + ++#if defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_7A__) ++#define COMPARE_AND_SWAP_32(addr, old_val, new_val) \ ++({ \ ++ int result, read_val; \ ++ __asm__ __volatile__ (" \ ++ 1: mov %0, #0; \ ++ ldrex %1, [%2]; \ ++ cmp %3, %1; \ ++ bne 2f; \ ++ strex %0, %4, [%2]; \ ++ cmp %0, #1; \ ++ beq 1b; \ ++ mov %0, #1; \ ++ 2:" \ ++ : "=&r" (result), "=&r" (read_val) \ ++ : "r" (addr), "r" (old_val), "r" (new_val) \ ++ : "cc", "memory"); \ ++ result; \ ++}) ++ ++#define COMPARE_AND_SWAP(addr, old_val, new_val) \ ++ COMPARE_AND_SWAP_32(addr, old_val, new_val) ++ ++#define LOCKWORD_READ(addr) *addr ++#define LOCKWORD_WRITE(addr, value) *addr = value ++#define LOCKWORD_COMPARE_AND_SWAP(addr, old_val, new_val) \ ++ COMPARE_AND_SWAP(addr, old_val, new_val) ++ ++#else ++ + #define LOCKWORD_COMPARE_AND_SWAP(addr, old_val, new_val) \ + ({ \ + int result, read_val; \ +@@ -94,7 +130,7 @@ do { \ + : "r" (addr), "r" (new_val) \ + : "cc", "memory"); \ + } while(0) +- ++#endif + + #ifdef __ARM_EABI__ + #define FLUSH_CACHE(addr, length) \ +@@ -124,8 +160,33 @@ do { \ + } + #endif + ++#define GEN_REL_JMP(target_addr, patch_addr, patch_size) \ ++({ \ ++ int patched = FALSE; \ ++ \ ++ if(patch_size >= 4) { \ ++ /* Guard against the pointer difference being \ ++ larger than the signed range */ \ ++ long long offset = (uintptr_t)(target_addr) - \ ++ (uintptr_t)(patch_addr) - 8; \ ++ \ ++ if(offset >= -1<<25 && offset < 1<<25) { \ ++ *(int*)(patch_addr) = offset>>2 & 0x00ffffff \ ++ | 0xea000000; \ ++ patched = TRUE; \ ++ } \ ++ } \ ++ patched; \ ++}) ++ ++#ifdef __ARM_ARCH_7A__ ++#define MBARRIER() __asm__ __volatile__ ("dmb" ::: "memory") ++#define UNLOCK_MBARRIER() __asm__ __volatile__ ("dmb" ::: "memory") ++#define JMM_LOCK_MBARRIER() __asm__ __volatile__ ("dmb" ::: "memory") ++#define JMM_UNLOCK_MBARRIER() __asm__ __volatile__ ("dmb" ::: "memory") ++#else + #define MBARRIER() __asm__ __volatile__ ("" ::: "memory") + #define UNLOCK_MBARRIER() __asm__ __volatile__ ("" ::: "memory") + #define JMM_LOCK_MBARRIER() __asm__ __volatile__ ("" ::: "memory") + #define JMM_UNLOCK_MBARRIER() __asm__ __volatile__ ("" ::: "memory") +- ++#endif +diff --git a/src/os/linux/arm/Makefile.am b/src/os/linux/arm/Makefile.am +index d18ea5a..74e7786 100644 +--- a/src/os/linux/arm/Makefile.am ++++ b/src/os/linux/arm/Makefile.am +@@ -1,6 +1,6 @@ + ## +-## Copyright (C) 2003, 2004, 2005, 2006, 2007 +-## Robert Lougher . ++## Copyright (C) 2003, 2004, 2005, 2006, 2007, 2010, 2011, 2012 ++## Robert Lougher . + ## + ## This file is part of JamVM. + ## +@@ -19,10 +19,11 @@ + ## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ## + +-EXTRA_DIST = callNativeOABI.S callNativeEABI.S ++EXTRA_DIST = callNativeOABI.S callNativeEABI.S callNativeEABIHard.S \ ++ callNativeEABIHardARM.S + + noinst_LTLIBRARIES = libnative.la + libnative_la_SOURCES = init.c dll_md.c callNative.S + +-AM_CPPFLAGS = -I$(top_builddir)/src ++AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src + AM_CCASFLAGS = -I$(top_builddir)/src +diff --git a/src/os/linux/arm/Makefile.in b/src/os/linux/arm/Makefile.in +index 63b21ad..6d44ea9 100644 +--- a/src/os/linux/arm/Makefile.in ++++ b/src/os/linux/arm/Makefile.in +@@ -1,8 +1,9 @@ +-# Makefile.in generated by automake 1.10 from Makefile.am. ++# Makefile.in generated by automake 1.11.6 from Makefile.am. + # @configure_input@ + + # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +-# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. ++# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software ++# Foundation, Inc. + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -15,9 +16,27 @@ + @SET_MAKE@ + + VPATH = @srcdir@ ++am__make_dryrun = \ ++ { \ ++ am__dry=no; \ ++ case $$MAKEFLAGS in \ ++ *\\[\ \ ]*) \ ++ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ ++ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ ++ *) \ ++ for am__flg in $$MAKEFLAGS; do \ ++ case $$am__flg in \ ++ *=*|--*) ;; \ ++ *n*) am__dry=yes; break;; \ ++ esac; \ ++ done;; \ ++ esac; \ ++ test $$am__dry = yes; \ ++ } + pkgdatadir = $(datadir)/@PACKAGE@ +-pkglibdir = $(libdir)/@PACKAGE@ + pkgincludedir = $(includedir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkglibexecdir = $(libexecdir)/@PACKAGE@ + am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd + install_sh_DATA = $(install_sh) -c -m 644 + install_sh_PROGRAM = $(install_sh) -c +@@ -42,13 +61,15 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs + CONFIG_HEADER = $(top_builddir)/src/config.h + CONFIG_CLEAN_FILES = ++CONFIG_CLEAN_VPATH_FILES = + LTLIBRARIES = $(noinst_LTLIBRARIES) + libnative_la_LIBADD = + am_libnative_la_OBJECTS = init.lo dll_md.lo callNative.lo + libnative_la_OBJECTS = $(am_libnative_la_OBJECTS) +-DEFAULT_INCLUDES = -I. -I$(top_builddir)/src@am__isrc@ ++DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src + depcomp = $(SHELL) $(top_srcdir)/depcomp + am__depfiles_maybe = depfiles ++am__mv = mv -f + CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) + LTCPPASCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ +@@ -65,6 +86,11 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + $(LDFLAGS) -o $@ + SOURCES = $(libnative_la_SOURCES) + DIST_SOURCES = $(libnative_la_SOURCES) ++am__can_run_installinfo = \ ++ case $$AM_UPDATE_INFO_DIR in \ ++ n|no|NO) false;; \ ++ *) (install-info --version) >/dev/null 2>&1;; \ ++ esac + ETAGS = etags + CTAGS = ctags + DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +@@ -84,21 +110,18 @@ CCDEPMODE = @CCDEPMODE@ + CFLAGS = @CFLAGS@ + CPP = @CPP@ + CPPFLAGS = @CPPFLAGS@ +-CXX = @CXX@ +-CXXCPP = @CXXCPP@ +-CXXDEPMODE = @CXXDEPMODE@ +-CXXFLAGS = @CXXFLAGS@ + CYGPATH_W = @CYGPATH_W@ + DEFS = @DEFS@ + DEPDIR = @DEPDIR@ +-ECHO = @ECHO@ ++DLLTOOL = @DLLTOOL@ ++DSYMUTIL = @DSYMUTIL@ ++DUMPBIN = @DUMPBIN@ + ECHO_C = @ECHO_C@ + ECHO_N = @ECHO_N@ + ECHO_T = @ECHO_T@ + EGREP = @EGREP@ + EXEEXT = @EXEEXT@ +-F77 = @F77@ +-FFLAGS = @FFLAGS@ ++FGREP = @FGREP@ + GREP = @GREP@ + INSTALL = @INSTALL@ + INSTALL_DATA = @INSTALL_DATA@ +@@ -106,21 +129,30 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ + INSTALL_SCRIPT = @INSTALL_SCRIPT@ + INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ + JAVAC = @JAVAC@ ++LD = @LD@ + LDFLAGS = @LDFLAGS@ + LIBOBJS = @LIBOBJS@ + LIBS = @LIBS@ + LIBTOOL = @LIBTOOL@ ++LIPO = @LIPO@ + LN_S = @LN_S@ + LTLIBOBJS = @LTLIBOBJS@ + MAINT = @MAINT@ + MAKEINFO = @MAKEINFO@ ++MANIFEST_TOOL = @MANIFEST_TOOL@ + MKDIR_P = @MKDIR_P@ ++NM = @NM@ ++NMEDIT = @NMEDIT@ ++OBJDUMP = @OBJDUMP@ + OBJEXT = @OBJEXT@ ++OTOOL = @OTOOL@ ++OTOOL64 = @OTOOL64@ + PACKAGE = @PACKAGE@ + PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ + PACKAGE_NAME = @PACKAGE_NAME@ + PACKAGE_STRING = @PACKAGE_STRING@ + PACKAGE_TARNAME = @PACKAGE_TARNAME@ ++PACKAGE_URL = @PACKAGE_URL@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + PATH_SEPARATOR = @PATH_SEPARATOR@ + RANLIB = @RANLIB@ +@@ -133,9 +165,9 @@ abs_builddir = @abs_builddir@ + abs_srcdir = @abs_srcdir@ + abs_top_builddir = @abs_top_builddir@ + abs_top_srcdir = @abs_top_srcdir@ ++ac_ct_AR = @ac_ct_AR@ + ac_ct_CC = @ac_ct_CC@ +-ac_ct_CXX = @ac_ct_CXX@ +-ac_ct_F77 = @ac_ct_F77@ ++ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ + am__include = @am__include@ + am__leading_dot = @am__leading_dot@ + am__quote = @am__quote@ +@@ -149,6 +181,7 @@ build_cpu = @build_cpu@ + build_os = @build_os@ + build_vendor = @build_vendor@ + builddir = @builddir@ ++classlib = @classlib@ + datadir = @datadir@ + datarootdir = @datarootdir@ + docdir = @docdir@ +@@ -181,15 +214,18 @@ sharedstatedir = @sharedstatedir@ + srcdir = @srcdir@ + sysconfdir = @sysconfdir@ + target_alias = @target_alias@ ++top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + use_zip_no = @use_zip_no@ + use_zip_yes = @use_zip_yes@ + with_classpath_install_dir = @with_classpath_install_dir@ +-EXTRA_DIST = callNativeOABI.S callNativeEABI.S ++EXTRA_DIST = callNativeOABI.S callNativeEABI.S callNativeEABIHard.S \ ++ callNativeEABIHardARM.S ++ + noinst_LTLIBRARIES = libnative.la + libnative_la_SOURCES = init.c dll_md.c callNative.S +-AM_CPPFLAGS = -I$(top_builddir)/src ++AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src + AM_CCASFLAGS = -I$(top_builddir)/src + all: all-am + +@@ -199,14 +235,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ +- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +- && exit 0; \ ++ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ ++ && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ +- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/os/linux/arm/Makefile'; \ +- cd $(top_srcdir) && \ +- $(AUTOMAKE) --gnu src/os/linux/arm/Makefile ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/os/linux/arm/Makefile'; \ ++ $(am__cd) $(top_srcdir) && \ ++ $(AUTOMAKE) --gnu src/os/linux/arm/Makefile + .PRECIOUS: Makefile + Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ +@@ -224,6 +260,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ++$(am__aclocal_m4_deps): + + clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) +@@ -233,7 +270,7 @@ clean-noinstLTLIBRARIES: + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +-libnative.la: $(libnative_la_OBJECTS) $(libnative_la_DEPENDENCIES) ++libnative.la: $(libnative_la_OBJECTS) $(libnative_la_DEPENDENCIES) $(EXTRA_libnative_la_DEPENDENCIES) + $(LINK) $(libnative_la_OBJECTS) $(libnative_la_LIBADD) $(LIBS) + + mostlyclean-compile: +@@ -248,42 +285,42 @@ distclean-compile: + + .S.o: + @am__fastdepCCAS_TRUE@ $(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +-@am__fastdepCCAS_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++@am__fastdepCCAS_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po + @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCCAS_FALSE@ $(CPPASCOMPILE) -c -o $@ $< + + .S.obj: + @am__fastdepCCAS_TRUE@ $(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +-@am__fastdepCCAS_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++@am__fastdepCCAS_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po + @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCCAS_FALSE@ $(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + + .S.lo: + @am__fastdepCCAS_TRUE@ $(LTCPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +-@am__fastdepCCAS_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo ++@am__fastdepCCAS_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo + @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCCAS_FALSE@ $(LTCPPASCOMPILE) -c -o $@ $< + + .c.o: + @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(COMPILE) -c $< + + .c.obj: + @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + + .c.lo: + @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo ++@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo + @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@@ -299,45 +336,49 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ +- $(AWK) ' { files[$$0] = 1; } \ +- END { for (i in files) print i; }'`; \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique + tags: TAGS + + TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) +- tags=; \ ++ set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ +- $(AWK) ' { files[$$0] = 1; } \ +- END { for (i in files) print i; }'`; \ +- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ shift; \ ++ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ +- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ +- $$tags $$unique; \ ++ if test $$# -gt 0; then \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ "$$@" $$unique; \ ++ else \ ++ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ ++ $$unique; \ ++ fi; \ + fi + ctags: CTAGS + CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) +- tags=; \ +- here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ +- $(AWK) ' { files[$$0] = 1; } \ +- END { for (i in files) print i; }'`; \ +- test -z "$(CTAGS_ARGS)$$tags$$unique" \ ++ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ ++ END { if (nonempty) { for (i in files) print i; }; }'`; \ ++ test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ +- $$tags $$unique ++ $$unique + + GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ +- && cd $(top_srcdir) \ +- && gtags -i $(GTAGS_ARGS) $$here ++ && $(am__cd) $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) "$$here" + + distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags +@@ -358,13 +399,17 @@ distdir: $(DISTFILES) + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ ++ if test -d "$(distdir)/$$file"; then \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ ++ fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ +- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ ++ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ ++ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ +- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ ++ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ +- test -f $(distdir)/$$file \ +- || cp -p $$d/$$file $(distdir)/$$file \ ++ test -f "$(distdir)/$$file" \ ++ || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +@@ -382,16 +427,22 @@ install-am: all-am + + installcheck: installcheck-am + install-strip: +- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ +- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ +- `test -z '$(STRIP)' || \ +- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install ++ if test -z '$(STRIP)'; then \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ install; \ ++ else \ ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ ++ fi + mostlyclean-generic: + + clean-generic: + + distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + + maintainer-clean-generic: + @echo "This command is intended for maintainers to use" +@@ -413,6 +464,8 @@ dvi-am: + + html: html-am + ++html-am: ++ + info: info-am + + info-am: +@@ -421,18 +474,28 @@ install-data-am: + + install-dvi: install-dvi-am + ++install-dvi-am: ++ + install-exec-am: + + install-html: install-html-am + ++install-html-am: ++ + install-info: install-info-am + ++install-info-am: ++ + install-man: + + install-pdf: install-pdf-am + ++install-pdf-am: ++ + install-ps: install-ps-am + ++install-ps-am: ++ + installcheck-am: + + maintainer-clean: maintainer-clean-am +@@ -470,6 +533,7 @@ uninstall-am: + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am + ++ + # Tell versions [3.59,3.63) of GNU make to not export all variables. + # Otherwise a system limit (for SysV at least) may be exceeded. + .NOEXPORT: +diff --git a/src/os/linux/arm/callNative.S b/src/os/linux/arm/callNative.S +index 39ab6d3..245afd1 100644 +--- a/src/os/linux/arm/callNative.S ++++ b/src/os/linux/arm/callNative.S +@@ -1,6 +1,6 @@ + /* +- * Copyright (C) 2003, 2004, 2005, 2006, 2007 +- * Robert Lougher . ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2011, 2012 ++ * Robert Lougher . + * + * This file is part of JamVM. + * +@@ -23,7 +23,15 @@ + + #ifndef USE_FFI + #ifdef __ARM_EABI__ ++#ifdef __ARM_PCS_VFP ++#ifdef __ARM_ARCH_7A__ ++#include "callNativeEABIHard.S" ++#else ++#include "callNativeEABIHardARM.S" ++#endif ++#else + #include "callNativeEABI.S" ++#endif + #else + #include "callNativeOABI.S" + #endif +diff --git a/src/os/linux/arm/callNativeEABI.S b/src/os/linux/arm/callNativeEABI.S +index 5effa57..3a7539e 100644 +--- a/src/os/linux/arm/callNativeEABI.S ++++ b/src/os/linux/arm/callNativeEABI.S +@@ -1,6 +1,6 @@ + /* +- * Copyright (C) 2003, 2004, 2005, 2006, 2007 +- * Robert Lougher . ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2011 ++ * Robert Lougher . + * + * This file is part of JamVM. + * +@@ -95,8 +95,12 @@ done: + ldmfd sp!, {r2, r3} + + /* Call the function */ ++#if defined(__ARM_ARCH_4__) || defined(__ARM_ARCH_4T__) + mov lr, pc + bx ip ++#else ++ blx ip ++#endif + + subs r4, r4, #8 /* Pop argument area */ + /* (minus 8 for r2/r3) */ +diff --git a/src/os/linux/arm/callNativeEABIHard.S b/src/os/linux/arm/callNativeEABIHard.S +new file mode 100644 +index 0000000..5d5785b +--- /dev/null ++++ b/src/os/linux/arm/callNativeEABIHard.S +@@ -0,0 +1,315 @@ ++/* ++ * Copyright (C) 2011, 2012 Robert Lougher . ++ * ++ * This file is part of JamVM. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++ .text ++ .syntax unified ++ .arch armv7-a ++ .thumb ++ .align 2 ++ .global callJNIMethod ++ .type callJNIMethod,function ++ ++/* ++ * Arguments passed in: ++ * ++ * r0 JNIEnv ++ * r1 class or NULL ++ * r2 sig ++ * r3 extra arg ++ * sp + 0 ostack ++ * sp + 4 function pntr ++ * sp + 8 args count ++ */ ++ ++/* Register usage : ++ * ++ * r11 function pntr ++ * lr ostack pntr ++ * ip args pntr ++ * r8 sig pntr ++ * r10 extra stack ++ * r6 fp backfill ++ * r4 fp reg ++ * r7 int reg ++ * r5 scratch ++ * r3, r2 outgoing int args ++ * r1 outgoing class or this pntr ++ * r0 outgoing JNIEnv (as passed in) ++ * ++ * s0 - s16 (d0 - d7) outgoing float args ++ */ ++ ++callJNIMethod: ++ stmfd sp!, {r4, r5, r6, r7, r8, r10, r11, lr} ++ ldr lr, [sp, #32] /* get ostack pntr */ ++ ldr r11, [sp, #36] /* get function pntr */ ++ ++ cmp r1, #0 /* is method non-static? */ ++ it eq ++ ldreq r1, [lr], #4 /* yes, load r1 with "this" */ ++ ++ mov r10, r3 ++ subs sp, sp, r3 /* allocate room for stacked */ ++ add r8, r2, #1 /* init sig pntr -- skipping '(' */ ++ ++ mov ip, sp /* init loop pntr */ ++ ++ mov r7, #2 ++ mov r4, #16 ++ mov r6, #0 ++ ++scan_sig: ++ ldrb r5, [r8], #1 ++ ++ cmp r5, #41 /* ')' */ ++ beq done ++ ++ cmp r5, #70 /* 'F' */ ++ beq float ++ ++ cmp r5, #68 /* 'D' */ ++ beq double ++ ++ cmp r5, #74 /* 'J' */ ++ beq long ++ ++skip_brackets: ++ cmp r5, #91 /* '[' */ ++ itt eq ++ ldrbeq r5, [r8], #1 ++ beq skip_brackets ++ ++ cmp r5, #76 /* 'L' */ ++ bne int ++ ++skip_ref: ++ ldrb r5, [r8], #1 ++ cmp r5, #59 /* ';' */ ++ bne skip_ref ++ ++int: ++ cbz r7, stack_int ++ ++ subs r7, r7, #1 ++ ite ne ++ ldrne r2, [lr], #4 ++ ldreq r3, [lr], #4 ++ ++ b scan_sig ++ ++float: ++ cbz r6, no_backfill ++ ++ sub r5, r6, #1 ++ mov r6, #0 ++ b load_float ++ ++no_backfill: ++ cbz r4, stack_int ++ ++ sub r4, r4, #1 ++ mov r5, r4 ++ ++load_float: ++ add lr, lr, #4 ++ tbb [pc, r5] ++ ++float_table: ++ .byte (s15-float_table)/2 ++ .byte (s14-float_table)/2 ++ .byte (s13-float_table)/2 ++ .byte (s12-float_table)/2 ++ .byte (s11-float_table)/2 ++ .byte (s10-float_table)/2 ++ .byte (s9-float_table)/2 ++ .byte (s8-float_table)/2 ++ .byte (s7-float_table)/2 ++ .byte (s6-float_table)/2 ++ .byte (s5-float_table)/2 ++ .byte (s4-float_table)/2 ++ .byte (s3-float_table)/2 ++ .byte (s2-float_table)/2 ++ .byte (s1-float_table)/2 ++ .byte (s0-float_table)/2 ++ ++stack_int: ++ ldr r5, [lr], #4 ++ str r5, [ip], #4 ++ b scan_sig ++ ++s0: ++ vldr s0, [lr, #-4] ++ b scan_sig ++s1: ++ vldr s1, [lr, #-4] ++ b scan_sig ++s2: ++ vldr s2, [lr, #-4] ++ b scan_sig ++s3: ++ vldr s3, [lr, #-4] ++ b scan_sig ++s4: ++ vldr s4, [lr, #-4] ++ b scan_sig ++s5: ++ vldr s5, [lr, #-4] ++ b scan_sig ++s6: ++ vldr s6, [lr, #-4] ++ b scan_sig ++s7: ++ vldr s7, [lr, #-4] ++ b scan_sig ++s8: ++ vldr s8, [lr, #-4] ++ b scan_sig ++s9: ++ vldr s9, [lr, #-4] ++ b scan_sig ++s10: ++ vldr s10, [lr, #-4] ++ b scan_sig ++s11: ++ vldr s11, [lr, #-4] ++ b scan_sig ++s12: ++ vldr s12, [lr, #-4] ++ b scan_sig ++s13: ++ vldr s13, [lr, #-4] ++ b scan_sig ++s14: ++ vldr s14, [lr, #-4] ++ b scan_sig ++s15: ++ vldr s15, [lr, #-4] ++ b scan_sig ++ ++long: ++ cmp r7, #2 ++ mov r7, #0 ++ bne stack_long ++ ++ ldmia lr!, {r2, r3} ++ b scan_sig ++ ++double: ++ lsrs r5, r4, #1 ++ it cs ++ movcs r6, r4 ++ ++ lsls r4, r5, #1 ++ beq stack_double ++ ++ sub r4, r4, #2 ++ add lr, lr, #8 ++ tbb [pc, r5] ++ ++double_table: ++ .byte 0 ++ .byte (d7-double_table)/2 ++ .byte (d6-double_table)/2 ++ .byte (d5-double_table)/2 ++ .byte (d4-double_table)/2 ++ .byte (d3-double_table)/2 ++ .byte (d2-double_table)/2 ++ .byte (d1-double_table)/2 ++ .byte (d0-double_table)/2 ++ .align 2 ++d0: ++ vldr d0, [lr, #-8] ++ b scan_sig ++d1: ++ vldr d1, [lr, #-8] ++ b scan_sig ++d2: ++ vldr d2, [lr, #-8] ++ b scan_sig ++d3: ++ vldr d3, [lr, #-8] ++ b scan_sig ++d4: ++ vldr d4, [lr, #-8] ++ b scan_sig ++d5: ++ vldr d5, [lr, #-8] ++ b scan_sig ++d6: ++ vldr d6, [lr, #-8] ++ b scan_sig ++d7: ++ vldr d7, [lr, #-8] ++ b scan_sig ++ ++stack_double: ++ mov r6, #0 ++ ++stack_long: ++ /* Ensure address is 8 byte aligned */ ++ add ip, ip, #7 ++ bic ip, ip, #7 ++ ++ ldr r5, [lr], #4 ++ str r5, [ip], #4 ++ ldr r5, [lr], #4 ++ str r5, [ip], #4 ++ b scan_sig ++ ++done: ++ /* Call the function */ ++ blx r11 ++ ++ add sp, sp, r10 /* Pop argument area */ ++ ++ ldr r4, [sp, #32] /* Reload ostack for */ ++ /* address of return value */ ++ ++ ldrb r5, [r8] /* Return type */ ++ ++ cmp r5, #86 /* 'V' */ ++ beq return ++ ++ cmp r5, #68 /* 'D' */ ++ beq return_double ++ ++ cmp r5, #70 /* 'F' */ ++ beq return_float ++ ++ str r0, [r4], #4 /* Low word */ ++ ++ cmp r5, #74 /* 'J' */ ++ it eq ++ streq r1, [r4], #4 /* High word */ ++ ++return: ++ mov r0, r4 /* return ostack */ ++ ldmfd sp!, {r4, r5, r6, r7, r8, r10, r11, lr} ++ bx lr ++ ++return_float: ++ vstr s0, [r4] ++ add r4, r4, #4 ++ b return ++ ++return_double: ++ vstr d0, [r4] ++ add r4, r4, #8 ++ b return +diff --git a/src/os/linux/arm/callNativeEABIHardARM.S b/src/os/linux/arm/callNativeEABIHardARM.S +new file mode 100644 +index 0000000..3a31acd +--- /dev/null ++++ b/src/os/linux/arm/callNativeEABIHardARM.S +@@ -0,0 +1,266 @@ ++/* ++ * Copyright (C) 2011, 2012 Robert Lougher . ++ * ++ * This file is part of JamVM. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++ .text ++ .align 2 ++ .global callJNIMethod ++ .type callJNIMethod,function ++ ++/* ++ * Arguments passed in: ++ * ++ * r0 JNIEnv ++ * r1 class or NULL ++ * r2 sig ++ * r3 extra arg ++ * sp + 0 ostack ++ * sp + 4 function pntr ++ * sp + 8 args count ++ */ ++ ++/* Register usage : ++ * ++ * lr ostack pntr ++ * ip scratch ++ * r11 function pntr ++ * r10 fp backfill ++ * r8 fp reg ++ * r7 int reg ++ * r6 args pntr ++ * r5 sig pntr ++ * r4 extra stack ++ * r3, r2 outgoing int args ++ * r1 outgoing class or this pntr ++ * r0 outgoing JNIEnv (as passed in) ++ * ++ * s0 - s16 (d0 - d7) outgoing float args ++ */ ++ ++callJNIMethod: ++ stmfd sp!, {r4, r5, r6, r7, r8, r10, r11, lr} ++ ldr lr, [sp, #32] /* get ostack pntr */ ++ ldr r11, [sp, #36] /* get function pntr */ ++ ++ cmp r1, #0 /* is method non-static? */ ++ ldreq r1, [lr], #4 /* yes, load r1 with "this" */ ++ ++ mov r4, r3 ++ sub sp, sp, r4 /* allocate room for stacked */ ++ add r5, r2, #1 /* init sig pntr -- skipping '(' */ ++ ++ mov r6, sp /* init loop pntr */ ++ ++ mov r7, #2 ++ mov r8, #16 ++ mov r10, #0 ++ ++scan_sig: ++ ldrb ip, [r5], #1 ++ ++ cmp ip, #41 /* ')' */ ++ beq done ++ ++ cmp ip, #70 /* 'F' */ ++ beq float ++ ++ cmp ip, #68 /* 'D' */ ++ beq double ++ ++ cmp ip, #74 /* 'J' */ ++ beq long ++ ++skip_brackets: ++ cmp ip, #91 /* '[' */ ++ ldreqb ip, [r5], #1 ++ beq skip_brackets ++ ++ cmp ip, #76 /* 'L' */ ++ bne int ++ ++skip_ref: ++ ldrb ip, [r5], #1 ++ cmp ip, #59 /* ';' */ ++ bne skip_ref ++ ++int: ++ cmp r7, #0 ++ beq stack_int ++ ++ subs r7, r7, #1 ++ ++ ldrne r2, [lr], #4 ++ ldreq r3, [lr], #4 ++ ++ b scan_sig ++ ++stack_int: ++ ldr ip, [lr], #4 ++ str ip, [r6], #4 ++ b scan_sig ++ ++float: ++ cmp r10, #0 ++ beq no_backfill ++ ++ sub ip, r10, #1 ++ mov r10, #0 ++ b load_float ++ ++no_backfill: ++ cmp r8, #0 ++ beq stack_int ++ ++ sub r8, r8, #1 ++ mov ip, r8 ++ ++load_float: ++ add lr, lr, #4 ++ add pc, pc, ip, lsl #3 ++ nop ++ ++ flds s15, [lr, #-4] ++ b scan_sig ++ flds s14, [lr, #-4] ++ b scan_sig ++ flds s13, [lr, #-4] ++ b scan_sig ++ flds s12, [lr, #-4] ++ b scan_sig ++ flds s11, [lr, #-4] ++ b scan_sig ++ flds s10, [lr, #-4] ++ b scan_sig ++ flds s9, [lr, #-4] ++ b scan_sig ++ flds s8, [lr, #-4] ++ b scan_sig ++ flds s7, [lr, #-4] ++ b scan_sig ++ flds s6, [lr, #-4] ++ b scan_sig ++ flds s5, [lr, #-4] ++ b scan_sig ++ flds s4, [lr, #-4] ++ b scan_sig ++ flds s3, [lr, #-4] ++ b scan_sig ++ flds s2, [lr, #-4] ++ b scan_sig ++ flds s1, [lr, #-4] ++ b scan_sig ++ flds s0, [lr, #-4] ++ b scan_sig ++ ++long: ++ cmp r7, #2 ++ mov r7, #0 ++ bne stack_long ++ ++ ldr r2, [lr], #4 ++ ldr r3, [lr], #4 ++ b scan_sig ++ ++double: ++ lsrs ip, r8, #1 ++ movcs r10, r8 ++ ++ lsls r8, ip, #1 ++ beq stack_double ++ ++ sub r8, r8, #2 ++ add lr, lr, #8 ++ add pc, pc, ip, lsl #3 ++ nop ++ nop ++ nop ++ ++ fldd d7, [lr, #-8] ++ b scan_sig ++ fldd d6, [lr, #-8] ++ b scan_sig ++ fldd d5, [lr, #-8] ++ b scan_sig ++ fldd d4, [lr, #-8] ++ b scan_sig ++ fldd d3, [lr, #-8] ++ b scan_sig ++ fldd d2, [lr, #-8] ++ b scan_sig ++ fldd d1, [lr, #-8] ++ b scan_sig ++ fldd d0, [lr, #-8] ++ b scan_sig ++ ++stack_double: ++ mov r10, #0 ++ ++stack_long: ++ /* Ensure address is 8 byte aligned */ ++ add r6, r6, #7 ++ bic r6, r6, #7 ++ ++ ldr ip, [lr], #4 ++ str ip, [r6], #4 ++ ldr ip, [lr], #4 ++ str ip, [r6], #4 ++ b scan_sig ++ ++done: ++ /* Call the function */ ++#if defined(__ARM_ARCH_4__) || defined(__ARM_ARCH_4T__) ++ mov lr, pc ++ bx r11 ++#else ++ blx r11 ++#endif ++ ++ add sp, sp, r4 /* Pop argument area */ ++ ldr r4, [sp, #32] /* Reload ostack for */ ++ /* address of return value */ ++ ldrb ip, [r5] /* Return type */ ++ ++ cmp ip, #86 /* 'V' */ ++ beq return ++ ++ cmp ip, #68 /* 'D' */ ++ beq return_double ++ ++ cmp ip, #70 /* 'F' */ ++ beq return_float ++ ++ str r0, [r4], #4 /* Low word */ ++ ++ cmp ip, #74 /* 'J' */ ++ streq r1, [r4], #4 /* High word */ ++ ++return: ++ mov r0, r4 /* return ostack */ ++ ldmfd sp!, {r4, r5, r6, r7, r8, r10, r11, lr} ++ bx lr ++ ++return_float: ++ add r4, r4, #4 ++ fsts s0, [r4, #-4] ++ b return ++ ++return_double: ++ add r4, r4, #8 ++ fstd d0, [r4, #-8] ++ b return +diff --git a/src/os/linux/arm/dll_md.c b/src/os/linux/arm/dll_md.c +index f5df90e..39bdf7c 100644 +--- a/src/os/linux/arm/dll_md.c ++++ b/src/os/linux/arm/dll_md.c +@@ -1,6 +1,6 @@ + /* +- * Copyright (C) 2003, 2004, 2005, 2006, 2007 +- * Robert Lougher . ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2011 ++ * Robert Lougher . + * + * This file is part of JamVM. + * +@@ -31,6 +31,61 @@ + * out stack requirements and then to push arguments. To + * save the first scan at call time, the signature is pre- + * scanned and stack requirement stored in the extra argument. */ ++ ++#ifdef __ARM_PCS_VFP ++int nativeExtraArg(MethodBlock *mb) { ++ char *sig = mb->type; ++ int fp_backfill = 0; ++ int stack_args = 0; ++ int int_args = 2; ++ int fp_args = 16; ++ ++ while(*++sig != ')') ++ switch(*sig) { ++ case 'J': ++ if(int_args < 2) ++ stack_args = (stack_args + 15) & ~7; ++ int_args = 0; ++ break; ++ ++ case 'D': ++ fp_backfill |= fp_args & 1; ++ fp_args &= ~1; ++ ++ if(fp_args == 0) { ++ stack_args = (stack_args + 15) & ~7; ++ fp_backfill = 0; ++ } else ++ fp_args -= 2; ++ break; ++ ++ case 'F': ++ if(fp_backfill) ++ fp_backfill = 0; ++ else { ++ if(fp_args == 0) ++ stack_args += 4; ++ else ++ fp_args--; ++ } ++ break; ++ ++ default: ++ if(int_args == 0) ++ stack_args += 4; ++ else ++ int_args--; ++ ++ if(*sig == '[') ++ while(*++sig == '['); ++ if(*sig == 'L') ++ while(*++sig != ';'); ++ break; ++ } ++ ++ return (stack_args + 7) & ~7; ++} ++#else + int nativeExtraArg(MethodBlock *mb) { + char *sig = mb->type; + int args = 0; +@@ -57,7 +112,7 @@ int nativeExtraArg(MethodBlock *mb) { + native method, so minimum stack requirement is 8 bytes. */ + return args < 8 ? 8 : args; + } +- ++#endif + #else + + /* Under OABI, arguments can be copied onto the stack "as is" +-- +2.17.1 + diff --git a/gnu/packages/patches/jamvm-arm.patch b/gnu/packages/patches/jamvm-arm.patch deleted file mode 100644 index 9e998e18db..0000000000 --- a/gnu/packages/patches/jamvm-arm.patch +++ /dev/null @@ -1,1313 +0,0 @@ -From 67faeb7d58e0d25a50d36788ed49ed383b92e090 Mon Sep 17 00:00:00 2001 -From: Efraim Flashner -Date: Mon, 26 Mar 2018 11:08:17 +0300 -Subject: [PATCH] add ARMv7 support - ---- - src/arch/arm.h | 75 +++++- - src/os/linux/arm/Makefile.am | 9 +- - src/os/linux/arm/Makefile.in | 166 ++++++++---- - src/os/linux/arm/callNative.S | 12 +- - src/os/linux/arm/callNativeEABI.S | 8 +- - src/os/linux/arm/callNativeEABIHard.S | 315 +++++++++++++++++++++++ - src/os/linux/arm/callNativeEABIHardARM.S | 266 +++++++++++++++++++ - src/os/linux/arm/dll_md.c | 61 ++++- - 8 files changed, 843 insertions(+), 69 deletions(-) - create mode 100644 src/os/linux/arm/callNativeEABIHard.S - create mode 100644 src/os/linux/arm/callNativeEABIHardARM.S - -diff --git a/src/arch/arm.h b/src/arch/arm.h -index ccf68c4..d2c0318 100644 ---- a/src/arch/arm.h -+++ b/src/arch/arm.h -@@ -1,6 +1,6 @@ - /* -- * Copyright (C) 2003, 2004, 2005, 2006, 2007 -- * Robert Lougher . -+ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, -+ * 2014 Robert Lougher . - * - * This file is part of JamVM. - * -@@ -21,10 +21,16 @@ - - #define OS_ARCH "arm" - --/* Override default min and max heap sizes. ARM machines are -- usually embedded, and the standard defaults are too large. */ --#define DEFAULT_MAX_HEAP 16*MB -+/* Override minimum min heap size. The initial heap size is a ratio -+ of the physical memory, but it must be at least the minimum min -+ size. The normal setting is too large for ARM machines as they -+ are usually embedded. */ -+#define MIN_MIN_HEAP 1*MB -+ -+/* Likewise, override the default min/max heap sizes used when the -+ size of physical memory is not available */ - #define DEFAULT_MIN_HEAP 1*MB -+#define DEFAULT_MAX_HEAP 64*MB - - #ifdef DIRECT - #define HANDLER_TABLE_T static const void -@@ -51,6 +57,36 @@ - /* Needed for i386 -- empty here */ - #define FPU_HACK - -+#if defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_7A__) -+#define COMPARE_AND_SWAP_32(addr, old_val, new_val) \ -+({ \ -+ int result, read_val; \ -+ __asm__ __volatile__ (" \ -+ 1: mov %0, #0; \ -+ ldrex %1, [%2]; \ -+ cmp %3, %1; \ -+ bne 2f; \ -+ strex %0, %4, [%2]; \ -+ cmp %0, #1; \ -+ beq 1b; \ -+ mov %0, #1; \ -+ 2:" \ -+ : "=&r" (result), "=&r" (read_val) \ -+ : "r" (addr), "r" (old_val), "r" (new_val) \ -+ : "cc", "memory"); \ -+ result; \ -+}) -+ -+#define COMPARE_AND_SWAP(addr, old_val, new_val) \ -+ COMPARE_AND_SWAP_32(addr, old_val, new_val) -+ -+#define LOCKWORD_READ(addr) *addr -+#define LOCKWORD_WRITE(addr, value) *addr = value -+#define LOCKWORD_COMPARE_AND_SWAP(addr, old_val, new_val) \ -+ COMPARE_AND_SWAP(addr, old_val, new_val) -+ -+#else -+ - #define LOCKWORD_COMPARE_AND_SWAP(addr, old_val, new_val) \ - ({ \ - int result, read_val; \ -@@ -94,7 +130,7 @@ do { \ - : "r" (addr), "r" (new_val) \ - : "cc", "memory"); \ - } while(0) -- -+#endif - - #ifdef __ARM_EABI__ - #define FLUSH_CACHE(addr, length) \ -@@ -124,8 +160,33 @@ do { \ - } - #endif - -+#define GEN_REL_JMP(target_addr, patch_addr, patch_size) \ -+({ \ -+ int patched = FALSE; \ -+ \ -+ if(patch_size >= 4) { \ -+ /* Guard against the pointer difference being \ -+ larger than the signed range */ \ -+ long long offset = (uintptr_t)(target_addr) - \ -+ (uintptr_t)(patch_addr) - 8; \ -+ \ -+ if(offset >= -1<<25 && offset < 1<<25) { \ -+ *(int*)(patch_addr) = offset>>2 & 0x00ffffff \ -+ | 0xea000000; \ -+ patched = TRUE; \ -+ } \ -+ } \ -+ patched; \ -+}) -+ -+#ifdef __ARM_ARCH_7A__ -+#define MBARRIER() __asm__ __volatile__ ("dmb" ::: "memory") -+#define UNLOCK_MBARRIER() __asm__ __volatile__ ("dmb" ::: "memory") -+#define JMM_LOCK_MBARRIER() __asm__ __volatile__ ("dmb" ::: "memory") -+#define JMM_UNLOCK_MBARRIER() __asm__ __volatile__ ("dmb" ::: "memory") -+#else - #define MBARRIER() __asm__ __volatile__ ("" ::: "memory") - #define UNLOCK_MBARRIER() __asm__ __volatile__ ("" ::: "memory") - #define JMM_LOCK_MBARRIER() __asm__ __volatile__ ("" ::: "memory") - #define JMM_UNLOCK_MBARRIER() __asm__ __volatile__ ("" ::: "memory") -- -+#endif -diff --git a/src/os/linux/arm/Makefile.am b/src/os/linux/arm/Makefile.am -index d18ea5a..74e7786 100644 ---- a/src/os/linux/arm/Makefile.am -+++ b/src/os/linux/arm/Makefile.am -@@ -1,6 +1,6 @@ - ## --## Copyright (C) 2003, 2004, 2005, 2006, 2007 --## Robert Lougher . -+## Copyright (C) 2003, 2004, 2005, 2006, 2007, 2010, 2011, 2012 -+## Robert Lougher . - ## - ## This file is part of JamVM. - ## -@@ -19,10 +19,11 @@ - ## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - ## - --EXTRA_DIST = callNativeOABI.S callNativeEABI.S -+EXTRA_DIST = callNativeOABI.S callNativeEABI.S callNativeEABIHard.S \ -+ callNativeEABIHardARM.S - - noinst_LTLIBRARIES = libnative.la - libnative_la_SOURCES = init.c dll_md.c callNative.S - --AM_CPPFLAGS = -I$(top_builddir)/src -+AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src - AM_CCASFLAGS = -I$(top_builddir)/src -diff --git a/src/os/linux/arm/Makefile.in b/src/os/linux/arm/Makefile.in -index 63b21ad..6d44ea9 100644 ---- a/src/os/linux/arm/Makefile.in -+++ b/src/os/linux/arm/Makefile.in -@@ -1,8 +1,9 @@ --# Makefile.in generated by automake 1.10 from Makefile.am. -+# Makefile.in generated by automake 1.11.6 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, --# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software -+# Foundation, Inc. - # This Makefile.in is free software; the Free Software Foundation - # gives unlimited permission to copy and/or distribute it, - # with or without modifications, as long as this notice is preserved. -@@ -15,9 +16,27 @@ - @SET_MAKE@ - - VPATH = @srcdir@ -+am__make_dryrun = \ -+ { \ -+ am__dry=no; \ -+ case $$MAKEFLAGS in \ -+ *\\[\ \ ]*) \ -+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ -+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ -+ *) \ -+ for am__flg in $$MAKEFLAGS; do \ -+ case $$am__flg in \ -+ *=*|--*) ;; \ -+ *n*) am__dry=yes; break;; \ -+ esac; \ -+ done;; \ -+ esac; \ -+ test $$am__dry = yes; \ -+ } - pkgdatadir = $(datadir)/@PACKAGE@ --pkglibdir = $(libdir)/@PACKAGE@ - pkgincludedir = $(includedir)/@PACKAGE@ -+pkglibdir = $(libdir)/@PACKAGE@ -+pkglibexecdir = $(libexecdir)/@PACKAGE@ - am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd - install_sh_DATA = $(install_sh) -c -m 644 - install_sh_PROGRAM = $(install_sh) -c -@@ -42,13 +61,15 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs - CONFIG_HEADER = $(top_builddir)/src/config.h - CONFIG_CLEAN_FILES = -+CONFIG_CLEAN_VPATH_FILES = - LTLIBRARIES = $(noinst_LTLIBRARIES) - libnative_la_LIBADD = - am_libnative_la_OBJECTS = init.lo dll_md.lo callNative.lo - libnative_la_OBJECTS = $(am_libnative_la_OBJECTS) --DEFAULT_INCLUDES = -I. -I$(top_builddir)/src@am__isrc@ -+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src - depcomp = $(SHELL) $(top_srcdir)/depcomp - am__depfiles_maybe = depfiles -+am__mv = mv -f - CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) - LTCPPASCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ -@@ -65,6 +86,11 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ - $(LDFLAGS) -o $@ - SOURCES = $(libnative_la_SOURCES) - DIST_SOURCES = $(libnative_la_SOURCES) -+am__can_run_installinfo = \ -+ case $$AM_UPDATE_INFO_DIR in \ -+ n|no|NO) false;; \ -+ *) (install-info --version) >/dev/null 2>&1;; \ -+ esac - ETAGS = etags - CTAGS = ctags - DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -@@ -84,21 +110,18 @@ CCDEPMODE = @CCDEPMODE@ - CFLAGS = @CFLAGS@ - CPP = @CPP@ - CPPFLAGS = @CPPFLAGS@ --CXX = @CXX@ --CXXCPP = @CXXCPP@ --CXXDEPMODE = @CXXDEPMODE@ --CXXFLAGS = @CXXFLAGS@ - CYGPATH_W = @CYGPATH_W@ - DEFS = @DEFS@ - DEPDIR = @DEPDIR@ --ECHO = @ECHO@ -+DLLTOOL = @DLLTOOL@ -+DSYMUTIL = @DSYMUTIL@ -+DUMPBIN = @DUMPBIN@ - ECHO_C = @ECHO_C@ - ECHO_N = @ECHO_N@ - ECHO_T = @ECHO_T@ - EGREP = @EGREP@ - EXEEXT = @EXEEXT@ --F77 = @F77@ --FFLAGS = @FFLAGS@ -+FGREP = @FGREP@ - GREP = @GREP@ - INSTALL = @INSTALL@ - INSTALL_DATA = @INSTALL_DATA@ -@@ -106,21 +129,30 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ - INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ - JAVAC = @JAVAC@ -+LD = @LD@ - LDFLAGS = @LDFLAGS@ - LIBOBJS = @LIBOBJS@ - LIBS = @LIBS@ - LIBTOOL = @LIBTOOL@ -+LIPO = @LIPO@ - LN_S = @LN_S@ - LTLIBOBJS = @LTLIBOBJS@ - MAINT = @MAINT@ - MAKEINFO = @MAKEINFO@ -+MANIFEST_TOOL = @MANIFEST_TOOL@ - MKDIR_P = @MKDIR_P@ -+NM = @NM@ -+NMEDIT = @NMEDIT@ -+OBJDUMP = @OBJDUMP@ - OBJEXT = @OBJEXT@ -+OTOOL = @OTOOL@ -+OTOOL64 = @OTOOL64@ - PACKAGE = @PACKAGE@ - PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ - PACKAGE_NAME = @PACKAGE_NAME@ - PACKAGE_STRING = @PACKAGE_STRING@ - PACKAGE_TARNAME = @PACKAGE_TARNAME@ -+PACKAGE_URL = @PACKAGE_URL@ - PACKAGE_VERSION = @PACKAGE_VERSION@ - PATH_SEPARATOR = @PATH_SEPARATOR@ - RANLIB = @RANLIB@ -@@ -133,9 +165,9 @@ abs_builddir = @abs_builddir@ - abs_srcdir = @abs_srcdir@ - abs_top_builddir = @abs_top_builddir@ - abs_top_srcdir = @abs_top_srcdir@ -+ac_ct_AR = @ac_ct_AR@ - ac_ct_CC = @ac_ct_CC@ --ac_ct_CXX = @ac_ct_CXX@ --ac_ct_F77 = @ac_ct_F77@ -+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ - am__include = @am__include@ - am__leading_dot = @am__leading_dot@ - am__quote = @am__quote@ -@@ -149,6 +181,7 @@ build_cpu = @build_cpu@ - build_os = @build_os@ - build_vendor = @build_vendor@ - builddir = @builddir@ -+classlib = @classlib@ - datadir = @datadir@ - datarootdir = @datarootdir@ - docdir = @docdir@ -@@ -181,15 +214,18 @@ sharedstatedir = @sharedstatedir@ - srcdir = @srcdir@ - sysconfdir = @sysconfdir@ - target_alias = @target_alias@ -+top_build_prefix = @top_build_prefix@ - top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ - use_zip_no = @use_zip_no@ - use_zip_yes = @use_zip_yes@ - with_classpath_install_dir = @with_classpath_install_dir@ --EXTRA_DIST = callNativeOABI.S callNativeEABI.S -+EXTRA_DIST = callNativeOABI.S callNativeEABI.S callNativeEABIHard.S \ -+ callNativeEABIHardARM.S -+ - noinst_LTLIBRARIES = libnative.la - libnative_la_SOURCES = init.c dll_md.c callNative.S --AM_CPPFLAGS = -I$(top_builddir)/src -+AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src - AM_CCASFLAGS = -I$(top_builddir)/src - all: all-am - -@@ -199,14 +235,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -- && exit 0; \ -+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ -+ && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ -- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/os/linux/arm/Makefile'; \ -- cd $(top_srcdir) && \ -- $(AUTOMAKE) --gnu src/os/linux/arm/Makefile -+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/os/linux/arm/Makefile'; \ -+ $(am__cd) $(top_srcdir) && \ -+ $(AUTOMAKE) --gnu src/os/linux/arm/Makefile - .PRECIOUS: Makefile - Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ -@@ -224,6 +260,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -+$(am__aclocal_m4_deps): - - clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) -@@ -233,7 +270,7 @@ clean-noinstLTLIBRARIES: - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done --libnative.la: $(libnative_la_OBJECTS) $(libnative_la_DEPENDENCIES) -+libnative.la: $(libnative_la_OBJECTS) $(libnative_la_DEPENDENCIES) $(EXTRA_libnative_la_DEPENDENCIES) - $(LINK) $(libnative_la_OBJECTS) $(libnative_la_LIBADD) $(LIBS) - - mostlyclean-compile: -@@ -248,42 +285,42 @@ distclean-compile: - - .S.o: - @am__fastdepCCAS_TRUE@ $(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< --@am__fastdepCCAS_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -+@am__fastdepCCAS_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po - @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCCAS_FALSE@ $(CPPASCOMPILE) -c -o $@ $< - - .S.obj: - @am__fastdepCCAS_TRUE@ $(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` --@am__fastdepCCAS_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -+@am__fastdepCCAS_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po - @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCCAS_FALSE@ $(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - - .S.lo: - @am__fastdepCCAS_TRUE@ $(LTCPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< --@am__fastdepCCAS_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -+@am__fastdepCCAS_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo - @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCCAS_FALSE@ $(LTCPPASCOMPILE) -c -o $@ $< - - .c.o: - @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< --@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po - @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(COMPILE) -c $< - - .c.obj: - @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` --@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po - @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` - - .c.lo: - @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< --@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo - @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ - @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< -@@ -299,45 +336,49 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ -+ END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique - tags: TAGS - - TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) -- tags=; \ -+ set x; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ -+ END { if (nonempty) { for (i in files) print i; }; }'`; \ -+ shift; \ -+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ -- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -- $$tags $$unique; \ -+ if test $$# -gt 0; then \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ "$$@" $$unique; \ -+ else \ -+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -+ $$unique; \ -+ fi; \ - fi - ctags: CTAGS - CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) -- tags=; \ -- here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- test -z "$(CTAGS_ARGS)$$tags$$unique" \ -+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ -+ END { if (nonempty) { for (i in files) print i; }; }'`; \ -+ test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -- $$tags $$unique -+ $$unique - - GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ -- && cd $(top_srcdir) \ -- && gtags -i $(GTAGS_ARGS) $$here -+ && $(am__cd) $(top_srcdir) \ -+ && gtags -i $(GTAGS_ARGS) "$$here" - - distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -@@ -358,13 +399,17 @@ distdir: $(DISTFILES) - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ -+ if test -d "$(distdir)/$$file"; then \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ -+ fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ -+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ -- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ -- test -f $(distdir)/$$file \ -- || cp -p $$d/$$file $(distdir)/$$file \ -+ test -f "$(distdir)/$$file" \ -+ || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -@@ -382,16 +427,22 @@ install-am: all-am - - installcheck: installcheck-am - install-strip: -- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ -- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ -- `test -z '$(STRIP)' || \ -- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -+ if test -z '$(STRIP)'; then \ -+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ -+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ -+ install; \ -+ else \ -+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ -+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ -+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ -+ fi - mostlyclean-generic: - - clean-generic: - - distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - - maintainer-clean-generic: - @echo "This command is intended for maintainers to use" -@@ -413,6 +464,8 @@ dvi-am: - - html: html-am - -+html-am: -+ - info: info-am - - info-am: -@@ -421,18 +474,28 @@ install-data-am: - - install-dvi: install-dvi-am - -+install-dvi-am: -+ - install-exec-am: - - install-html: install-html-am - -+install-html-am: -+ - install-info: install-info-am - -+install-info-am: -+ - install-man: - - install-pdf: install-pdf-am - -+install-pdf-am: -+ - install-ps: install-ps-am - -+install-ps-am: -+ - installcheck-am: - - maintainer-clean: maintainer-clean-am -@@ -470,6 +533,7 @@ uninstall-am: - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags uninstall uninstall-am - -+ - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. - .NOEXPORT: -diff --git a/src/os/linux/arm/callNative.S b/src/os/linux/arm/callNative.S -index 39ab6d3..245afd1 100644 ---- a/src/os/linux/arm/callNative.S -+++ b/src/os/linux/arm/callNative.S -@@ -1,6 +1,6 @@ - /* -- * Copyright (C) 2003, 2004, 2005, 2006, 2007 -- * Robert Lougher . -+ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2011, 2012 -+ * Robert Lougher . - * - * This file is part of JamVM. - * -@@ -23,7 +23,15 @@ - - #ifndef USE_FFI - #ifdef __ARM_EABI__ -+#ifdef __ARM_PCS_VFP -+#ifdef __ARM_ARCH_7A__ -+#include "callNativeEABIHard.S" -+#else -+#include "callNativeEABIHardARM.S" -+#endif -+#else - #include "callNativeEABI.S" -+#endif - #else - #include "callNativeOABI.S" - #endif -diff --git a/src/os/linux/arm/callNativeEABI.S b/src/os/linux/arm/callNativeEABI.S -index 5effa57..3a7539e 100644 ---- a/src/os/linux/arm/callNativeEABI.S -+++ b/src/os/linux/arm/callNativeEABI.S -@@ -1,6 +1,6 @@ - /* -- * Copyright (C) 2003, 2004, 2005, 2006, 2007 -- * Robert Lougher . -+ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2011 -+ * Robert Lougher . - * - * This file is part of JamVM. - * -@@ -95,8 +95,12 @@ done: - ldmfd sp!, {r2, r3} - - /* Call the function */ -+#if defined(__ARM_ARCH_4__) || defined(__ARM_ARCH_4T__) - mov lr, pc - bx ip -+#else -+ blx ip -+#endif - - subs r4, r4, #8 /* Pop argument area */ - /* (minus 8 for r2/r3) */ -diff --git a/src/os/linux/arm/callNativeEABIHard.S b/src/os/linux/arm/callNativeEABIHard.S -new file mode 100644 -index 0000000..5d5785b ---- /dev/null -+++ b/src/os/linux/arm/callNativeEABIHard.S -@@ -0,0 +1,315 @@ -+/* -+ * Copyright (C) 2011, 2012 Robert Lougher . -+ * -+ * This file is part of JamVM. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2, -+ * or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -+ */ -+ -+ .text -+ .syntax unified -+ .arch armv7-a -+ .thumb -+ .align 2 -+ .global callJNIMethod -+ .type callJNIMethod,function -+ -+/* -+ * Arguments passed in: -+ * -+ * r0 JNIEnv -+ * r1 class or NULL -+ * r2 sig -+ * r3 extra arg -+ * sp + 0 ostack -+ * sp + 4 function pntr -+ * sp + 8 args count -+ */ -+ -+/* Register usage : -+ * -+ * r11 function pntr -+ * lr ostack pntr -+ * ip args pntr -+ * r8 sig pntr -+ * r10 extra stack -+ * r6 fp backfill -+ * r4 fp reg -+ * r7 int reg -+ * r5 scratch -+ * r3, r2 outgoing int args -+ * r1 outgoing class or this pntr -+ * r0 outgoing JNIEnv (as passed in) -+ * -+ * s0 - s16 (d0 - d7) outgoing float args -+ */ -+ -+callJNIMethod: -+ stmfd sp!, {r4, r5, r6, r7, r8, r10, r11, lr} -+ ldr lr, [sp, #32] /* get ostack pntr */ -+ ldr r11, [sp, #36] /* get function pntr */ -+ -+ cmp r1, #0 /* is method non-static? */ -+ it eq -+ ldreq r1, [lr], #4 /* yes, load r1 with "this" */ -+ -+ mov r10, r3 -+ subs sp, sp, r3 /* allocate room for stacked */ -+ add r8, r2, #1 /* init sig pntr -- skipping '(' */ -+ -+ mov ip, sp /* init loop pntr */ -+ -+ mov r7, #2 -+ mov r4, #16 -+ mov r6, #0 -+ -+scan_sig: -+ ldrb r5, [r8], #1 -+ -+ cmp r5, #41 /* ')' */ -+ beq done -+ -+ cmp r5, #70 /* 'F' */ -+ beq float -+ -+ cmp r5, #68 /* 'D' */ -+ beq double -+ -+ cmp r5, #74 /* 'J' */ -+ beq long -+ -+skip_brackets: -+ cmp r5, #91 /* '[' */ -+ itt eq -+ ldrbeq r5, [r8], #1 -+ beq skip_brackets -+ -+ cmp r5, #76 /* 'L' */ -+ bne int -+ -+skip_ref: -+ ldrb r5, [r8], #1 -+ cmp r5, #59 /* ';' */ -+ bne skip_ref -+ -+int: -+ cbz r7, stack_int -+ -+ subs r7, r7, #1 -+ ite ne -+ ldrne r2, [lr], #4 -+ ldreq r3, [lr], #4 -+ -+ b scan_sig -+ -+float: -+ cbz r6, no_backfill -+ -+ sub r5, r6, #1 -+ mov r6, #0 -+ b load_float -+ -+no_backfill: -+ cbz r4, stack_int -+ -+ sub r4, r4, #1 -+ mov r5, r4 -+ -+load_float: -+ add lr, lr, #4 -+ tbb [pc, r5] -+ -+float_table: -+ .byte (s15-float_table)/2 -+ .byte (s14-float_table)/2 -+ .byte (s13-float_table)/2 -+ .byte (s12-float_table)/2 -+ .byte (s11-float_table)/2 -+ .byte (s10-float_table)/2 -+ .byte (s9-float_table)/2 -+ .byte (s8-float_table)/2 -+ .byte (s7-float_table)/2 -+ .byte (s6-float_table)/2 -+ .byte (s5-float_table)/2 -+ .byte (s4-float_table)/2 -+ .byte (s3-float_table)/2 -+ .byte (s2-float_table)/2 -+ .byte (s1-float_table)/2 -+ .byte (s0-float_table)/2 -+ -+stack_int: -+ ldr r5, [lr], #4 -+ str r5, [ip], #4 -+ b scan_sig -+ -+s0: -+ vldr s0, [lr, #-4] -+ b scan_sig -+s1: -+ vldr s1, [lr, #-4] -+ b scan_sig -+s2: -+ vldr s2, [lr, #-4] -+ b scan_sig -+s3: -+ vldr s3, [lr, #-4] -+ b scan_sig -+s4: -+ vldr s4, [lr, #-4] -+ b scan_sig -+s5: -+ vldr s5, [lr, #-4] -+ b scan_sig -+s6: -+ vldr s6, [lr, #-4] -+ b scan_sig -+s7: -+ vldr s7, [lr, #-4] -+ b scan_sig -+s8: -+ vldr s8, [lr, #-4] -+ b scan_sig -+s9: -+ vldr s9, [lr, #-4] -+ b scan_sig -+s10: -+ vldr s10, [lr, #-4] -+ b scan_sig -+s11: -+ vldr s11, [lr, #-4] -+ b scan_sig -+s12: -+ vldr s12, [lr, #-4] -+ b scan_sig -+s13: -+ vldr s13, [lr, #-4] -+ b scan_sig -+s14: -+ vldr s14, [lr, #-4] -+ b scan_sig -+s15: -+ vldr s15, [lr, #-4] -+ b scan_sig -+ -+long: -+ cmp r7, #2 -+ mov r7, #0 -+ bne stack_long -+ -+ ldmia lr!, {r2, r3} -+ b scan_sig -+ -+double: -+ lsrs r5, r4, #1 -+ it cs -+ movcs r6, r4 -+ -+ lsls r4, r5, #1 -+ beq stack_double -+ -+ sub r4, r4, #2 -+ add lr, lr, #8 -+ tbb [pc, r5] -+ -+double_table: -+ .byte 0 -+ .byte (d7-double_table)/2 -+ .byte (d6-double_table)/2 -+ .byte (d5-double_table)/2 -+ .byte (d4-double_table)/2 -+ .byte (d3-double_table)/2 -+ .byte (d2-double_table)/2 -+ .byte (d1-double_table)/2 -+ .byte (d0-double_table)/2 -+ .align 2 -+d0: -+ vldr d0, [lr, #-8] -+ b scan_sig -+d1: -+ vldr d1, [lr, #-8] -+ b scan_sig -+d2: -+ vldr d2, [lr, #-8] -+ b scan_sig -+d3: -+ vldr d3, [lr, #-8] -+ b scan_sig -+d4: -+ vldr d4, [lr, #-8] -+ b scan_sig -+d5: -+ vldr d5, [lr, #-8] -+ b scan_sig -+d6: -+ vldr d6, [lr, #-8] -+ b scan_sig -+d7: -+ vldr d7, [lr, #-8] -+ b scan_sig -+ -+stack_double: -+ mov r6, #0 -+ -+stack_long: -+ /* Ensure address is 8 byte aligned */ -+ add ip, ip, #7 -+ bic ip, ip, #7 -+ -+ ldr r5, [lr], #4 -+ str r5, [ip], #4 -+ ldr r5, [lr], #4 -+ str r5, [ip], #4 -+ b scan_sig -+ -+done: -+ /* Call the function */ -+ blx r11 -+ -+ add sp, sp, r10 /* Pop argument area */ -+ -+ ldr r4, [sp, #32] /* Reload ostack for */ -+ /* address of return value */ -+ -+ ldrb r5, [r8] /* Return type */ -+ -+ cmp r5, #86 /* 'V' */ -+ beq return -+ -+ cmp r5, #68 /* 'D' */ -+ beq return_double -+ -+ cmp r5, #70 /* 'F' */ -+ beq return_float -+ -+ str r0, [r4], #4 /* Low word */ -+ -+ cmp r5, #74 /* 'J' */ -+ it eq -+ streq r1, [r4], #4 /* High word */ -+ -+return: -+ mov r0, r4 /* return ostack */ -+ ldmfd sp!, {r4, r5, r6, r7, r8, r10, r11, lr} -+ bx lr -+ -+return_float: -+ vstr s0, [r4] -+ add r4, r4, #4 -+ b return -+ -+return_double: -+ vstr d0, [r4] -+ add r4, r4, #8 -+ b return -diff --git a/src/os/linux/arm/callNativeEABIHardARM.S b/src/os/linux/arm/callNativeEABIHardARM.S -new file mode 100644 -index 0000000..3a31acd ---- /dev/null -+++ b/src/os/linux/arm/callNativeEABIHardARM.S -@@ -0,0 +1,266 @@ -+/* -+ * Copyright (C) 2011, 2012 Robert Lougher . -+ * -+ * This file is part of JamVM. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2, -+ * or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -+ */ -+ -+ .text -+ .align 2 -+ .global callJNIMethod -+ .type callJNIMethod,function -+ -+/* -+ * Arguments passed in: -+ * -+ * r0 JNIEnv -+ * r1 class or NULL -+ * r2 sig -+ * r3 extra arg -+ * sp + 0 ostack -+ * sp + 4 function pntr -+ * sp + 8 args count -+ */ -+ -+/* Register usage : -+ * -+ * lr ostack pntr -+ * ip scratch -+ * r11 function pntr -+ * r10 fp backfill -+ * r8 fp reg -+ * r7 int reg -+ * r6 args pntr -+ * r5 sig pntr -+ * r4 extra stack -+ * r3, r2 outgoing int args -+ * r1 outgoing class or this pntr -+ * r0 outgoing JNIEnv (as passed in) -+ * -+ * s0 - s16 (d0 - d7) outgoing float args -+ */ -+ -+callJNIMethod: -+ stmfd sp!, {r4, r5, r6, r7, r8, r10, r11, lr} -+ ldr lr, [sp, #32] /* get ostack pntr */ -+ ldr r11, [sp, #36] /* get function pntr */ -+ -+ cmp r1, #0 /* is method non-static? */ -+ ldreq r1, [lr], #4 /* yes, load r1 with "this" */ -+ -+ mov r4, r3 -+ sub sp, sp, r4 /* allocate room for stacked */ -+ add r5, r2, #1 /* init sig pntr -- skipping '(' */ -+ -+ mov r6, sp /* init loop pntr */ -+ -+ mov r7, #2 -+ mov r8, #16 -+ mov r10, #0 -+ -+scan_sig: -+ ldrb ip, [r5], #1 -+ -+ cmp ip, #41 /* ')' */ -+ beq done -+ -+ cmp ip, #70 /* 'F' */ -+ beq float -+ -+ cmp ip, #68 /* 'D' */ -+ beq double -+ -+ cmp ip, #74 /* 'J' */ -+ beq long -+ -+skip_brackets: -+ cmp ip, #91 /* '[' */ -+ ldreqb ip, [r5], #1 -+ beq skip_brackets -+ -+ cmp ip, #76 /* 'L' */ -+ bne int -+ -+skip_ref: -+ ldrb ip, [r5], #1 -+ cmp ip, #59 /* ';' */ -+ bne skip_ref -+ -+int: -+ cmp r7, #0 -+ beq stack_int -+ -+ subs r7, r7, #1 -+ -+ ldrne r2, [lr], #4 -+ ldreq r3, [lr], #4 -+ -+ b scan_sig -+ -+stack_int: -+ ldr ip, [lr], #4 -+ str ip, [r6], #4 -+ b scan_sig -+ -+float: -+ cmp r10, #0 -+ beq no_backfill -+ -+ sub ip, r10, #1 -+ mov r10, #0 -+ b load_float -+ -+no_backfill: -+ cmp r8, #0 -+ beq stack_int -+ -+ sub r8, r8, #1 -+ mov ip, r8 -+ -+load_float: -+ add lr, lr, #4 -+ add pc, pc, ip, lsl #3 -+ nop -+ -+ flds s15, [lr, #-4] -+ b scan_sig -+ flds s14, [lr, #-4] -+ b scan_sig -+ flds s13, [lr, #-4] -+ b scan_sig -+ flds s12, [lr, #-4] -+ b scan_sig -+ flds s11, [lr, #-4] -+ b scan_sig -+ flds s10, [lr, #-4] -+ b scan_sig -+ flds s9, [lr, #-4] -+ b scan_sig -+ flds s8, [lr, #-4] -+ b scan_sig -+ flds s7, [lr, #-4] -+ b scan_sig -+ flds s6, [lr, #-4] -+ b scan_sig -+ flds s5, [lr, #-4] -+ b scan_sig -+ flds s4, [lr, #-4] -+ b scan_sig -+ flds s3, [lr, #-4] -+ b scan_sig -+ flds s2, [lr, #-4] -+ b scan_sig -+ flds s1, [lr, #-4] -+ b scan_sig -+ flds s0, [lr, #-4] -+ b scan_sig -+ -+long: -+ cmp r7, #2 -+ mov r7, #0 -+ bne stack_long -+ -+ ldr r2, [lr], #4 -+ ldr r3, [lr], #4 -+ b scan_sig -+ -+double: -+ lsrs ip, r8, #1 -+ movcs r10, r8 -+ -+ lsls r8, ip, #1 -+ beq stack_double -+ -+ sub r8, r8, #2 -+ add lr, lr, #8 -+ add pc, pc, ip, lsl #3 -+ nop -+ nop -+ nop -+ -+ fldd d7, [lr, #-8] -+ b scan_sig -+ fldd d6, [lr, #-8] -+ b scan_sig -+ fldd d5, [lr, #-8] -+ b scan_sig -+ fldd d4, [lr, #-8] -+ b scan_sig -+ fldd d3, [lr, #-8] -+ b scan_sig -+ fldd d2, [lr, #-8] -+ b scan_sig -+ fldd d1, [lr, #-8] -+ b scan_sig -+ fldd d0, [lr, #-8] -+ b scan_sig -+ -+stack_double: -+ mov r10, #0 -+ -+stack_long: -+ /* Ensure address is 8 byte aligned */ -+ add r6, r6, #7 -+ bic r6, r6, #7 -+ -+ ldr ip, [lr], #4 -+ str ip, [r6], #4 -+ ldr ip, [lr], #4 -+ str ip, [r6], #4 -+ b scan_sig -+ -+done: -+ /* Call the function */ -+#if defined(__ARM_ARCH_4__) || defined(__ARM_ARCH_4T__) -+ mov lr, pc -+ bx r11 -+#else -+ blx r11 -+#endif -+ -+ add sp, sp, r4 /* Pop argument area */ -+ ldr r4, [sp, #32] /* Reload ostack for */ -+ /* address of return value */ -+ ldrb ip, [r5] /* Return type */ -+ -+ cmp ip, #86 /* 'V' */ -+ beq return -+ -+ cmp ip, #68 /* 'D' */ -+ beq return_double -+ -+ cmp ip, #70 /* 'F' */ -+ beq return_float -+ -+ str r0, [r4], #4 /* Low word */ -+ -+ cmp ip, #74 /* 'J' */ -+ streq r1, [r4], #4 /* High word */ -+ -+return: -+ mov r0, r4 /* return ostack */ -+ ldmfd sp!, {r4, r5, r6, r7, r8, r10, r11, lr} -+ bx lr -+ -+return_float: -+ add r4, r4, #4 -+ fsts s0, [r4, #-4] -+ b return -+ -+return_double: -+ add r4, r4, #8 -+ fstd d0, [r4, #-8] -+ b return -diff --git a/src/os/linux/arm/dll_md.c b/src/os/linux/arm/dll_md.c -index f5df90e..39bdf7c 100644 ---- a/src/os/linux/arm/dll_md.c -+++ b/src/os/linux/arm/dll_md.c -@@ -1,6 +1,6 @@ - /* -- * Copyright (C) 2003, 2004, 2005, 2006, 2007 -- * Robert Lougher . -+ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2011 -+ * Robert Lougher . - * - * This file is part of JamVM. - * -@@ -31,6 +31,61 @@ - * out stack requirements and then to push arguments. To - * save the first scan at call time, the signature is pre- - * scanned and stack requirement stored in the extra argument. */ -+ -+#ifdef __ARM_PCS_VFP -+int nativeExtraArg(MethodBlock *mb) { -+ char *sig = mb->type; -+ int fp_backfill = 0; -+ int stack_args = 0; -+ int int_args = 2; -+ int fp_args = 16; -+ -+ while(*++sig != ')') -+ switch(*sig) { -+ case 'J': -+ if(int_args < 2) -+ stack_args = (stack_args + 15) & ~7; -+ int_args = 0; -+ break; -+ -+ case 'D': -+ fp_backfill |= fp_args & 1; -+ fp_args &= ~1; -+ -+ if(fp_args == 0) { -+ stack_args = (stack_args + 15) & ~7; -+ fp_backfill = 0; -+ } else -+ fp_args -= 2; -+ break; -+ -+ case 'F': -+ if(fp_backfill) -+ fp_backfill = 0; -+ else { -+ if(fp_args == 0) -+ stack_args += 4; -+ else -+ fp_args--; -+ } -+ break; -+ -+ default: -+ if(int_args == 0) -+ stack_args += 4; -+ else -+ int_args--; -+ -+ if(*sig == '[') -+ while(*++sig == '['); -+ if(*sig == 'L') -+ while(*++sig != ';'); -+ break; -+ } -+ -+ return (stack_args + 7) & ~7; -+} -+#else - int nativeExtraArg(MethodBlock *mb) { - char *sig = mb->type; - int args = 0; -@@ -57,7 +112,7 @@ int nativeExtraArg(MethodBlock *mb) { - native method, so minimum stack requirement is 8 bytes. */ - return args < 8 ? 8 : args; - } -- -+#endif - #else - - /* Under OABI, arguments can be copied onto the stack "as is" --- -2.17.1 - -- cgit v1.2.3 From 2995be77e1f81ca3d90f18e0e819952ea02003ad Mon Sep 17 00:00:00 2001 From: Simon South Date: Mon, 1 Jun 2020 13:15:32 -0400 Subject: gnu: jamvm: Add aarch64-linux support. * gnu/packages/java.scm (classpath-devel)[source]: Add (existing) patch. (jamvm)[source]: Add patches. [arguments]: Inherit non-overridden arguments (particularly #:phases) from jamvm-1-bootstrap. * gnu/packages/patches/jamvm-2.0.0-aarch64-support.patch: New file. * gnu/packages/patches/jamvm-2.0.0-opcode-guard.patch: New file. * gnu/local.mk (dist_patch_DATA): Add files. Signed-off-by: Efraim Flashner --- gnu/local.mk | 2 + gnu/packages/java.scm | 14 +- .../patches/jamvm-2.0.0-aarch64-support.patch | 645 +++++++++++++++++++++ .../patches/jamvm-2.0.0-opcode-guard.patch | 35 ++ 4 files changed, 691 insertions(+), 5 deletions(-) create mode 100644 gnu/packages/patches/jamvm-2.0.0-aarch64-support.patch create mode 100644 gnu/packages/patches/jamvm-2.0.0-opcode-guard.patch diff --git a/gnu/local.mk b/gnu/local.mk index df098708e9..4f0d8fb537 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1116,7 +1116,9 @@ dist_patch_DATA = \ %D%/packages/patches/jacal-fix-texinfo.patch \ %D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \ %D%/packages/patches/jamvm-1.5.1-armv7-support.patch \ + %D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \ %D%/packages/patches/jamvm-2.0.0-disable-branch-patching.patch \ + %D%/packages/patches/jamvm-2.0.0-opcode-guard.patch \ %D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch \ %D%/packages/patches/java-commons-collections-fix-java8.patch \ %D%/packages/patches/java-jeromq-fix-tests.patch \ diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 27a6ebc437..8c4b591735 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -713,7 +713,8 @@ machine."))) (file-name (string-append "classpath-" version "-checkout")) (sha256 (base32 - "1v2rww76ww322mpg3s12a1kkc6gkp31bm9gcxs532h0wq285fiw4")))) + "1v2rww76ww322mpg3s12a1kkc6gkp31bm9gcxs532h0wq285fiw4")) + (patches (search-patches "classpath-aarch64-support.patch")))) (arguments `(#:make-flags ;; Ensure that the initial heap size is smaller than the maximum @@ -779,7 +780,9 @@ machine."))) (base32 "1nl0zxz8y5x8gwsrm7n32bry4dx8x70p8z3s9jbdvs8avyb8whkn")) (patches - (search-patches "jamvm-2.0.0-disable-branch-patching.patch")) + (search-patches "jamvm-2.0.0-disable-branch-patching.patch" + "jamvm-2.0.0-opcode-guard.patch" + "jamvm-2.0.0-aarch64-support.patch")) (snippet '(begin ;; Remove precompiled software. @@ -787,9 +790,10 @@ machine."))) #t)))) (build-system gnu-build-system) (arguments - `(#:configure-flags - (list (string-append "--with-classpath-install-dir=" - (assoc-ref %build-inputs "classpath"))))) + (substitute-keyword-arguments (package-arguments jamvm-1-bootstrap) + ((#:configure-flags _) + '(list (string-append "--with-classpath-install-dir=" + (assoc-ref %build-inputs "classpath")))))) (inputs `(("classpath" ,classpath-devel) ("ecj-javac-wrapper" ,ecj-javac-wrapper) diff --git a/gnu/packages/patches/jamvm-2.0.0-aarch64-support.patch b/gnu/packages/patches/jamvm-2.0.0-aarch64-support.patch new file mode 100644 index 0000000000..b67d8b4584 --- /dev/null +++ b/gnu/packages/patches/jamvm-2.0.0-aarch64-support.patch @@ -0,0 +1,645 @@ +From a44154f7a18496cc3e5fc0b1b2ea69523ebc623a Mon Sep 17 00:00:00 2001 +From: Simon South +Date: Mon, 1 Jun 2020 07:09:34 -0400 +Subject: [PATCH] Add support for aarch64 on GNU/Linux + +--- + AUTHORS | 1 + + README | 2 +- + configure.ac | 7 +- + src/arch/Makefile.am | 2 +- + src/arch/aarch64.h | 147 +++++++++++++++++++++ + src/jam.c | 3 +- + src/os/linux/Makefile.am | 2 +- + src/os/linux/aarch64/Makefile.am | 28 ++++ + src/os/linux/aarch64/callNative.S | 212 ++++++++++++++++++++++++++++++ + src/os/linux/aarch64/dll_md.c | 59 +++++++++ + src/os/linux/aarch64/init.c | 51 +++++++ + 11 files changed, 508 insertions(+), 6 deletions(-) + create mode 100644 src/arch/aarch64.h + create mode 100644 src/os/linux/aarch64/Makefile.am + create mode 100644 src/os/linux/aarch64/callNative.S + create mode 100644 src/os/linux/aarch64/dll_md.c + create mode 100644 src/os/linux/aarch64/init.c + +diff --git a/AUTHORS b/AUTHORS +index e1334fe..6fd0eeb 100644 +--- a/AUTHORS ++++ b/AUTHORS +@@ -1 +1,2 @@ + Robert Lougher ++Simon South +diff --git a/README b/README +index c9d80bb..0e93d00 100644 +--- a/README ++++ b/README +@@ -77,7 +77,7 @@ versions of JamVM also includes stubs for common method signatures. + The following platforms/architectures are recognised by configure. Those + marked with * must be configured to use libffi. + +-- Linux: x86, x86_64, ARM, PowerPC, PowerPC64(*), MIPS, HPPA ++- Linux: x86, x86_64, ARM, ARM64, PowerPC, PowerPC64(*), MIPS, HPPA + - FreeBSD: x86, x86_64, ARM, PowerPC, PowerPC64(*), SPARC(*) + - OpenBSD: x86, x86_64, ARM, PowerPC, PowerPC64(*), SPARC(*) + - Mac OS X/Darwin: x86, x86_64, ARM, PowerPC, PowerPC64 +diff --git a/configure.ac b/configure.ac +index 138b7e6..e7051d7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -46,6 +46,7 @@ x86_64-*-freebsd*) host_os=bsd libdl_needed=no ;; + arm*-*-linux*) host_cpu=arm host_os=linux interp_cflags=-marm ;; + arm*-*-openbsd*) host_cpu=arm host_os=bsd libdl_needed=no ;; + arm*-*-freebsd*) host_cpu=arm host_os=bsd libdl_needed=no ;; ++aarch64*-*-linux*) host_cpu=aarch64 host_os=linux ;; + powerpc*-*-linux*) host_cpu=powerpc host_os=linux ;; + powerpc*-*-openbsd*) host_cpu=powerpc host_os=bsd libdl_needed=no ;; + powerpc*-*-freebsd*) host_cpu=powerpc host_os=bsd libdl_needed=no ;; +@@ -155,10 +156,11 @@ AC_ARG_ENABLE(runtime-reloc-checks, + + AC_ARG_ENABLE(int-inlining, + [AS_HELP_STRING(--enable-int-inlining,enable inline threaded version of the interpreter +- (by default enabled on x86_64, i386, powerpc, mips and arm, ++ (by default enabled on x86_64, i386, powerpc, mips, arm and aarch64, + disabled otherwise))],, + [if test "$host_cpu" = x86_64 -o "$host_cpu" = i386 -o "$host_cpu" = x86 -o \ +- "$host_cpu" = powerpc -o "$host_cpu" = arm -o "$host_cpu" = mips; then ++ "$host_cpu" = powerpc -o "$host_cpu" = arm -o "$host_cpu" = mips -o \ ++ "$host_cpu" = aarch64; then + enable_int_inlining=yes + else + enable_int_inlining=no +@@ -407,6 +409,7 @@ AC_CONFIG_FILES( + src/os/linux/x86_64/Makefile \ + src/os/linux/parisc/Makefile \ + src/os/linux/mips/Makefile \ ++ src/os/linux/aarch64/Makefile \ + src/os/darwin/i386/Makefile \ + src/os/darwin/arm/Makefile \ + src/os/darwin/powerpc/Makefile \ +diff --git a/src/arch/Makefile.am b/src/arch/Makefile.am +index 7580a1b..4e2a4f9 100644 +--- a/src/arch/Makefile.am ++++ b/src/arch/Makefile.am +@@ -19,4 +19,4 @@ + ## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + ## + +-EXTRA_DIST = powerpc.h arm.h i386.h x86_64.h parisc.h mips.h sparc.h ++EXTRA_DIST = powerpc.h arm.h i386.h x86_64.h parisc.h mips.h sparc.h aarch64.h +diff --git a/src/arch/aarch64.h b/src/arch/aarch64.h +new file mode 100644 +index 0000000..1912e79 +--- /dev/null ++++ b/src/arch/aarch64.h +@@ -0,0 +1,147 @@ ++/* ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 ++ * Robert Lougher . ++ * Copyright (C) 2020 Simon South . ++ * ++ * This file is part of JamVM. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++#include ++ ++#define OS_ARCH "aarch64" ++ ++#define HANDLER_TABLE_T static const void ++#define DOUBLE_1_BITS 0x3ff0000000000000LL ++ ++#define READ_DBL(v,p,l) v = ((u8)p[0]<<56)|((u8)p[1]<<48)|((u8)p[2]<<40) \ ++ |((u8)p[3]<<32)|((u8)p[4]<<24)|((u8)p[5]<<16) \ ++ |((u8)p[6]<<8)|(u8)p[7]; p+=8 ++ ++/* Needed for i386 -- empty here */ ++#define FPU_HACK ++ ++#define COMPARE_AND_SWAP_64(addr, old_val, new_val) \ ++({ \ ++ int result, read_val; \ ++ __asm__ __volatile__ (" \ ++ 1: ldaxr %2, %1; \ ++ cmp %2, %3; \ ++ b.ne 2f; \ ++ stlxr %w0, %4, %1; \ ++ cmp %w0, wzr; \ ++ b.ne 1b; \ ++ 2: cset %w0, eq;" \ ++ : "=&r" (result), "+Q" (*addr), "=&r" (read_val) \ ++ : "r" (old_val), "r" (new_val) \ ++ : "cc"); \ ++ result; \ ++}) ++ ++#define COMPARE_AND_SWAP_32(addr, old_val, new_val) \ ++({ \ ++ int result, read_val; \ ++ __asm__ __volatile__ (" \ ++ 1: ldaxr %w2, %1; \ ++ cmp %w2, %w3; \ ++ b.ne 2f; \ ++ stlxr %w0, %w4, %1; \ ++ cmp %w0, wzr; \ ++ b.ne 1b; \ ++ 2: cset %w0, eq;" \ ++ : "=&r" (result), "+Q" (*addr), "=&r" (read_val) \ ++ : "r" (old_val), "r" (new_val) \ ++ : "cc"); \ ++ result; \ ++}) ++ ++#define COMPARE_AND_SWAP(addr, old_val, new_val) \ ++ COMPARE_AND_SWAP_64(addr, old_val, new_val) ++ ++#define LOCKWORD_READ(addr) \ ++({ \ ++ uintptr_t result; \ ++ __asm__ __volatile__ (" \ ++ ldar %0, %1;" \ ++ : "=r" (result) \ ++ : "Q" (*addr) \ ++ : "cc"); \ ++ result; \ ++}) ++ ++#define LOCKWORD_WRITE(addr, value) \ ++({ \ ++ __asm__ __volatile__ (" \ ++ stlr %1, %0;" \ ++ : "=Q" (*addr) \ ++ : "r" (value) \ ++ : "cc"); \ ++}) ++ ++#define LOCKWORD_COMPARE_AND_SWAP(addr, old_val, new_val) \ ++ COMPARE_AND_SWAP_64(addr, old_val, new_val) ++ ++#define FLUSH_CACHE(addr, length) \ ++{ \ ++ uintptr_t start = (uintptr_t) (addr); \ ++ uintptr_t end = start + length; \ ++ uintptr_t i; \ ++ \ ++ for(i = start & aarch64_data_cache_line_mask; \ ++ i < end; \ ++ i += aarch64_data_cache_line_len) \ ++ __asm__ ("dc cvau, %0" :: "r" (i)); \ ++ \ ++ __asm__ ("dsb ish"); \ ++ \ ++ for(i = start & aarch64_instruction_cache_line_mask; \ ++ i < end; \ ++ i += aarch64_instruction_cache_line_len) \ ++ __asm__ ("ic ivau, %0" :: "r" (i)); \ ++ \ ++ __asm__ ("dsb ish; isb"); \ ++} ++ ++#define GEN_REL_JMP(target_addr, patch_addr, patch_size) \ ++({ \ ++ int patched = FALSE; \ ++ \ ++ if(patch_size >= 4) { \ ++ /* Guard against the pointer difference being \ ++ larger than the signed range */ \ ++ long long offset = (uintptr_t)(target_addr) - \ ++ (uintptr_t)(patch_addr); \ ++ \ ++ if(offset >= -1<<28 && offset < 1<<28) { \ ++ *(uint32_t*)(patch_addr) = offset>>2 & 0x03ffffff \ ++ | 0x14000000; \ ++ patched = TRUE; \ ++ } \ ++ } \ ++ patched; \ ++}) ++ ++#define MBARRIER() __asm__ ("dmb ish" ::: "memory") ++#define RMBARRIER() __asm__ ("dmb ishld" ::: "memory") ++#define WMBARRIER() __asm__ ("dmb ishst" ::: "memory") ++#define JMM_LOCK_MBARRIER() __asm__ ("dmb ish" ::: "memory") ++#define JMM_UNLOCK_MBARRIER() JMM_LOCK_MBARRIER() ++ ++/* Defined in src/os/linux/aarch64/init.c */ ++extern unsigned char aarch64_data_cache_line_len; ++extern uintptr_t aarch64_data_cache_line_mask; ++extern unsigned char aarch64_instruction_cache_line_len; ++extern uintptr_t aarch64_instruction_cache_line_mask; +diff --git a/src/jam.c b/src/jam.c +index 052f84a..c97524a 100644 +--- a/src/jam.c ++++ b/src/jam.c +@@ -98,7 +98,8 @@ void showUsage(char *name) { + void showVersionAndCopyright() { + printf("java version \"%s\"\n", JAVA_COMPAT_VERSION); + printf("JamVM version %s\n", VERSION); +- printf("Copyright (C) 2003-2014 Robert Lougher \n\n"); ++ printf("Copyright (C) 2003-2014 Robert Lougher \n"); ++ printf("Portions Copyright (C) 2020 Simon South \n\n"); + printf("This program is free software; you can redistribute it and/or\n"); + printf("modify it under the terms of the GNU General Public License\n"); + printf("as published by the Free Software Foundation; either version 2,\n"); +diff --git a/src/os/linux/Makefile.am b/src/os/linux/Makefile.am +index 542094e..83e7dfe 100644 +--- a/src/os/linux/Makefile.am ++++ b/src/os/linux/Makefile.am +@@ -20,7 +20,7 @@ + ## + + SUBDIRS = @arch@ +-DIST_SUBDIRS = powerpc arm i386 x86_64 parisc mips ++DIST_SUBDIRS = powerpc arm i386 x86_64 parisc mips aarch64 + + noinst_LTLIBRARIES = libos.la + libos_la_SOURCES = os.c +diff --git a/src/os/linux/aarch64/Makefile.am b/src/os/linux/aarch64/Makefile.am +new file mode 100644 +index 0000000..0e5134f +--- /dev/null ++++ b/src/os/linux/aarch64/Makefile.am +@@ -0,0 +1,28 @@ ++## ++## Copyright (C) 2003, 2004, 2005, 2006, 2007, 2010, 2011, 2012 ++## Robert Lougher . ++## ++## File added by Simon South . ++## ++## This file is part of JamVM. ++## ++## This program is free software; you can redistribute it and/or ++## modify it under the terms of the GNU General Public License ++## as published by the Free Software Foundation; either version 2, ++## or (at your option) any later version. ++## ++## This program is distributed in the hope that it will be useful, ++## but WITHOUT ANY WARRANTY; without even the implied warranty of ++## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++## GNU General Public License for more details. ++## ++## You should have received a copy of the GNU General Public License ++## along with this program; if not, write to the Free Software ++## Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++## ++ ++noinst_LTLIBRARIES = libnative.la ++libnative_la_SOURCES = init.c dll_md.c callNative.S ++ ++AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_srcdir)/src ++AM_CCASFLAGS = -I$(top_builddir)/src +diff --git a/src/os/linux/aarch64/callNative.S b/src/os/linux/aarch64/callNative.S +new file mode 100644 +index 0000000..e067c4f +--- /dev/null ++++ b/src/os/linux/aarch64/callNative.S +@@ -0,0 +1,212 @@ ++/* ++ * Copyright (C) 2008, 2009, 2011, 2012 Robert Lougher . ++ * Copyright (C) 2020 Simon South . ++ * ++ * This file is part of JamVM. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++#include "config.h" ++ ++#ifndef USE_FFI ++ .text ++ .arch armv8-a ++ .align 2 ++ .global callJNIMethod ++ .type callJNIMethod,function ++ ++/* ++ * Arguments passed in: ++ * ++ * x0 JNIEnv ++ * x1 class or NULL ++ * x2 sig ++ * w3 extra arg ++ * x4 ostack ++ * x5 function pntr ++ * w6 args count ++ */ ++ ++/* Register usage: ++ * ++ * x20 ostack ++ * x19 sig pntr ++ * x16 function pntr ++ * x15 ostack pntr ++ * x14 args pntr ++ * x13 float/double handler ++ * x12 int/long handler ++ * w11 fp regs remaining ++ * w10 int regs remaining ++ * x9 scratch ++ * x2-x7 outgoing int args ++ * x1 outgoing class or this pntr ++ * x0 outgoing JNIEnv (as passed in) ++ * ++ * d0 - d7 outgoing float args ++ */ ++ ++callJNIMethod: ++ stp x29, x30, [sp, #-32]! ++ mov x29, sp ++ stp x19, x20, [x29, #16] ++ ++ sub sp, sp, w3 /* allocate room for stacked args */ ++ mov x14, sp ++ ++ mov x20, x4 /* preserve ostack */ ++ add x19, x2, #1 /* init sig pntr -- skipping '(' */ ++ ++ mov x16, x5 /* save function pntr */ ++ mov x15, x20 /* init ostack pntr */ ++ ++ adr x13, fp_reg_handlers-8 ++ adr x12, int_reg_handlers-8 ++ ++ mov w11, #8 /* fp regs remaining */ ++ mov w10, #6 /* int regs remaining */ ++ ++ cbnz x1, scan_sig /* is method non-static? */ ++ ldr x1, [x15], #8 /* yes, load x1 with "this" */ ++ ++scan_sig: ++ ldrb w9, [x19], #1 /* get next sig char */ ++ ++ cmp w9, #41 /* ')' */ ++ b.eq done ++ ++ cmp w9, #74 /* 'J' */ ++ b.eq long ++ ++ cmp w9, #70 /* 'F' */ ++ b.eq float ++ ++ cmp w9, #68 /* 'D' */ ++ b.eq double ++ ++skip_brackets: ++ cmp w9, #91 /* '[' */ ++ b.ne 1f ++ ldrb w9, [x19], #1 ++ b skip_brackets ++1: ++ cmp w9, #76 /* 'L' */ ++ b.ne int ++ ++skip_ref: ++ ldrb w9, [x19], #1 ++ cmp w9, #59 /* ';' */ ++ b.ne skip_ref ++ ++int: ++ ldr x9, [x15], #8 ++ cbz w10, stack_push ++ ++load_int_reg: ++ sub w10, w10, #1 ++ add x12, x12, #8 ++ br x12 ++ ++int_reg_handlers: ++ mov x2, x9 ++ b scan_sig ++ mov x3, x9 ++ b scan_sig ++ mov x4, x9 ++ b scan_sig ++ mov x5, x9 ++ b scan_sig ++ mov x6, x9 ++ b scan_sig ++ mov x7, x9 ++ b scan_sig ++ ++long: ++ ldr x9, [x15], #16 ++ cbz w10, stack_push ++ b load_int_reg ++ ++float: ++ ldr w9, [x15], #8 ++ cbz w11, stack_push ++ b load_fp_reg ++ ++double: ++ ldr x9, [x15], #16 ++ cbz w11, stack_push ++ ++load_fp_reg: ++ sub w11, w11, #1 ++ add x13, x13, #8 ++ br x13 ++ ++fp_reg_handlers: ++ fmov d0, x9 ++ b scan_sig ++ fmov d1, x9 ++ b scan_sig ++ fmov d2, x9 ++ b scan_sig ++ fmov d3, x9 ++ b scan_sig ++ fmov d4, x9 ++ b scan_sig ++ fmov d5, x9 ++ b scan_sig ++ fmov d6, x9 ++ b scan_sig ++ fmov d7, x9 ++ b scan_sig ++ ++stack_push: ++ str x9, [x14], #8 ++ b scan_sig ++ ++done: ++ /* Call the function */ ++ blr x16 ++ ++ mov sp, x29 /* Pop argument area */ ++ ++ ldrb w9, [x19] /* Return type */ ++ ++ cmp w9, #86 /* 'V' */ ++ b.eq return ++ ++ cmp w9, #68 /* 'D' */ ++ b.ne 2f ++ str d0, [x20], #16 ++ b return ++2: ++ cmp w9, #70 /* 'F' */ ++ b.ne 3f ++ str s0, [x20], #8 ++ b return ++3: ++ cmp w9, #74 /* 'J' */ ++ b.ne 4f ++ str x0, [x20], #16 ++ b return ++4: ++ str x0, [x20], #8 ++ ++return: ++ mov x0, x20 /* return ostack */ ++ ++ ldp x19, x20, [x29, #16] ++ ldp x29, x30, [sp], #32 ++ ret ++#endif +diff --git a/src/os/linux/aarch64/dll_md.c b/src/os/linux/aarch64/dll_md.c +new file mode 100644 +index 0000000..189f8a8 +--- /dev/null ++++ b/src/os/linux/aarch64/dll_md.c +@@ -0,0 +1,59 @@ ++/* ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2010, 2011 ++ * Robert Lougher . ++ * Copyright (C) 2020 Simon South . ++ * ++ * This file is part of JamVM. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++#include "jam.h" ++ ++#ifndef USE_FFI ++ ++int nativeExtraArg(MethodBlock *mb) { ++ char *sig = mb->type; ++ int stack_args = 0; ++ int int_args = 6; ++ int fp_args = 8; ++ ++ while(*++sig != ')') ++ switch(*sig) { ++ case 'F': ++ case 'D': ++ if(fp_args == 0) ++ stack_args += 8; ++ else ++ fp_args--; ++ ++ default: ++ if(int_args == 0) ++ stack_args += 8; ++ else ++ int_args--; ++ ++ if(*sig == '[') ++ while(*++sig == '['); ++ if(*sig == 'L') ++ while(*++sig != ';'); ++ break; ++ } ++ ++ /* Ensure the stack remains 16 byte aligned. */ ++ return (stack_args + 15) & ~15; ++} ++ ++#endif +diff --git a/src/os/linux/aarch64/init.c b/src/os/linux/aarch64/init.c +new file mode 100644 +index 0000000..b21dc55 +--- /dev/null ++++ b/src/os/linux/aarch64/init.c +@@ -0,0 +1,51 @@ ++/* ++ * Copyright (C) 2003, 2004, 2005, 2006, 2007 ++ * Robert Lougher . ++ * Copyright (C) 2020 Simon South . ++ * ++ * This file is part of JamVM. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version 2, ++ * or (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ++ */ ++ ++#include "arch/aarch64.h" ++ ++/* Length in bytes of the smallest line in the host system's data cache */ ++unsigned char aarch64_data_cache_line_len; ++ ++/* Mask used to align a virtual address to a line in the data cache */ ++uintptr_t aarch64_data_cache_line_mask; ++ ++/* Length in bytes of the smallest line in the host system's instruction ++ cache */ ++unsigned char aarch64_instruction_cache_line_len; ++ ++/* Mask used to align a virtual address to a line in the instruction cache */ ++uintptr_t aarch64_instruction_cache_line_mask; ++ ++void initialisePlatform() { ++ unsigned int cache_type; ++ ++ /* Extract information from the cache-type register, which describes aspects ++ of the host's cache configuration */ ++ __asm__ ("mrs %0, ctr_el0" : "=r" (cache_type)); ++ ++ aarch64_data_cache_line_len = 4 << ((cache_type >> 16) & 0x0f); ++ aarch64_data_cache_line_mask = ~(aarch64_data_cache_line_len - 1); ++ ++ aarch64_instruction_cache_line_len = 4 << (cache_type & 0x0f); ++ aarch64_instruction_cache_line_mask = ++ ~(aarch64_instruction_cache_line_len - 1); ++} +-- +2.26.2 + diff --git a/gnu/packages/patches/jamvm-2.0.0-opcode-guard.patch b/gnu/packages/patches/jamvm-2.0.0-opcode-guard.patch new file mode 100644 index 0000000000..5415c27a62 --- /dev/null +++ b/gnu/packages/patches/jamvm-2.0.0-opcode-guard.patch @@ -0,0 +1,35 @@ +From ca11b53896365c948426974cb90e8f71c70d123b Mon Sep 17 00:00:00 2001 +From: Simon South +Date: Sun, 31 May 2020 20:36:43 -0400 +Subject: [PATCH] Guard floating-point opcodes with explicit memory barrier + +--- + src/interp/engine/interp-inlining.h | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/src/interp/engine/interp-inlining.h b/src/interp/engine/interp-inlining.h +index 3339b0e..4ee5c5a 100644 +--- a/src/interp/engine/interp-inlining.h ++++ b/src/interp/engine/interp-inlining.h +@@ -78,8 +78,17 @@ + 4.3, we need to insert a label, and ensure its address + is taken (to stop it being optimised out). However, + this reduces performance on PowerPC by approx 1 - 2%. ++ ++ With gcc 5 and newer an asm statement with a "memory" ++ clobber argument explicitly sets a memory barrier for the ++ compiler, preventing it from reordering memory accesses ++ in a way that breaks decaching. + */ +-#if (__GNUC__ == 4) && (__GNUC_MINOR__ >= 3) ++#if (__GNUC__ > 4) ++#define DEF_GUARD_TABLE(level) /* none */ ++#define GUARD(opcode, level) __asm__("" ::: "memory"); ++#define GUARD_TBLS /* none */ ++#elif (__GNUC__ == 4) && (__GNUC_MINOR__ >= 3) + #define DEF_GUARD_TABLE(level) DEF_HANDLER_TABLE(level, GUARD) + #define GUARD(opcode, level) label(opcode, level, GUARD) + #define GUARD_TBLS , HNDLR_TBLS(GUARD) +-- +2.26.2 + -- cgit v1.2.3 From 793a3ca19428e669582639b1a25fc956dc6d24bf Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 27 Jun 2020 15:40:44 +0200 Subject: gnu: python-cython: Update to 0.29.20. * gnu/packages/python-xyz.scm (python-cython): Update to 0.29.20. --- gnu/packages/python-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 300277f045..5f52776bda 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -3999,14 +3999,14 @@ provides additional functionality on the produced Mallard documents.") (define-public python-cython (package (name "python-cython") - (version "0.29.17") + (version "0.29.20") (source (origin (method url-fetch) (uri (pypi-uri "Cython" version)) (sha256 (base32 - "1wnaz40hdw4mg5acz5gqb6bhjhn4cvfxg0xdzfy7aa6qn665hqb3")))) + "1ivih4zl5fc2yzb3z60i6rj5yrfbbas8n2xql4bzflr2zksimn92")))) (build-system python-build-system) ;; we need the full python package and not just the python-wrapper ;; because we need libpython3.3m.so -- cgit v1.2.3 From dfa99fcd2797e10e00dc9f6bfc78c1e0a3f9777d Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 27 Jun 2020 15:37:08 +0200 Subject: gnu: libyaml: Update to 0.2.5. * gnu/packages/web.scm (libyaml): Update to 0.2.5. --- gnu/packages/web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index cca722f6e9..ab680209a9 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -1488,7 +1488,7 @@ hash/signatures.") (define-public libyaml (package (name "libyaml") - (version "0.2.4") + (version "0.2.5") (source (origin (method url-fetch) @@ -1497,7 +1497,7 @@ hash/signatures.") version ".tar.gz")) (sha256 (base32 - "0mq5wf17ifcwwxq3kbimhi53jn3fg23vcynqpzxjcz3vfjlfs2nq")))) + "1x4fcw13r3lqy8ndydr3ili87wicplw2awbcv6r21qgyfndswhn6")))) (build-system gnu-build-system) (home-page "http://pyyaml.org/wiki/LibYAML") (synopsis "YAML 1.1 parser and emitter written in C") -- cgit v1.2.3 From 2a659af50c8a5e3113337b503339ce797b966e1e Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 27 Jun 2020 15:37:44 +0200 Subject: gnu: libyaml: Do not build static libraries. * gnu/packages/web.scm (libyaml)[arguments]: New field. --- gnu/packages/web.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index ab680209a9..cb877bcd7e 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -1499,6 +1499,8 @@ hash/signatures.") (base32 "1x4fcw13r3lqy8ndydr3ili87wicplw2awbcv6r21qgyfndswhn6")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (home-page "http://pyyaml.org/wiki/LibYAML") (synopsis "YAML 1.1 parser and emitter written in C") (description -- cgit v1.2.3 From 6a3ae2eec7c7ea06499e70343884ce576e2c29f8 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 27 Jun 2020 16:26:02 +0200 Subject: gnu: libcyaml: Update to 1.1.0. * gnu/packages/web.scm (libcyaml): Update to 1.1.0. --- gnu/packages/web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index cb877bcd7e..0835618ede 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -5018,7 +5018,7 @@ written in C. It is developed as part of the NetSurf project.") (define-public libcyaml (package (name "libcyaml") - (version "1.0.1") + (version "1.1.0") (source (origin (method git-fetch) @@ -5027,7 +5027,7 @@ written in C. It is developed as part of the NetSurf project.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0h5ydyqdl8kzh526np3jsi0pm7ks16nh1hjkdsjcd6pacw7y6i6z")))) + (base32 "0428p0rwq71nhh5nzcbapsbrjxa0x5l6h6ns32nxv7j624f0zd93")))) (build-system gnu-build-system) (arguments `(#:make-flags -- cgit v1.2.3 From 5e6d583954b8ca9c4ab2eed3347a92a3ad7ad6fb Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 2 Jul 2020 23:26:46 +0200 Subject: gnu: gdb@8.2: Inherit from the 'full' gdb. This reverts commit c007d868686fc2f9bf02a34150d4f0ac72b1f8d2, because later versions of Rust requires loading Python plugins. * gnu/packages/gdb.scm (gdb-minimal-8.2): Rename to ... (gdb-8.2): ... this. Adjust inheritance accordingly. * gnu/packages/rust.scm (rust-1.27)[native-inputs]: Adjust accordingly. --- gnu/packages/gdb.scm | 4 ++-- gnu/packages/rust.scm | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm index f2f272cc90..b836228506 100644 --- a/gnu/packages/gdb.scm +++ b/gnu/packages/gdb.scm @@ -131,9 +131,9 @@ written in C, C++, Ada, Objective-C, Pascal and more.") ;; This version of GDB is required by some of the Rust compilers, see ;; . -(define-public gdb-minimal-8.2 +(define-public gdb-8.2 (package - (inherit gdb-minimal) + (inherit gdb) (version "8.2.1") (source (origin (method url-fetch) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index fe43e72421..b084a6df9e 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -828,7 +828,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\" (native-inputs ;; FIXME: Rust 1.27 and some later versions require GDB 8.2 specifically. ;; See . - (alist-replace "gdb" (list gdb-minimal-8.2) + (alist-replace "gdb" (list gdb-8.2) (package-native-inputs base-rust))) (arguments (substitute-keyword-arguments (package-arguments base-rust) -- cgit v1.2.3 From 6ba3980e748099d9ee21abd246aeb86ed777744c Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 2 Jul 2020 23:27:14 +0200 Subject: gnu: Rust: Use gdb@8. * gnu/packages/rust.scm (rust-1.19)[native-inputs]: Remove GDB-MINIMAL. Add GDB-8.2. (rust-1.27)[native-inputs]: Remove. --- gnu/packages/rust.scm | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index b084a6df9e..9e753d6f99 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -420,7 +420,9 @@ test = { path = \"../libtest\" } `(("bison" ,bison) ; For the tests ("cmake" ,cmake-minimal) ("flex" ,flex) ; For the tests - ("gdb" ,gdb-minimal) ; For the tests + ;; FIXME: Rust 1.27 and some later versions require GDB 8.2 specifically. + ;; See . Use it on all Rusts for simplicity. + ("gdb" ,gdb-8.2) ; For the tests ("procps" ,procps) ; For the tests ("python-2" ,python-2) ("rustc-bootstrap" ,mrustc) @@ -825,11 +827,6 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\" "rust-bootstrap-stage0-test.patch" "rust-1.25-accept-more-detailed-gdb-lines.patch" "rust-reproducible-builds.patch"))))) - (native-inputs - ;; FIXME: Rust 1.27 and some later versions require GDB 8.2 specifically. - ;; See . - (alist-replace "gdb" (list gdb-8.2) - (package-native-inputs base-rust))) (arguments (substitute-keyword-arguments (package-arguments base-rust) ((#:phases phases) -- cgit v1.2.3 From 8a6898b60173ff9c70f53a5641335c2e99d51a7e Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Fri, 3 Jul 2020 10:12:04 +0200 Subject: gnu: wget: Cross-build fix. * gnu/packages/wget.scm (wget)[inputs]: Move lzip to ... [native-inputs]: ... here. --- gnu/packages/wget.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm index d7ac9e0c12..146097f37c 100644 --- a/gnu/packages/wget.scm +++ b/gnu/packages/wget.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner ;;; Copyright © 2017 Rutger Helling ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice +;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -56,10 +57,10 @@ (inputs `(("gnutls" ,gnutls) ("libidn2" ,libidn2) - ("libpsl" ,libpsl) - ("lzip" ,lzip))) + ("libpsl" ,libpsl))) (native-inputs - `(("pkg-config" ,pkg-config) + `(("lzip" ,lzip) + ("pkg-config" ,pkg-config) ("perl" ,perl) ("python" ,python) ;for testenv suite ("perl-http-daemon" ,perl-http-daemon) -- cgit v1.2.3 From ee392379a10b4b5639bbca6b9b8a08848a02301b Mon Sep 17 00:00:00 2001 From: Tanguy Le Carrour Date: Wed, 8 Jul 2020 14:02:47 +0200 Subject: gnu: r-rcpp: Update to 1.0.5. * gnu/packages/cran.scm (r-rcpp): Update to 1.0.5. Signed-off-by: Efraim Flashner --- gnu/packages/cran.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index ab5e57c0e2..459edb0e90 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -2003,13 +2003,13 @@ you to rapidly iterate while developing a package.") (define-public r-rcpp (package (name "r-rcpp") - (version "1.0.4.6") + (version "1.0.5") (source (origin (method url-fetch) (uri (cran-uri "Rcpp" version)) (sha256 - (base32 "00mk23zmrqn1c4mk9d6csjcbnl12wd7yicjk2ikmw5dyvdfngbs5")))) + (base32 "012wbj446k1wz6bp6bpf6h77ypvcsw69xvnax6qf6vyc7dj2qimq")))) (build-system r-build-system) (home-page "http://www.rcpp.org") (synopsis "Seamless R and C++ integration") -- cgit v1.2.3 From 695c8fc11a2f6d7adae03ae0924ca936b82350e0 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 9 Jul 2020 13:56:58 +0200 Subject: gnu: gnupg: Update to 2.2.21. * gnu/packages/gnupg.scm (gnupg): Update to 2.2.21. --- gnu/packages/gnupg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index daf4bc3b6e..038b585dfc 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -254,7 +254,7 @@ compatible to GNU Pth.") (define-public gnupg (package (name "gnupg") - (version "2.2.20") + (version "2.2.21") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnupg/gnupg-" version @@ -262,7 +262,7 @@ compatible to GNU Pth.") (patches (search-patches "gnupg-default-pinentry.patch")) (sha256 (base32 - "0c6a4v9p6qzhsw1pfcwc459bxpc8hma0w9z8iqb9khvligack9q4")))) + "1v3nirp9m7yxjkkcdixibckl379pdyr3mdx8b1k379szzdw35s31")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From 906eaf8cf77ed35b4000966f2530def997ee2874 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 10 Jul 2020 21:29:45 +0200 Subject: gnu: python-pygments: Update to 2.6.1. * gnu/packages/python-xyz.scm (python-pygments): Update to 2.6.1. [properties]: New field. (python2-pygments): Stay on version 2.5.2. --- gnu/packages/python-xyz.scm | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 5f52776bda..cd5df12b9a 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -3338,14 +3338,14 @@ text styles of documentation.") (define-public python-pygments (package (name "python-pygments") - (version "2.5.2") + (version "2.6.1") (source (origin (method url-fetch) (uri (pypi-uri "Pygments" version)) (sha256 (base32 - "1zmhnswy0wxfn0xprs9aqsvx2c3kmzfn2wx14q8cv3vpkxdamj4q")))) + "0i4gnd4q0mgkq0dp5wymn7ca8zjd8fgp63139svs6jf2c6h48wv4")))) (build-system python-build-system) (arguments ;; FIXME: Tests require sphinx, which depends on this. @@ -3354,10 +3354,21 @@ text styles of documentation.") (synopsis "Syntax highlighting") (description "Pygments is a syntax highlighting package written in Python.") - (license license:bsd-2))) + (license license:bsd-2) + (properties `((python2-variant . ,(delay python2-pygments)))))) +;; Pygments 2.6 and later does not support Python 2. (define-public python2-pygments - (package-with-python2 python-pygments)) + (let ((base (package-with-python2 (strip-python2-variant python-pygments)))) + (package + (inherit base) + (version "2.5.2") + (source (origin + (method url-fetch) + (uri (pypi-uri "Pygments" version)) + (sha256 + (base32 + "1zmhnswy0wxfn0xprs9aqsvx2c3kmzfn2wx14q8cv3vpkxdamj4q"))))))) (define-public python-bumpversion (package -- cgit v1.2.3 From 97849d6762e1d0865b6a17133c841eb5421c44d3 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 13 Jul 2020 23:48:31 +0200 Subject: gnu: python-urllib3: Remove unused input. * gnu/packages/python-web.scm (python-urllib3)[propagated-inputs]: Remove PYTHON-IPADDRESS. [properties]: New field. (python2-urllib3)[propagated-inputs]: Add PYTHON2-IPADDRESS. --- gnu/packages/python-web.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 030abef9c2..4b8a959570 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -1691,7 +1691,6 @@ authenticated session objects providing things like keep-alive.") ("python-certifi" ,python-certifi) ("python-cryptography" ,python-cryptography) ("python-idna" ,python-idna) - ("python-ipaddress" ,python-ipaddress) ("python-pyopenssl" ,python-pyopenssl) ("python-pysocks" ,python-pysocks))) (home-page "https://urllib3.readthedocs.io/") @@ -1700,6 +1699,7 @@ authenticated session objects providing things like keep-alive.") "Urllib3 supports features left out of urllib and urllib2 libraries. It can reuse the same socket connection for multiple requests, it can POST files, supports url redirection and retries, and also gzip and deflate decoding.") + (properties `((python2-variant . ,(delay python2-urllib3)))) (license license:expat))) ;; Some software requires an older version of urllib3, notably Docker. @@ -1715,7 +1715,12 @@ supports url redirection and retries, and also gzip and deflate decoding.") (define-public python2-urllib3 - (package-with-python2 python-urllib3)) + (let ((base (package-with-python2 (strip-python2-variant python-urllib3)))) + (package/inherit + base + (propagated-inputs + `(("python-ipaddress" ,python2-ipaddress) + ,@(package-propagated-inputs base)))))) (define-public awscli (package -- cgit v1.2.3 From f2c37028850fa03d6a25ae6c1d8366fe4b76374b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 14 Jul 2020 21:25:32 +0200 Subject: gnu: python-idna: Update to 2.10. * gnu/packages/python-xyz.scm (python-idna): Update to 2.10. --- gnu/packages/python-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index cd5df12b9a..5baffc8a4a 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -8594,14 +8594,14 @@ versions of Python.") (define-public python-idna (package (name "python-idna") - (version "2.9") + (version "2.10") (source (origin (method url-fetch) (uri (pypi-uri "idna" version)) (sha256 (base32 - "1jxp2pdi8y4asi7ka1zhx3yx09kv8kzj533f0ds7viz49b0x323m")))) + "1xmk3s92d2vq42684p61wixfmh3qpr2mw762w0n6662vhlpqf1xk")))) (build-system python-build-system) (home-page "https://github.com/kjd/idna") (synopsis "Internationalized domain names in applications") -- cgit v1.2.3 From 07c1ccb1eb5ed5f7cb471530d06df3cd8713b135 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 14 Jul 2020 21:26:11 +0200 Subject: gnu: python-asn1crypto: Update to 1.3.0. * gnu/packages/python-crypto.scm (python-asn1crypto): Update to 1.3.0. [arguments]: New field. Override check phase. --- gnu/packages/python-crypto.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index 5c9c251c01..fd3f918591 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -714,7 +714,7 @@ ECB and OFB).") (define-public python-asn1crypto (package (name "python-asn1crypto") - (version "0.24.0") + (version "1.3.0") (source (origin (method git-fetch) @@ -724,8 +724,13 @@ ECB and OFB).") (file-name (git-file-name name version)) (sha256 (base32 - "10lai2cs5mnz3gpaffbw1m7b885ls8328q5wxm35vfmcip1f0xmb")))) + "0c7rj3hs9fplrj4bv63ppvnnr8fay727w3a9zx3jfkz63wklvm1w")))) (build-system python-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "python" "run.py" "tests")))))) (home-page "https://github.com/wbond/asn1crypto") (synopsis "ASN.1 parser and serializer in Python") (description "asn1crypto is an ASN.1 parser and serializer with definitions -- cgit v1.2.3 From 7dee475589868bf16b2ad2ef93511be8efb2c77a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 15 Jul 2020 10:26:35 +0300 Subject: build/cargo-utils: Use all allocated threads to generate checksums. * guix/build/cargo-utils.scm (generate-all-checksums): Use n-par-for-each instead of for-each when regenerating checksums for source crates. --- guix/build/cargo-utils.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/guix/build/cargo-utils.scm b/guix/build/cargo-utils.scm index 5ac429a62a..7a3bb4b843 100644 --- a/guix/build/cargo-utils.scm +++ b/guix/build/cargo-utils.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2016 David Craven ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2019 Ivan Petkov -;;; Copyright © 2019 Efraim Flashner +;;; Copyright © 2019, 2020 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,6 +23,7 @@ #:use-module (guix build utils) #:use-module (ice-9 popen) #:use-module (ice-9 rdelim) + #:use-module (ice-9 threads) #:export (generate-checksums generate-all-checksums)) @@ -70,7 +71,7 @@ the same directory." (display "}" port))))) (define (generate-all-checksums dir-name) - (for-each + (n-par-for-each (parallel-job-count) (lambda (filename) (let* ((dir (dirname filename)) (checksum-file (string-append dir "/.cargo-checksum.json"))) -- cgit v1.2.3 From 9ba804af7aac2a16fcd2686e702a72700fac1ffe Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 17 Jul 2020 23:52:19 +0200 Subject: gnu: python-pysocks: Update to 1.7.1. * gnu/packages/python-xyz.scm (python-pysocks): Update to 1.7.1. --- gnu/packages/python-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 5baffc8a4a..6575589eee 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -15454,14 +15454,14 @@ requirements is not met.") (define-public python-pysocks (package (name "python-pysocks") - (version "1.7.0") + (version "1.7.1") (source (origin (method url-fetch) (uri (pypi-uri "PySocks" version)) (sha256 (base32 - "0z4p31bpqm893cf87qqgb30k7nwd8kqfjwwjm5cvxb6zbyj1w0yr")))) + "184sg65mbmih6ljblfsxcmq5js5l7dj3gpn618w9q5dy3rbh921z")))) (build-system python-build-system) (arguments `(#:tests? #f)) (home-page "https://github.com/Anorov/PySocks") -- cgit v1.2.3 From 327c1d3abdda58d9ead95bcdba6bfa1f0cdf3110 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 19 Jul 2020 16:00:16 +0300 Subject: gnu: python2-pytest: Update to 4.6.11. * gnu/packages/check.scm (python2-pytest): Update to 4.6.11. --- gnu/packages/check.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index c71edc7655..3ed1689b3d 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2015, 2017 Cyril Roelandt ;;; Copyright © 2015 Federico Beffa ;;; Copyright © 2015 Andreas Enge -;;; Copyright © 2015, 2016, 2018, 2019 Efraim Flashner +;;; Copyright © 2015, 2016, 2018, 2019, 2020 Efraim Flashner ;;; Copyright © 2016, 2017 Leo Famulari ;;; Copyright © 2016 Christopher Allan Webber ;;; Copyright © 2016, 2017 Danny Milosavljevic @@ -872,13 +872,13 @@ and many external plugins.") (package (inherit (strip-python2-variant python-pytest)) (name "python2-pytest") - (version "4.6.9") + (version "4.6.11") (source (origin (method url-fetch) (uri (pypi-uri "pytest" version)) (sha256 (base32 - "0fgkmpc31nzy97fxfrkqbzycigdwxwwmninx3qhkzp81migggs0r")))) + "0ls3pqr86xgif6bphsb6wrww9r2vc7p7a2naq8zcq8115wwq5yjh")))) (build-system python-build-system) (arguments `(#:python ,python-2 -- cgit v1.2.3 From 337333c2567bdf767fdc8e04520c4bc0c8b33784 Mon Sep 17 00:00:00 2001 From: Michael Rohleder Date: Tue, 21 Jul 2020 19:32:50 +0200 Subject: gnu: patchelf: Update to 0.11. * gnu/packages/elf.scm (patchelf): Update to 0.11. Signed-off-by: Marius Bakke --- gnu/packages/elf.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm index 3aabc6e927..48558d5f14 100644 --- a/gnu/packages/elf.scm +++ b/gnu/packages/elf.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Marius Bakke ;;; Copyright © 2020 Mark Wielaard +;;; Copyright © 2020 Michael Rohleder ;;; ;;; This file is part of GNU Guix. ;;; @@ -214,7 +215,7 @@ static analysis of the ELF binaries at hand.") (define-public patchelf (package (name "patchelf") - (version "0.10") + (version "0.11") (source (origin (method url-fetch) (uri (string-append @@ -223,7 +224,7 @@ static analysis of the ELF binaries at hand.") "/patchelf-" version ".tar.bz2")) (sha256 (base32 - "1wzwvnlyf853hw9zgqq5522bvf8gqadk8icgqa41a5n7593csw7n")))) + "16ms3ijcihb88j3x6cl8cbvhia72afmfcphczb9cfwr0gbc22chx")))) (build-system gnu-build-system) (arguments '(#:phases -- cgit v1.2.3 From 7f9d8a62ca69ea587cbf07e85510b1fa767ee0a0 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 23:55:30 +0200 Subject: gnu: xorg-server-for-tests: Update to 1.20.8. * gnu/packages/xorg.scm (xorg-server-for-tests)[source, version]: Inherit from XORG-SERVER. --- gnu/packages/xorg.scm | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 688d33fca7..6b09845593 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5442,19 +5442,10 @@ draggable titlebars and borders.") ;; This package is intended to be used when building GTK+. ;; Note: It's currently marked as "hidden" to avoid having two non-eq? ;; packages with the same name and version. -;; TODO: Update this in the next rebuild cycle. (define-public xorg-server-for-tests (hidden-package (package - (inherit xorg-server) - (version "1.20.7") - (source (origin - (inherit (package-source xorg-server)) - (uri (string-append "mirror://xorg/individual/xserver/" - "xorg-server-" version ".tar.bz2")) - (sha256 - (base32 - "18bfl04ihw1jr3h0fs522nnxxq5ixjay77y9dcymnkzk23q8cndx"))))))) + (inherit xorg-server)))) (define-public xorg-server-xwayland (package -- cgit v1.2.3 From c23737d6e4ce670477e45c1ce2a0d125ae459c47 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 23:59:30 +0200 Subject: gnu: qtbase: Incorporate bugfix variants. * gnu/packages/qt.scm (qtbase/next, qtbase-for-krita): Remove variables. (qtbase)[source](patches): Add "qtbase-absolute-runpath.patch" and "qtbase-fix-krita-deadlock.patch". (python-pyside-2-tools)[inputs]: Change from QTBASE/NEXT to QTBASE. * gnu/packages/kde.scm (krita)[inputs]: Change from QTBASE-FOR-KRITA to QTBASE. --- gnu/packages/kde.scm | 2 +- gnu/packages/qt.scm | 28 ++++------------------------ 2 files changed, 5 insertions(+), 25 deletions(-) diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index 333dd483cb..9a80e362b6 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -434,7 +434,7 @@ illustrate project schedules.") ("openexr" ,openexr) ("perl" ,perl) ("poppler-qt5" ,poppler-qt5) - ("qtbase" ,qtbase-for-krita) + ("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative) ("qtmultimedia" ,qtmultimedia) ("qtsvg" ,qtsvg) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 1cbf7991ab..949d56d87b 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -342,7 +342,6 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtbase (package (name "qtbase") - ;; TODO Remove ((gnu packages kde) qtbase-for-krita) when upgrading qtbase. (version "5.14.2") (source (origin (method url-fetch) @@ -355,7 +354,9 @@ developers using C++ or QML, a CSS & JavaScript like language.") "12mjsahlma9rw3vz9a6b5h2s6ylg8b34hxc2vnlna5ll429fgfa8")) ;; Use TZDIR to avoid depending on package "tzdata". (patches (search-patches "qtbase-use-TZDIR.patch" - "qtbase-moc-ignore-gcc-macro.patch")) + "qtbase-moc-ignore-gcc-macro.patch" + "qtbase-absolute-runpath.patch" + "qtbase-fix-krita-deadlock.patch")) (modules '((guix build utils))) (snippet ;; corelib uses bundled harfbuzz, md4, md5, sha3 @@ -597,27 +598,6 @@ developers using C++ or QML, a CSS & JavaScript like language.") ;; qt used to refer to the monolithic Qt 5.x package (define-deprecated qt qtbase) -;; This variable is required by 'python-pyside-2-tools', which copies some -;; qtbase executables that fail to run because RUNPATH refers to the -;; wrong $ORIGIN. TODO: Merge with qtbase in the next rebuild cycle. -(define qtbase/next - (package - (inherit qtbase) - (source - (origin - (inherit (package-source qtbase)) - (patches (append (origin-patches (package-source qtbase)) - (search-patches "qtbase-absolute-runpath.patch"))))))) - -(define-public qtbase-for-krita - (hidden-package - (package - (inherit qtbase) - (source (origin - (inherit (package-source qtbase)) - (patches (append (origin-patches (package-source qtbase)) - (search-patches "qtbase-fix-krita-deadlock.patch")))))))) - (define-public qtsvg (package (inherit qtbase) (name "qtsvg") @@ -2721,7 +2701,7 @@ generate Python bindings for your C or C++ code.") (inputs `(("python-pyside-2" ,python-pyside-2) ("python-shiboken-2" ,python-shiboken-2) - ("qtbase" ,qtbase/next))) + ("qtbase" ,qtbase))) (native-inputs `(("python" ,python-wrapper))) (arguments -- cgit v1.2.3 From f25657c58376b78d455c0789ce978581624ab2f0 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 01:01:20 +0200 Subject: gnu: pcsc-lite: Update to 1.9.0. * gnu/packages/security-token.scm (pcsc-lite): Update to 1.9.0. --- gnu/packages/security-token.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm index cf6bf18373..96e23518ec 100644 --- a/gnu/packages/security-token.scm +++ b/gnu/packages/security-token.scm @@ -197,14 +197,14 @@ with a PKCS #11 Cryptographic Token Interface.") (define-public pcsc-lite (package (name "pcsc-lite") - (version "1.8.26") + (version "1.9.0") (source (origin (method url-fetch) (uri (string-append "https://pcsclite.apdu.fr/files/" "pcsc-lite-" version ".tar.bz2")) (sha256 (base32 - "1ndvvz0fgqwz70pijymsxmx25mzryb0zav1i8jjc067ndryvxdry")))) + "1y9f9zipnrmgiw0mxrvcgky8vfrcmg6zh40gbln5a93i2c1x8j01")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--enable-usbdropdir=/var/lib/pcsc/drivers" -- cgit v1.2.3 From f045024805780cbb5873efb2da245aa9937828d9 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 21:11:42 +0200 Subject: gnu: python-cython: Update to 0.29.21. * gnu/packages/python-xyz.scm (python-cython): Update to 0.29.21. --- gnu/packages/python-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 190e199b17..2fef66e814 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -4056,14 +4056,14 @@ provides additional functionality on the produced Mallard documents.") (define-public python-cython (package (name "python-cython") - (version "0.29.20") + (version "0.29.21") (source (origin (method url-fetch) (uri (pypi-uri "Cython" version)) (sha256 (base32 - "1ivih4zl5fc2yzb3z60i6rj5yrfbbas8n2xql4bzflr2zksimn92")))) + "1bcwpra7c6k30yvic3sw2v3rq2dr40ypc4zqif6kr52mpn4wnyp5")))) (build-system python-build-system) ;; we need the full python package and not just the python-wrapper ;; because we need libpython3.3m.so -- cgit v1.2.3 From 8b3c0df1a9bbe70ecb6d2e1c19dad62f774a6452 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 21:17:32 +0200 Subject: gnu: nspr: Update to 4.27. * gnu/packages/nss.scm (nspr): Update to 4.27. --- gnu/packages/nss.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/nss.scm b/gnu/packages/nss.scm index b19ad7e1e9..67894a0761 100644 --- a/gnu/packages/nss.scm +++ b/gnu/packages/nss.scm @@ -35,7 +35,7 @@ (define-public nspr (package (name "nspr") - (version "4.25") + (version "4.27") (source (origin (method url-fetch) (uri (string-append @@ -43,7 +43,7 @@ version "/src/nspr-" version ".tar.gz")) (sha256 (base32 - "0mjjk2b7ika3v4y99cnaqz3z1iq1a50r1psn9i3s87gr46z0khqb")))) + "16z82qc1l4cqn66p59ai0dy9ycllywn4jlxhip1a605bns952jbd")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) -- cgit v1.2.3 From 4c19be148566c1666996322981980d6c1b82f765 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 21:17:53 +0200 Subject: gnu: NSS: Update to 3.55 [security fixes]. This release fixes CVE-2020-6829, CVE-2020-12400, CVE-2020-12401, and CVE-2020-12403. * gnu/packages/patches/nss-pkgconfig.patch: Adjust patch context. * gnu/packages/nss.scm (nss): Update to 3.55. [arguments]: Add "all" to #:make-flags. Remove obsolete deletions. * gnu/packages/certs.scm (nss-certs): Update to 3.55. --- gnu/packages/certs.scm | 4 ++-- gnu/packages/nss.scm | 18 +++++------------- gnu/packages/patches/nss-pkgconfig.patch | 5 ++++- 3 files changed, 11 insertions(+), 16 deletions(-) diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm index 7f4dca5f56..b892c2a958 100644 --- a/gnu/packages/certs.scm +++ b/gnu/packages/certs.scm @@ -76,7 +76,7 @@ (define-public nss-certs (package (name "nss-certs") - (version "3.52.1") + (version "3.55") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -87,7 +87,7 @@ "nss-" version ".tar.gz"))) (sha256 (base32 - "0y4jb9095f7bbgw7d7kvzm4c3g4p5i6y68fwhb8wlkpb7b1imj5w")))) + "0100hm7n1xrp144xy665z46s0wf1jpkqkncc6bk2w22snhyjwsgw")))) (build-system gnu-build-system) (outputs '("out")) (native-inputs diff --git a/gnu/packages/nss.scm b/gnu/packages/nss.scm index 67894a0761..7d324d9cf7 100644 --- a/gnu/packages/nss.scm +++ b/gnu/packages/nss.scm @@ -72,7 +72,7 @@ in the Mozilla clients.") (define-public nss (package (name "nss") - (version "3.52.1") + (version "3.55") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -83,7 +83,7 @@ in the Mozilla clients.") "nss-" version ".tar.gz"))) (sha256 (base32 - "0y4jb9095f7bbgw7d7kvzm4c3g4p5i6y68fwhb8wlkpb7b1imj5w")) + "0100hm7n1xrp144xy665z46s0wf1jpkqkncc6bk2w22snhyjwsgw")) ;; Create nss.pc and nss-config. (patches (search-patches "nss-pkgconfig.patch" "nss-increase-test-timeout.patch")) @@ -108,7 +108,8 @@ in the Mozilla clients.") (string-append "NSPR_INCLUDE_DIR=" nspr "/include/nspr") ;; Add $out/lib/nss to RPATH. (string-append "RPATH=" rpath) - (string-append "LDFLAGS=" rpath))) + (string-append "LDFLAGS=" rpath) + "all")) #:modules ((guix build gnu-build-system) (guix build utils) (ice-9 ftw) @@ -138,7 +139,7 @@ in the Mozilla clients.") ;; leading to test failures: ;; . To ;; work around that, set the time to roughly the release date. - (invoke "faketime" "2020-02-01" "./nss/tests/all.sh"))) + (invoke "faketime" "2020-07-01" "./nss/tests/all.sh"))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -160,15 +161,6 @@ in the Mozilla clients.") (copy-recursively "dist/public/nss" inc) (copy-recursively (string-append obj "/bin") bin) (copy-recursively (string-append obj "/lib") lib) - - ;; FIXME: libgtest1.so is installed in the above step, and it's - ;; (unnecessarily) linked with several NSS libraries, but - ;; without the needed rpaths, causing the 'validate-runpath' - ;; phase to fail. Here we simply delete libgtest1.so, since it - ;; seems to be used only during the tests. - (delete-file (string-append lib "/libgtest1.so")) - (delete-file (string-append lib "/libgtestutil.so")) - #t)))))) (inputs `(("sqlite" ,sqlite) diff --git a/gnu/packages/patches/nss-pkgconfig.patch b/gnu/packages/patches/nss-pkgconfig.patch index e3145aa4cf..4b9e0506f2 100644 --- a/gnu/packages/patches/nss-pkgconfig.patch +++ b/gnu/packages/patches/nss-pkgconfig.patch @@ -217,9 +217,12 @@ Later adapted to apply cleanly to nss-3.21. + --- nss-3.21/nss/manifest.mn +++ nss-3.21/nss/manifest.mn -@@ -10,4 +10,4 @@ +@@ -10,7 +10,7 @@ RELEASE = nss -DIRS = coreconf lib cmd cpputil gtests +DIRS = coreconf lib cmd cpputil gtests config + + lib: coreconf + cmd: lib -- cgit v1.2.3 From 6a4c48af6589ae1fcc5db75dfd37c6e28ef6d1ee Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 22:34:08 +0200 Subject: gnu: python-cryptography: Update to 3.0. * gnu/packages/python-crypto.scm (python-cryptography-vectors, python-cryptography): Update to 3.0. --- gnu/packages/python-crypto.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index 07d1dd1f1f..41d15f80e1 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -470,14 +470,14 @@ is used by the Requests library to verify HTTPS requests.") (define-public python-cryptography-vectors (package (name "python-cryptography-vectors") - (version "2.9.2") + (version "3.0") (source (origin (method url-fetch) (uri (pypi-uri "cryptography_vectors" version)) (sha256 (base32 - "1d4iykcv7cn9j399hczlxm5pzxmqy6d80h3j16dkjwlmv3293b4r")))) + "0fa26ggksyhknb43cja1g0jwp35qkdbavivdq6yynj1igd2z1vsj")))) (build-system python-build-system) (home-page "https://github.com/pyca/cryptography") (synopsis "Test vectors for the cryptography package") @@ -492,14 +492,14 @@ is used by the Requests library to verify HTTPS requests.") (define-public python-cryptography (package (name "python-cryptography") - (version "2.9.2") + (version "3.0") (source (origin (method url-fetch) (uri (pypi-uri "cryptography" version)) (sha256 (base32 - "0af25w5mkd6vwns3r6ai1w5ip9xp0ms9s261zzssbpadzdr05hx0")))) + "0lr06a9317n2iwfqwz9mpalqm99acqwk1478arvyj1jj0ay4v4lf")))) (build-system python-build-system) (inputs `(("openssl" ,openssl))) -- cgit v1.2.3 From ed2f0ca8b1140870d55b12cc914472ef026b8e15 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 22:34:40 +0200 Subject: gnu: ImageMagick: Update to 6.9.11-24. * gnu/packages/imagemagick.scm (imagemagick): Update to 6.9.11-24. --- gnu/packages/imagemagick.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index ccc0cfb493..74dfe5cd56 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -48,14 +48,14 @@ ;; The 7 release series has an incompatible API, while the 6 series is still ;; maintained. Don't update to 7 until we've made sure that the ImageMagick ;; users are ready for the 7-series API. - (version "6.9.11-11") + (version "6.9.11-24") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) (sha256 (base32 - "1b67rrppvm04aqr76qky5h2a0j2d161h8kwa04fv611w5xwandr2")))) + "1qxp8fpinh45y4fzdpqvwv2kgr8bh7dqfl08h9n24yadi5nxcqbk")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch" -- cgit v1.2.3 From 1e99f1bc338f71234728fbfbed979f29413be084 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 22:35:29 +0200 Subject: gnu: libnsl: Update to 1.3.0. * gnu/packages/onc-rpc.scm (libnsl): Update to 1.3.0. [arguments]: Remove #:phases. --- gnu/packages/onc-rpc.scm | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/gnu/packages/onc-rpc.scm b/gnu/packages/onc-rpc.scm index 8d0480622e..e4b03b7858 100644 --- a/gnu/packages/onc-rpc.scm +++ b/gnu/packages/onc-rpc.scm @@ -143,7 +143,7 @@ from the protocol files.") (define-public libnsl (package (name "libnsl") - (version "1.2.0") + (version "1.3.0") (source (origin (method git-fetch) (uri (git-reference @@ -152,17 +152,10 @@ from the protocol files.") (file-name (git-file-name name version)) (sha256 (base32 - "1chzqhcgh0yia9js8mh92cmhyka7rh32ql6b3mgdk26n94dqzs8b")))) + "1dayj5i4bh65gn7zkciacnwv2a0ghm6nn58d78rsi4zby4lyj5w5")))) (build-system gnu-build-system) (arguments - `(#:configure-flags '("--disable-static") - #:phases (modify-phases %standard-phases - (add-before 'bootstrap 'gettextize - (lambda _ - ;; Regenerate the bundled Makefile.in.in to avoid a - ;; "gettext infrastructure mismatch" because the - ;; existing version was generated by an older gettext. - (invoke "gettextize" "-f")))))) + `(#:configure-flags '("--disable-static"))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) -- cgit v1.2.3 From 1465949c4236ffa44ce846da8058d593041b888b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 22:36:21 +0200 Subject: gnu: GTK+: Update to 3.24.21. * gnu/packages/gtk.scm (gtk+): Update to 3.24.21. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index e3c097943f..85c5ae14f9 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -761,7 +761,7 @@ application suites.") (define-public gtk+ (package (inherit gtk+-2) (name "gtk+") - (version "3.24.20") + (version "3.24.21") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -769,7 +769,7 @@ application suites.") name "-" version ".tar.xz")) (sha256 (base32 - "1wqxkd3xnqwihcawncp9mkf9bv5a5fg5i4ahm6klpl782vvnkb1d")) + "0llgq2adzn9p3bfq9rv2dhscmvzs35jp3glrfvy3vs1mrpknmsmf")) (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch" "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch")))) (propagated-inputs -- cgit v1.2.3 From def9a2ceff53ac3c315ea7fddb876fdfeb2f775b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 22:36:56 +0200 Subject: gnu: pciutils: Update to 3.7.0. * gnu/packages/pciutils.scm (pciutils): Update to 3.7.0. --- gnu/packages/pciutils.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/pciutils.scm b/gnu/packages/pciutils.scm index c992988437..a5ed121c85 100644 --- a/gnu/packages/pciutils.scm +++ b/gnu/packages/pciutils.scm @@ -36,7 +36,7 @@ (define-public pciutils (package (name "pciutils") - (version "3.6.4") + (version "3.7.0") (source (origin (method url-fetch) (uri (string-append @@ -45,7 +45,7 @@ (patches (search-patches "pciutils-hurd-configure.patch")) (sha256 (base32 - "0mb0f2phdcmp4kfiqsszn2k6nlln0w160ffzrjjv4bbfjwrgfzzn")))) + "1ss0rnfsx8gvqjxaji4mvbhf9xyih4cadmgadbwwv8mnx1xvjh4x")))) (build-system gnu-build-system) (arguments `(#:phases -- cgit v1.2.3 From e21e294a2cabdfaa4148abdaaa5e473ab63be3a6 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 22:37:20 +0200 Subject: gnu: python-mako: Update to 1.1.3. * gnu/packages/python-xyz.scm (python-mako): Update to 1.1.3. --- gnu/packages/python-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 2fef66e814..71a849874b 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -10480,14 +10480,14 @@ python-xdo for newer bindings.)") (define-public python-mako (package (name "python-mako") - (version "1.1.2") + (version "1.1.3") (source (origin (method url-fetch) (uri (pypi-uri "Mako" version)) (sha256 (base32 - "17bd6r9ynp4hyfckkia0bb8gpd98f42jfl5rmzdpbld59bbcaf9i")))) + "09ywrmhr6gdyfx6d5727wwjnz73i6rklqcb4c14m7sqc830wi5c1")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases -- cgit v1.2.3 From dd31108b250e1d32bbbdcd5221c38a69f95b4c0f Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 22:37:42 +0200 Subject: gnu: python-requests: Update to 2.24.0. * gnu/packages/python-web.scm (python-requests): Update to 2.24.0. --- gnu/packages/python-web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 1965a96c16..95af1856b8 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -1630,13 +1630,13 @@ WebSocket usage in Python programs.") (define-public python-requests (package (name "python-requests") - (version "2.23.0") + (version "2.24.0") (source (origin (method url-fetch) (uri (pypi-uri "requests" version)) (sha256 (base32 - "1rhpg0jb08v0gd7f19jjiwlcdnxpmqi1fhvw7r4s9avddi4kvx5k")))) + "06r3017hz0hzxv42gpg73l8xvdjbzw7q904ljvp36b5p3l9rlmdk")))) (build-system python-build-system) (propagated-inputs `(("python-certifi" ,python-certifi) -- cgit v1.2.3 From 7c2ca6852226d0b526512f897fd1ad1e0a2e0a3b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 22:38:10 +0200 Subject: gnu: libinput: Update to 1.15.6. * gnu/packages/freedesktop.scm (libinput): Update to 1.15.6. --- gnu/packages/freedesktop.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 23cd1aabf9..accfa02c02 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -185,14 +185,14 @@ freedesktop.org project.") ;; Updating this will rebuild over 700 packages through libinput-minimal. (package (name "libinput") - (version "1.15.5") + (version "1.15.6") (source (origin (method url-fetch) (uri (string-append "https://freedesktop.org/software/libinput/" "libinput-" version ".tar.xz")) (sha256 (base32 - "15ww4jl3lcxyi8m8idg8canklbqv729gnwpkz7r98c1w8a7zq3m9")))) + "073z61dw46cyq0635a5n1mw7hw4qdgr58gbwwb3ds5v3d8hymvdf")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Ddocumentation=false") -- cgit v1.2.3 From 05cf7180be85981228ff9d2eefddf6343fe37237 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 22:38:43 +0200 Subject: gnu: vulkan-tools: Update to 1.2.148. * gnu/packages/vulkan.scm (vulkan-headers, vulkan-loader, vulkan-tools): Update to 1.2.148. --- gnu/packages/vulkan.scm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm index fe37b59e26..7e622946e9 100644 --- a/gnu/packages/vulkan.scm +++ b/gnu/packages/vulkan.scm @@ -183,7 +183,7 @@ interpretation of the specifications for these languages.") (define-public vulkan-headers (package (name "vulkan-headers") - (version "1.2.141") + (version "1.2.148") (source (origin (method git-fetch) @@ -193,7 +193,7 @@ interpretation of the specifications for these languages.") (file-name (git-file-name name version)) (sha256 (base32 - "10nmx6y4llllfcczyfz76amd0vkqv09dj952d19zkzmmgcval7zq")))) + "1c877npvmkv2qxac308m3x0ij3il7hy5xk3fwsfi7s9dcsaxi63j")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; No tests. @@ -207,7 +207,7 @@ interpretation of the specifications for these languages.") (define-public vulkan-loader (package (name "vulkan-loader") - (version "1.2.140") + (version "1.2.148") (source (origin (method git-fetch) @@ -217,7 +217,7 @@ interpretation of the specifications for these languages.") (file-name (git-file-name name version)) (sha256 (base32 - "0rhyz0qgp0i7pcx6wlvgwy7j33d4cs0xx39f0b6igpfk0vk70r1w")))) + "0rxh4q09k0pdl3xlvxdv5qkak4d7az25gijxr5w170fjnd8yfrhk")))) (build-system cmake-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -261,7 +261,7 @@ and the ICD.") (define-public vulkan-tools (package (name "vulkan-tools") - (version "1.2.140") + (version "1.2.148") (source (origin (method git-fetch) @@ -271,7 +271,7 @@ and the ICD.") (file-name (git-file-name name version)) (sha256 (base32 - "08dk0q77kpycn4vv19jh3ig73gbq3psan246a7fss0nfxpiddg0j")))) + "1908fw4rvg5iaim8ph0c0bzhac6jplg8dhfs6dpxd1dapzwqllkf")))) (build-system cmake-build-system) (inputs `(("glslang" ,glslang) -- cgit v1.2.3 From c72283510c260722c7e73dad0f402a60b7ceb4b3 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 22:39:32 +0200 Subject: gnu: wayland-protocols: Update to 1.20. * gnu/packages/freedesktop.scm (wayland-protocols): Update to 1.20. --- gnu/packages/freedesktop.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index accfa02c02..921ced46ae 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -673,7 +673,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") (define-public wayland-protocols (package (name "wayland-protocols") - (version "1.18") + (version "1.20") (source (origin (method url-fetch) (uri (string-append @@ -681,7 +681,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") "wayland-protocols-" version ".tar.xz")) (sha256 (base32 - "1cvl93h83ymbfhb567jv5gzyq08181w7c46rsw4xqqqpcvkvfwrx")))) + "1rsdgvkkvxs3cjhpl6agvbkm53vm7k8rg127j9y2vn33m2hvg0lp")))) (build-system gnu-build-system) (inputs `(("wayland" ,wayland))) -- cgit v1.2.3 From ca6ad3fb4283f7a57fa663590d435db89ed04746 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 22:39:57 +0200 Subject: gnu: wayland: Update to 1.18.0. * gnu/packages/freedesktop.scm (wayland): Update to 1.18.0. --- gnu/packages/freedesktop.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 921ced46ae..4d04d1d6c4 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -637,14 +637,14 @@ Python.") (define-public wayland (package (name "wayland") - (version "1.17.0") + (version "1.18.0") (source (origin (method url-fetch) (uri (string-append "https://wayland.freedesktop.org/releases/" name "-" version ".tar.xz")) (sha256 (base32 - "194ibzwpdcn6fvk4xngr4bf5axpciwg2bj82fdvz88kfmjw13akj")))) + "0k995rn96xkplrapz5k648j651wc43kq817xk1x8280h16gsfxa6")))) (build-system gnu-build-system) (arguments `(#:parallel-tests? #f)) -- cgit v1.2.3 From 574a5ea5a001b5aaa23eb021a3c4cdc283d06e1d Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 22:40:25 +0200 Subject: gnu: libpsl: Update to 0.21.1. * gnu/packages/web.scm (libpsl): Update to 0.21.1. [source](uri): Adjust for new URL. --- gnu/packages/web.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 2263c4eda4..980b51d7bc 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -1258,15 +1258,15 @@ perform the opening handshake in HTTP.") (define-public libpsl (package (name "libpsl") - (version "0.21.0") + (version "0.21.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/rockdaboot/libpsl/" - "releases/download/libpsl-" version + "releases/download/" version "/libpsl-" version ".tar.gz")) (sha256 (base32 - "04pfagb7ppq3yibx4lhazd1v9nwkxdfkyy2rgcrmrf3mldsirga1")))) + "0k0d46bbh1jj2ll369f134vciplrzbqkg7fv9m62bl6lzghy2v5c")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) -- cgit v1.2.3 From 47d723fee28d5784a720d650b460f90f6021a249 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 22:41:02 +0200 Subject: gnu: libvorbis: Update to 1.3.7. * gnu/packages/xiph.scm (libvorbis): Update to 1.3.7. --- gnu/packages/xiph.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index 7487858fd3..923b77e677 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -86,14 +86,14 @@ periodic timestamps for seeking.") (define libvorbis (package (name "libvorbis") - (version "1.3.6") + (version "1.3.7") (source (origin (method url-fetch) (uri (string-append "https://downloads.xiph.org/releases/vorbis/" "libvorbis-" version ".tar.xz")) (sha256 (base32 - "05dlzjkdpv46zb837wysxqyn8l636x3dw8v8ymlrwz2fg1dbn05g")))) + "0jwmf87x5sdis64rbv0l87mdpah1rbilkkxszipbzg128f9w8g5k")))) (build-system gnu-build-system) (propagated-inputs `(("libogg" ,libogg))) (arguments `(#:configure-flags '("LDFLAGS=-lm" -- cgit v1.2.3 From 84f3d745e51baa5118339d12997280aca535a13b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 22:41:31 +0200 Subject: gnu: libevdev: Update to 1.9.1. * gnu/packages/xorg.scm (libevdev): Update to 1.9.1. --- gnu/packages/xorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 6b09845593..abe1249539 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -2466,7 +2466,7 @@ XC-APPGROUP, XTEST.") (define-public libevdev (package (name "libevdev") - (version "1.8.0") + (version "1.9.1") (source (origin (method url-fetch) @@ -2474,7 +2474,7 @@ XC-APPGROUP, XTEST.") name "-" version ".tar.xz")) (sha256 (base32 - "04a2klvii0in9ln8r85mk2cm73jq8ry2m3yzmf2z8xyjxzjcmlr0")))) + "1jvsphdrs1i54ccjcn6ll26jy42am7h28lbsvwa6pmxgqm43qq7m")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--disable-static"))) -- cgit v1.2.3 From 21d25ad5d258ceec07c763575cee600e3932ae32 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 22:41:58 +0200 Subject: gnu: xkeyboard-config: Update to 2.30. * gnu/packages/xorg.scm (xkeyboard-config): Update to 2.30. --- gnu/packages/xorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index abe1249539..bc9ea125ca 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -4027,7 +4027,7 @@ extension to the X11 protocol. It includes: (define-public xkeyboard-config (package (name "xkeyboard-config") - (version "2.29") + (version "2.30") (source (origin (method url-fetch) @@ -4037,7 +4037,7 @@ extension to the X11 protocol. It includes: ".tar.bz2")) (sha256 (base32 - "00hqc8nykvy8c09b8vab64dcd0ij3n5klxjn6rl00q7hickpah8x")))) + "1m4pnzlcdl6d1p7hdccpi0605zkikind00kjc5bx4gk3gd7m4nh9")))) (build-system gnu-build-system) (inputs `(("libx11" ,libx11) -- cgit v1.2.3 From 9c71b3411d8d7da0437dbd83805899a747fd223b Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 22:42:31 +0200 Subject: gnu: libvdpau: Update to 1.4. * gnu/packages/video.scm (libvdpau): Update to 1.4. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 0dee73476e..54ba4f81a2 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -2509,7 +2509,7 @@ and JACK.") (define-public libvdpau (package (name "libvdpau") - (version "1.3") + (version "1.4") (source (origin (method git-fetch) @@ -2519,7 +2519,7 @@ and JACK.") (file-name (git-file-name name version)) (sha256 (base32 - "1fb1nh5apr9kzx9bm2lysjwpyva1s60b2l2p230nqgvb11q25hd2")))) + "1hc4mcrbr1yhfiy4zfd8wc2iiqbp90z6jswap0jia20vmyk5lqld")))) (build-system meson-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From ca57048444b5a2d316818bb5bda35ae6e1fd2f61 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 22:43:37 +0200 Subject: gnu: libdrm: Update to 2.4.102. * gnu/packages/patches/libdrm-realpath-virtio.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/xdisorg.scm (libdrm): Update to 2.4.102. [source](patches): Remove. --- gnu/local.mk | 1 - gnu/packages/patches/libdrm-realpath-virtio.patch | 42 ----------------------- gnu/packages/xdisorg.scm | 5 ++- 3 files changed, 2 insertions(+), 46 deletions(-) delete mode 100644 gnu/packages/patches/libdrm-realpath-virtio.patch diff --git a/gnu/local.mk b/gnu/local.mk index 7f9ad1f97b..5fe33a8335 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1209,7 +1209,6 @@ dist_patch_DATA = \ %D%/packages/patches/libbase-use-own-logging.patch \ %D%/packages/patches/libbonobo-activation-test-race.patch \ %D%/packages/patches/libcanberra-sound-theme-freedesktop.patch \ - %D%/packages/patches/libdrm-realpath-virtio.patch \ %D%/packages/patches/libextractor-exiv2.patch \ %D%/packages/patches/libgeotiff-adapt-test-script-for-proj-6.2.patch \ %D%/packages/patches/libgit2-mtime-0.patch \ diff --git a/gnu/packages/patches/libdrm-realpath-virtio.patch b/gnu/packages/patches/libdrm-realpath-virtio.patch deleted file mode 100644 index b7d85160b4..0000000000 --- a/gnu/packages/patches/libdrm-realpath-virtio.patch +++ /dev/null @@ -1,42 +0,0 @@ -Only check for for relative path on virtio devices. Otherwise it could -break driver loading in some circumstances, notably the IceCat sandbox. - -https://gitlab.freedesktop.org/mesa/drm/-/issues/39 - -Taken from upstream: -https://gitlab.freedesktop.org/mesa/drm/-/commit/57df07572ce45a1b60bae6fb89770388d3abd6dd - -diff --git a/xf86drm.c b/xf86drm.c ---- a/xf86drm.c -+++ b/xf86drm.c -@@ -3103,15 +3103,18 @@ static int drmParseSubsystemType(int maj, int min) - int subsystem_type; - - snprintf(path, sizeof(path), "/sys/dev/char/%d:%d/device", maj, min); -- if (!realpath(path, real_path)) -- return -errno; -- snprintf(path, sizeof(path), "%s", real_path); - - subsystem_type = get_subsystem_type(path); -+ /* Try to get the parent (underlying) device type */ - if (subsystem_type == DRM_BUS_VIRTIO) { -+ /* Assume virtio-pci on error */ -+ if (!realpath(path, real_path)) -+ return DRM_BUS_VIRTIO; - strncat(path, "/..", PATH_MAX); - subsystem_type = get_subsystem_type(path); -- } -+ if (subsystem_type < 0) -+ return DRM_BUS_VIRTIO; -+ } - return subsystem_type; - #elif defined(__OpenBSD__) || defined(__DragonFly__) || defined(__FreeBSD__) - return DRM_BUS_PCI; -@@ -3920,6 +3923,7 @@ process_device(drmDevicePtr *device, const char *d_name, - - switch (subsystem_type) { - case DRM_BUS_PCI: -+ case DRM_BUS_VIRTIO: - return drmProcessPciDevice(device, node, node_type, maj, min, - fetch_deviceinfo, flags); - case DRM_BUS_USB: diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 20702c3a4f..98d52cc392 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -497,7 +497,7 @@ rasterisation.") (define-public libdrm (package (name "libdrm") - (version "2.4.101") + (version "2.4.102") (source (origin (method url-fetch) (uri (string-append @@ -505,8 +505,7 @@ rasterisation.") version ".tar.xz")) (sha256 (base32 - "19vqbhqljhln0lrpnv3s7y3lkhsdcp76dl8bhqj3cis9ism1pwyx")) - (patches (search-patches "libdrm-realpath-virtio.patch")))) + "0nx0bd9dhymdsd99v4ifib77yjirkvkxf5hzdkbr7qr8dhrzkjwb")))) (build-system meson-build-system) (arguments `(#:configure-flags -- cgit v1.2.3 From 5060b49336fb915ec8cef0e2e69ff861ac87aa9c Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 22:44:20 +0200 Subject: gnu: libva: Update to 2.8.0. * gnu/packages/video.scm (libva): Update to 2.8.0. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 54ba4f81a2..7cfa2d616f 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -847,7 +847,7 @@ libebml is a C++ library to read and write EBML files.") (define-public libva (package (name "libva") - (version "2.7.1") + (version "2.8.0") (source (origin (method url-fetch) @@ -859,7 +859,7 @@ libebml is a C++ library to read and write EBML files.") (string-append "https://www.freedesktop.org/software/vaapi/releases/" "libva/libva-" version "/libva-" version ".tar.bz2"))) (sha256 - (base32 "014av7ayyc624xfmr63xhbgg7nw8fynsswj1g2wmk4lnkyfz23x0")))) + (base32 "1hqy9pnz5jh3dz5r59358n9p2vfy8aj59wpwrj4qz43qs9215fxd")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From 7033bd0e0081c97fd8d6111991b0d293274770b3 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 22:44:57 +0200 Subject: gnu: mesa: Update to 20.1.4. * gnu/packages/gl.scm (mesa): Update to 20.1.4. [replacement]: Remove. (mesa-20.0.8): Remove variable. --- gnu/packages/gl.scm | 26 ++------------------------ 1 file changed, 2 insertions(+), 24 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index fb33bd7f6d..3542fdcc1b 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -233,14 +233,7 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "20.0.7") - - ;; Mesa 20.0.5 through 20.0.7 has problems with some graphic drivers, so - ;; we need this newer version. - ;; https://gitlab.freedesktop.org/mesa/mesa/-/issues/2882 - ;; https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4861 - (replacement mesa-20.0.8) - + (version "20.1.4") (source (origin (method url-fetch) @@ -252,7 +245,7 @@ also known as DXTn or DXTC) for Mesa.") version "/mesa-" version ".tar.xz"))) (sha256 (base32 - "0y517qpdg6v6dsdgzb365p03m30511sbyh8pq0mcvhvjwy7javpy")) + "1zlrczmmkcy42w332rfmlicihlnrxmkrnkpb21sl98725cf2f038")) (patches (search-patches "mesa-skip-disk-cache-test.patch")))) (build-system meson-build-system) @@ -446,21 +439,6 @@ device drivers allows Mesa to be used in many different environments ranging from software emulation to complete hardware acceleration for modern GPUs.") (license license:x11))) -;; Replacement package to fix . -(define mesa-20.0.8 - (package - (inherit mesa) - (version "20.0.8") - (source (origin - (inherit (package-source mesa)) - (uri (list (string-append "https://mesa.freedesktop.org/archive/" - "mesa-" version ".tar.xz") - (string-append "ftp://ftp.freedesktop.org/pub/mesa/" - "mesa-" version ".tar.xz"))) - (sha256 - (base32 - "0v0bfh3ay07s6msxmklvwfaif0q02kq2yhy65fdhys49vw8c1w3c")))))) - (define-public mesa-opencl (package/inherit mesa (name "mesa-opencl") -- cgit v1.2.3 From 7f8ed249cf30729776b1703d6c5dbbdb1632dffe Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 22:55:42 +0200 Subject: gnu: python-coverage: Update to 5.2.1. * gnu/packages/check.scm (python-coverage): Update to 5.2.1. --- gnu/packages/check.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 305b86c7de..41aadb5d2c 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -1510,14 +1510,14 @@ have failed since the last commit or what tests are currently failing."))) (define-public python-coverage (package (name "python-coverage") - (version "5.0.3") + (version "5.2.1") (source (origin (method url-fetch) (uri (pypi-uri "coverage" version)) (sha256 (base32 - "1vrg8panqw79pswg52ygbrff3wdnxarrd9qz6c64ah0c4h2cmbvp")))) + "16z8i18msgs8k74n73dj9x49wzkl0vk4vq8k5pl1bsj70y7b4k53")))) (build-system python-build-system) (arguments ;; FIXME: 95 tests failed, 539 passed, 6 skipped, 2 errors. -- cgit v1.2.3 From 5f95df09b9e16d720cf8debc6de1aeaaf7218bd7 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Jul 2020 23:11:22 +0200 Subject: gnu: linux-pam: Update to 1.4.0. * gnu/packages/linux.scm (linux-pam): Update to 1.4.0. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 6f98277c89..945d7f2282 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1238,7 +1238,7 @@ application by hooking GStreamer into the loopback device.") (define-public linux-pam (package (name "linux-pam") - (version "1.3.1") + (version "1.4.0") (source (origin (method url-fetch) @@ -1247,7 +1247,7 @@ application by hooking GStreamer into the loopback device.") version "/Linux-PAM-" version ".tar.xz")) (sha256 (base32 - "1nyh9kdi3knhxcbv5v4snya0g3gff0m671lnvqcbygw3rm77mx7g")) + "0d6hvz6lpkac08hw5wnlhfdm0fhqd0n6jf6v7fz3jhg6a6694vfd")) (patches (search-patches "linux-pam-no-setfsuid.patch")))) (build-system gnu-build-system) -- cgit v1.2.3 From e1409c764f554b688efe07c04bf90198daeca258 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 25 Jul 2020 00:56:31 +0200 Subject: gnu: check: Update to 0.15.1. * gnu/packages/check.scm (check): Update to 0.15.1. (check-0.14): New public variable. * gnu/packages/backup.scm (burp)[native-inputs]: Change from CHECK to CHECK-0.14. * gnu/packages/bioinformatics.scm (libsbml)[native-inputs]: Likewise. * gnu/packages/databases.scm (recutils)[native-inputs]: Likewise. * gnu/packages/electronics.scm (libsigrokdecode)[native-inputs]: Likewise. * gnu/packages/enlightenment.scm (efl, edi)[native-inputs]: Likewise. * gnu/packages/gnome.scm (gdm)[inputs]: Likewise. * gnu/packages/gtk.scm (girara)[native-inputs]: Likewise. * gnu/packages/messaging.scm (pidgin)[native-inputs]: Likewise. * gnu/packages/networking.scm (iodine)[native-inputs]: Likewise. * gnu/packages/pulseaudio.scm (pulseaudio)[native-inputs]: Likewise. * gnu/packages/sssd.scm (sssd)[native-inputs]: Likewise. * gnu/packages/web.scm (libwapcaplet)[native-inputs]: Likewise. --- gnu/packages/backup.scm | 2 +- gnu/packages/bioinformatics.scm | 2 +- gnu/packages/check.scm | 18 +++++++++++++++--- gnu/packages/databases.scm | 2 +- gnu/packages/electronics.scm | 2 +- gnu/packages/enlightenment.scm | 4 ++-- gnu/packages/gnome.scm | 2 +- gnu/packages/gtk.scm | 2 +- gnu/packages/messaging.scm | 2 +- gnu/packages/networking.scm | 2 +- gnu/packages/pulseaudio.scm | 2 +- gnu/packages/sssd.scm | 2 +- gnu/packages/web.scm | 2 +- 13 files changed, 28 insertions(+), 16 deletions(-) diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index fb6d000170..cd3874b543 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -1102,7 +1102,7 @@ interractive mode.") (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) - ("check" ,check) + ("check" ,check-0.14) ("pkg-config" ,pkg-config))) (home-page "https://burp.grke.org") (synopsis "Differential backup and restore") diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 681919df3d..4145d9e1f2 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -15939,7 +15939,7 @@ than is possible with plain-text methods alone.") (propagated-inputs `(("libxml2" ,libxml2))) (native-inputs - `(("check" ,check) + `(("check" ,check-0.14) ("swig" ,swig))) (home-page "http://sbml.org/Software/libSBML") (synopsis "Process SBML files and data streams") diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 41aadb5d2c..79475fbe03 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -83,7 +83,7 @@ (define-public check (package (name "check") - (version "0.14.0") + (version "0.15.1") (source (origin (method url-fetch) @@ -91,7 +91,7 @@ version "/check-" version ".tar.gz")) (sha256 (base32 - "02zkfiyklckmivrfvdsrlzvzphkdsgjrz3igncw05dv5pshhq3xx")))) + "0080qvd7gj1c7j79v9wfiwkp259gcs0xi45b8a0ds3jwjxj3vk61")))) (build-system gnu-build-system) (home-page "https://libcheck.github.io/check/") (synopsis "Unit test framework for C") @@ -104,7 +104,19 @@ faults or other signals. The output from unit tests can be used within source code editors and IDEs.") (license license:lgpl2.1+))) -;; Some packages require this older version. Removed once no longer needed. +;; Some packages require older versions. Removed once no longer needed. +(define-public check-0.14 + (package + (inherit check) + (version "0.14.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/libcheck/check/releases" + "/download/" version "/check-" version ".tar.gz")) + (sha256 + (base32 + "02zkfiyklckmivrfvdsrlzvzphkdsgjrz3igncw05dv5pshhq3xx")))))) + (define-public check-0.12 (package (inherit check) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index ca320f25e8..5c63fd7c66 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1139,7 +1139,7 @@ organized in a hash table or B+ tree.") (native-inputs `(("bc" ,bc) ("bash:include" ,bash "include") - ("check" ,check) + ("check" ,check-0.14) ("libuuid" ,util-linux) ("pkg-config" ,pkg-config))) diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm index 77b383d69c..e4a6d4481b 100644 --- a/gnu/packages/electronics.scm +++ b/gnu/packages/electronics.scm @@ -88,7 +88,7 @@ to take care of the OS-specific details when writing software that uses serial p "/share/doc/libsigrokdecode")) #t))))) (native-inputs - `(("check" ,check) + `(("check" ,check-0.14) ("doxygen" ,doxygen) ("graphviz" ,graphviz) ("pkg-config" ,pkg-config))) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 02e1b0e220..2e8cd6d7ce 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -81,7 +81,7 @@ "0ajwc8lmay5ai7nsrp778g393h0p4h98p4c22gic2w61fgkcd5fy")))) (build-system meson-build-system) (native-inputs - `(("check" ,check) + `(("check" ,check-0.14) ("gettext" ,gettext-minimal) ("pkg-config" ,pkg-config))) (inputs @@ -476,7 +476,7 @@ Libraries stack (eo, evas, ecore, edje, emotion, ethumb and elementary).") (lambda _ (setenv "HOME" "/tmp") #t))) #:tests? #f)) ; tests require running dbus service (native-inputs - `(("check" ,check) + `(("check" ,check-0.14) ("gettext" ,gettext-minimal) ("pkg-config" ,pkg-config))) (inputs diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 2acfaea9e8..8afeb5ea58 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -7119,7 +7119,7 @@ libxml2.") ("xmllint" ,libxml2))) (inputs `(("accountsservice" ,accountsservice) - ("check" ,check) ; for testing + ("check" ,check-0.14) ;for testing ("elogind" ,elogind) ("gnome-session" ,gnome-session) ("gnome-settings-daemon" ,gnome-settings-daemon) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 85c5ae14f9..28eb769fb1 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -1513,7 +1513,7 @@ and routines to assist in editing internationalized text.") (sha256 (base32 "08rpw9hkaprm4r853xy1d35i2af1pji8c3mzzl01mmwmyr9p0x8k")))) (native-inputs `(("pkg-config" ,pkg-config) - ("check" ,check) + ("check" ,check-0.14) ("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ("xorg-server" ,xorg-server-for-tests))) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index adf648a0a6..45d1c211fa 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -457,7 +457,7 @@ authentication.") (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) - ("check" ,check) + ("check" ,check-0.14) ("intltool" ,intltool) ("gconf" ,gconf) ("python" ,python-2) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 8df66af120..a686db83b2 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -860,7 +860,7 @@ test_parse_format_ipv(4(|_listen_all|_mapped_ipv6)|6)\\);") #:test-target "test")) (inputs `(("net-tools" ,net-tools) ("zlib" ,zlib))) - (native-inputs `(("check" ,check) + (native-inputs `(("check" ,check-0.14) ("pkg-config" ,pkg-config))) (home-page "https://code.kryo.se/iodine/") (synopsis "Tunnel IPv4 data through a DNS server") diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm index 58c7e5bd7d..8e8812edd0 100644 --- a/gnu/packages/pulseaudio.scm +++ b/gnu/packages/pulseaudio.scm @@ -219,7 +219,7 @@ rates.") ("eudev" ,eudev))) ;for the detection of hardware audio devices (native-inputs - `(("check" ,check) + `(("check" ,check-0.14) ("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ("m4" ,m4) diff --git a/gnu/packages/sssd.scm b/gnu/packages/sssd.scm index c004e8c21c..859112f070 100644 --- a/gnu/packages/sssd.scm +++ b/gnu/packages/sssd.scm @@ -160,7 +160,7 @@ fundamental object types for C.") ("tdb" ,tdb) ("tevent" ,tevent))) (native-inputs - `(("check" ,check) + `(("check" ,check-0.14) ("docbook-xsl" ,docbook-xsl) ("docbook-xml" ,docbook-xml) ("libxml2" ,libxml2) ; for xmllint diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 980b51d7bc..4fc7181f34 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -4976,7 +4976,7 @@ commenting.") (native-inputs `(("netsurf-buildsystem" ,netsurf-buildsystem) ("pkg-config" ,pkg-config) - ("check" ,check))) ;for tests + ("check" ,check-0.14))) ;for tests (arguments netsurf-buildsystem-arguments) (home-page "https://www.netsurf-browser.org/projects/libwapcaplet/") (synopsis "String internment library") -- cgit v1.2.3 From 45f7dc37c6bbbd334bc2fed8f088f94b32971948 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 25 Jul 2020 01:12:35 +0200 Subject: gnu: Remove python2-sphinx. * gnu/packages/sphinx.scm (python-sphinx)[properties]: Use self as python2 variant. (python2-sphinx): Remove variable. --- gnu/packages/sphinx.scm | 47 +---------------------------------------------- 1 file changed, 1 insertion(+), 46 deletions(-) diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm index f27f9d0176..2b8b15ff7d 100644 --- a/gnu/packages/sphinx.scm +++ b/gnu/packages/sphinx.scm @@ -99,52 +99,7 @@ for Python projects or other documents consisting of multiple reStructuredText sources.") (license license:bsd-2) - (properties `((python2-variant . ,(delay python2-sphinx)))))) - -;; Sphinx 2 does not support Python 2, so we stick with this older version here. -;; Remove this package once python2-pbcore no longer requires it. -(define-public python2-sphinx - (let ((base (package-with-python2 (strip-python2-variant python-sphinx)))) - (package - (inherit base) - (version "1.7.7") - (source (origin - (method url-fetch) - (uri (pypi-uri "Sphinx" version)) - (sha256 - (base32 - "0pkkbfj7cl157q550gcs45am5y78ps0h7q6455d64s1zmw01jlvi")))) - (arguments - (substitute-keyword-arguments (package-arguments base) - ((#:phases phases) - `(modify-phases ,phases - (add-before 'check 'disable-broken-tests - (lambda _ - ;; These tests are broken when using Python2: - ;; . - (for-each delete-file '("tests/test_api_translator.py" - "tests/test_setup_command.py")) - #t)))))) - (native-inputs `(("python2-mock" ,python2-mock) - ("python2-enum34" ,python2-enum34) - ,@(package-native-inputs base))) - ;; Sphinx 2 has some dependencies that do not support Python 2, so - ;; we keep our own propagated-inputs here instead of inheriting. - (propagated-inputs `(("python2-pytz" ,python2-pytz) - ("python2-typing" ,python2-typing) - ("python2-imagesize" ,python2-imagesize) - ("python2-sphinx-alabaster-theme" - ,python2-sphinx-alabaster-theme) - ("python2-babel" ,python2-babel-2.6) - ("python2-snowballstemmer" ,python2-snowballstemmer) - ("python2-docutils" ,python2-docutils-0.14) - ("python2-jinja2" ,python2-jinja2) - ("python2-packaging" ,python2-packaging) - ("python2-pygments" ,python2-pygments) - ("python2-requests" ,python2-requests) - ("python2-six" ,python2-six) - ("python2-sphinxcontrib-websupport" - ,python2-sphinxcontrib-websupport)))))) + (properties `((python2-variant . ,(delay python-sphinx)))))) (define-public python-sphinxcontrib-applehelp (package -- cgit v1.2.3 From c866b09d40eb17293db99f7c6caaef7fb77bfa33 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 25 Jul 2020 01:15:25 +0200 Subject: gnu: Sphinx: Update to 3.1.2. * gnu/packages/sphinx.scm (python-sphinx): Update to 3.1.2. --- gnu/packages/sphinx.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm index 2b8b15ff7d..5ba9594135 100644 --- a/gnu/packages/sphinx.scm +++ b/gnu/packages/sphinx.scm @@ -48,14 +48,14 @@ (define-public python-sphinx (package (name "python-sphinx") - (version "2.3.1") + (version "3.1.2") (source (origin (method url-fetch) (uri (pypi-uri "Sphinx" version)) (sha256 (base32 - "19a28nsb0w4bs6k8rdfyk6vzrcwdpvhs2wq77rgpmww59yvndrz6")))) + "1zd8l4dh0v4p8m7s51xr001k09cq2023dd0953ygw7xa76dypnmr")))) (build-system python-build-system) (arguments `(#:phases -- cgit v1.2.3 From e605d3bd54118605281a472c97db3d74e7b97b63 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 25 Jul 2020 01:20:26 +0200 Subject: gnu: popt: Update to 1.18. * gnu/packages/popt.scm (popt): Update to 1.18. [source](uri): Change to new tarball URL. [arguments]: Adjust test substitutions for file renames. --- gnu/packages/popt.scm | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/gnu/packages/popt.scm b/gnu/packages/popt.scm index df80f12077..11d2b1827d 100644 --- a/gnu/packages/popt.scm +++ b/gnu/packages/popt.scm @@ -59,27 +59,23 @@ line syntax.") (define-public popt (package (name "popt") - (version "1.16") + (version "1.18") (source (origin (method url-fetch) - ;; The original rpm5.org domain is not accessible since - ;; 2019-06-13, so use Debians copy of the tarball. - (uri (string-append "https://deb.debian.org/debian/pool/main" - "/p/popt/popt_" version ".orig.tar.gz")) - ;; Ensure the file name stays the same to prevent rebuilds. - (file-name (string-append "popt-" version ".tar.gz")) + (uri (string-append "http://ftp.rpm.org/popt/releases" + "/popt-1.x/popt-" version ".tar.gz")) (sha256 (base32 - "1j2c61nn2n351nhj4d25mnf3vpiddcykq005w2h6kw79dwlysa77")))) + "1lf5zlj5rbg6s4bww7hbhpca97prgprnarx978vcwa0bl81vqnai")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases (add-before 'configure 'patch-test (lambda _ - (substitute* "test-poptrc.in" + (substitute* "tests/test-poptrc.in" (("/bin/echo") (which "echo"))) - (substitute* "testit.sh" ; don't expect old libtool names + (substitute* "tests/testit.sh" ;don't expect old libtool names (("lt-test1") "test1")) #t))))) (home-page "http://rpm5.org/files/popt/") -- cgit v1.2.3 From 2960d31aec2541aae8f4b93a0f1bbb0ed2e27f76 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 25 Jul 2020 10:07:59 +0200 Subject: gnu: libical: Disable parallel build. * gnu/packages/calendar.scm (libical)[arguments]: Add #:parallel-build?. --- gnu/packages/calendar.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm index 53c73c969d..812c75e98a 100644 --- a/gnu/packages/calendar.scm +++ b/gnu/packages/calendar.scm @@ -123,6 +123,7 @@ the library for handling time zones and leap seconds.") (build-system cmake-build-system) (arguments '(#:tests? #f ; test suite appears broken + #:parallel-build? #f ;may cause GIR generation failure #:configure-flags '("-DSHARED_ONLY=true" ;; required by evolution-data-server "-DGOBJECT_INTROSPECTION=true" -- cgit v1.2.3 From 62df18d305bc99a685f6621726b71572771fa09c Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 25 Jul 2020 13:18:40 +0200 Subject: gnu: dconf: Update to 0.36.0. * gnu/packages/patches/dconf-meson-0.52.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/gnome.scm (dconf): Update to 0.36.0. [source](patches): Remove. --- gnu/local.mk | 1 - gnu/packages/gnome.scm | 5 ++--- gnu/packages/patches/dconf-meson-0.52.patch | 19 ------------------- 3 files changed, 2 insertions(+), 23 deletions(-) delete mode 100644 gnu/packages/patches/dconf-meson-0.52.patch diff --git a/gnu/local.mk b/gnu/local.mk index 5fe33a8335..4d04c322e7 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -880,7 +880,6 @@ dist_patch_DATA = \ %D%/packages/patches/dbus-CVE-2020-12049.patch \ %D%/packages/patches/dbus-c++-gcc-compat.patch \ %D%/packages/patches/dbus-c++-threading-mutex.patch \ - %D%/packages/patches/dconf-meson-0.52.patch \ %D%/packages/patches/debops-constants-for-external-program-names.patch \ %D%/packages/patches/debops-debops-defaults-fall-back-to-less.patch \ %D%/packages/patches/desmume-gcc6-fixes.patch \ diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 8afeb5ea58..f05af6be13 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3478,17 +3478,16 @@ and RDP protocols.") (define-public dconf (package (name "dconf") - (version "0.34.0") + (version "0.36.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) - (patches (search-patches "dconf-meson-0.52.patch")) (sha256 (base32 - "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll")))) + "0bfs069pjv6lhp7xrzmrhz3876ay2ryqxzc6mlva1hhz34ibprlz")))) (build-system meson-build-system) (propagated-inputs ;; In Requires of dconf.pc. diff --git a/gnu/packages/patches/dconf-meson-0.52.patch b/gnu/packages/patches/dconf-meson-0.52.patch deleted file mode 100644 index c636edc108..0000000000 --- a/gnu/packages/patches/dconf-meson-0.52.patch +++ /dev/null @@ -1,19 +0,0 @@ -Fix build failure with Meson 0.52. - -Taken from upstream: -https://gitlab.gnome.org/GNOME/dconf/commit/7ad890fb7a2ec90a777a756a1fa20a615ec7245e -https://gitlab.gnome.org/GNOME/dconf/merge_requests/54 - -diff --git a/client/meson.build b/client/meson.build -index f3b7122cb05bfa7bb481c487e3cd052aa1ad58e5..de6387e2cac2aba12b83f2614c277bada434fd16 100644 ---- a/client/meson.build -+++ b/client/meson.build -@@ -28,7 +28,7 @@ libdconf_client = static_library( - - libdconf_client_dep = declare_dependency( - dependencies: gio_dep, -- link_whole: libdconf_client, -+ link_with: libdconf_client, - ) - - libdconf = shared_library( -- cgit v1.2.3 From 8780b0e12598e336eba6bfc4b5c631e61e761287 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 25 Jul 2020 14:14:55 +0200 Subject: gnu: alsa-lib: Update to 1.2.3.2. * gnu/packages/linux.scm (alsa-lib): Update to 1.2.3.2. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 945d7f2282..23d544cf62 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1947,7 +1947,7 @@ intercept and print the system calls executed by the program.") (define-public alsa-lib (package (name "alsa-lib") - (version "1.2.2") + (version "1.2.3.2") (source (origin (method url-fetch) (uri (string-append @@ -1955,7 +1955,7 @@ intercept and print the system calls executed by the program.") version ".tar.bz2")) (sha256 (base32 - "1v5kb8jyvrpkvvq7dq8hfbmcj68lml97i4s0prxpfx2mh3c57s6q")))) + "05dyk856ppvqymazyk1cmpln53g88cq1wjpnsygqrvnamyvwa7z8")))) (build-system gnu-build-system) (arguments '(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" -- cgit v1.2.3 From f7b8c5561246d41e49e9e25c18a0b821d68576da Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 25 Jul 2020 14:15:15 +0200 Subject: gnu: alsa-utils: Update to 1.2.3. * gnu/packages/linux.scm (alsa-utils): Update to 1.2.3. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 23d544cf62..cf2f9b2a01 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1971,14 +1971,14 @@ MIDI functionality to the Linux-based operating system.") (define-public alsa-utils (package (name "alsa-utils") - (version "1.2.2") + (version "1.2.3") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.alsa-project.org/pub/utils/" name "-" version ".tar.bz2")) (sha256 (base32 - "1wz460by17rmxrcydn583rd4lhj6wlvqs6x1j5pdzxn5g3app024")))) + "1ai1z4kf91b1m3qrpwqkc1af5vm2fkdkknqv95xdwf19q94aw6gz")))) (build-system gnu-build-system) (arguments ;; XXX: Disable man page creation until we have DocBook. -- cgit v1.2.3 From 91fadb7aa16cecb3c50cfa1e4ec6a5621d489ab3 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 25 Jul 2020 14:59:55 +0200 Subject: gnu: dconf: Increase test timeout. * gnu/packages/gnome.scm (dconf)[arguments]: Add #:phases. --- gnu/packages/gnome.scm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index f05af6be13..806548d428 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3507,7 +3507,16 @@ and RDP protocols.") ("vala" ,vala))) (arguments `(#:glib-or-gtk? #t - #:configure-flags '("-Denable-gtk-doc=true"))) + #:configure-flags '("-Denable-gtk-doc=true") + #:phases (modify-phases %standard-phases + (add-after 'unpack 'increase-test-timeout + (lambda _ + ;; On big-memory systems, the engine test may take + ;; much longer than the default of 30 seconds. + (substitute* "tests/meson.build" + (("test\\(unit_test\\[0\\], exe" all) + (string-append all ", timeout : 90"))) + #t))))) (home-page "https://developer.gnome.org/dconf/") (synopsis "Low-level GNOME configuration system") (description "Dconf is a low-level configuration system. Its main purpose -- cgit v1.2.3 From 25cdd9f7a469f4394568be7e7648021cc723aaae Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 27 Jul 2020 10:06:03 +0300 Subject: gnu: rust: Update to 1.45. * gnu/packages/rust.scm (rust): Change to 1.45. --- gnu/packages/rust.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 9cb0ae59ca..a123bc4eec 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2016 Nikita ;;; Copyright © 2017 Ben Woodcroft ;;; Copyright © 2017, 2018 Nikolai Merinov -;;; Copyright © 2017, 2019 Efraim Flashner +;;; Copyright © 2017, 2019, 2020 Efraim Flashner ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2018 Danny Milosavljevic ;;; Copyright © 2019 Ivan Petkov @@ -1315,4 +1315,4 @@ move around." #t))))))))) ;; TODO(staging): Bump this variable to the latest packaged rust. -(define-public rust rust-1.39) +(define-public rust rust-1.45) -- cgit v1.2.3 From bbee4490d961ceb8d025726b04ea0f2a40355186 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 29 Jul 2020 18:37:22 +0200 Subject: gnu: git: Update to 2.28.0. * gnu/packages/version-control.scm (git): Update to 2.28.0. --- gnu/packages/version-control.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index d2a24c7571..9792466f58 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -154,14 +154,14 @@ as well as the classic centralized workflow.") (define-public git (package (name "git") - (version "2.27.0") + (version "2.28.0") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "1ybk39ylvs32lywq7ra4l2kdr5izc80r9461hwfnw8pssxs9gjkk")))) + "17a311vzimqn1glc9d7x82rhb1mb81m5rr4g8xji8idaafid39fz")))) (build-system gnu-build-system) (native-inputs `(("native-perl" ,perl) @@ -178,7 +178,7 @@ as well as the classic centralized workflow.") version ".tar.xz")) (sha256 (base32 - "176lkcfhjhqin2w8s814j9wwcian9jr6xx6xzn35i5scn14spjz6")))) + "1dvwq0py8a2ywmgc5pzdlsj3608s7r9wyba292728fcs3yj7ynk6")))) ;; For subtree documentation. ("asciidoc" ,asciidoc-py3) ("docbook-xsl" ,docbook-xsl) -- cgit v1.2.3 From 810f4cc187fff8dfae0ddde460f48b383498d482 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 28 Jul 2020 10:55:03 +0300 Subject: gnu: rust-1.28: Remove disable-cargo-test-for-nightly-channel phase. * gnu/packages/rust.scm (rust-1.28)[arguments]: Remove custom 'disable-cargo-test-for-nightly-channel phase. (rust-1.40)[arguments]: Don't remove removed phase. --- gnu/packages/rust.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index a123bc4eec..0c15205773 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -800,7 +800,6 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\" (("fn finds_author_git") "#[ignore]\nfn finds_author_git") (("fn finds_local_author_git") "#[ignore]\nfn finds_local_author_git")) #t)) - ;; TODO(rebuild-rust): Remove this phase in rust-1.28 when rebuilding. (add-after 'patch-cargo-tests 'disable-cargo-test-for-nightly-channel (lambda* _ ;; This test failed to work on "nightly" channel builds @@ -880,6 +879,8 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\" (substitute* "src/test/run-pass/issue-44056.rs" (("only-x86_64") "ignore-test")) #t)) + ;; This is no longer needed as of 1.28 + (delete 'disable-cargo-test-for-nightly-channel) ;; The thinlto test should pass with llvm 6. (delete 'disable-thinlto-test)))))))) @@ -1249,8 +1250,6 @@ move around." ,(patch-command-exec-tests-phase '(match (find-files "src/test" "command-exec\\.rs") ((file) file)))) - ;; TODO(rebuild-rust): The test in question got fixed long ago. - (delete 'disable-cargo-test-for-nightly-channel) ;; The test got removed in commit 000fe63b6fc57b09828930cacbab20c2ee6e6d15 ;; "Remove painful test that is not pulling its weight" (delete 'remove-unsupported-tests))))))))) -- cgit v1.2.3 From db5604870eb1c870828741861f3fd110568abdaa Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 28 Jul 2020 10:57:13 +0300 Subject: gnu: rust-1.38: Build with llvm-9. * gnu/packages/rust.scm (rust-1.38)[inputs]: Build with llvm-9. (rust-1.40)[inputs]: Don't replace llvm version. --- gnu/packages/rust.scm | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 0c15205773..9b8e7e2604 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -1143,14 +1143,13 @@ move around." (setenv "CARGO_HOME" cargo-home) #t)))))))))) -;; TODO(rebuild-rust): Switch to LLVM 9 in 1.38 instead of 1.40. (define-public rust-1.38 (let ((base-rust (rust-bootstrapped-package rust-1.37 "1.38.0" "101dlpsfkq67p0hbwx4acqq6n90dj4bbprndizpgh1kigk566hk4"))) (package (inherit base-rust) - #;(inputs + (inputs (alist-replace "llvm" (list llvm-9) (package-inputs base-rust))) (arguments @@ -1193,9 +1192,6 @@ move around." "1ba9llwhqm49w7sz3z0gqscj039m53ky9wxzhaj11z6yg1ah15yx"))) (package (inherit base-rust) - (inputs - (alist-replace "llvm" (list llvm-9) - (package-inputs base-rust))) (source (origin (inherit (package-source base-rust)) -- cgit v1.2.3 From b9c30fe7d61d1594fa7589cda6945095af1d27ac Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 29 Jul 2020 08:07:24 +0300 Subject: gnu: rust-1.26: Build with newer openssl. * gnu/packages/rust.scm (rust-1.26)[unputs]: Replace openssl-1.0 with openssl. --- gnu/packages/rust.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 9b8e7e2604..8e3afdd2ed 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -758,6 +758,9 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\" (patches (search-patches "rust-coresimd-doctest.patch" "rust-1.25-accept-more-detailed-gdb-lines.patch")))) + (inputs + (alist-replace "openssl" (list openssl) + (package-inputs base-rust))) (arguments (substitute-keyword-arguments (package-arguments base-rust) ((#:phases phases) -- cgit v1.2.3 From 710fc4c845278f9f08e15d67f59b5be2301d3c6a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 2 Aug 2020 10:41:42 +0300 Subject: gnu: imlib2: Update to 1.7.0. * gnu/packages/image.scm (imlib2): Update to 1.7.0. --- gnu/packages/image.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index f216815ddf..34ab2a0255 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -931,7 +931,7 @@ Metafile}, and @acronym{EMF+, Enhanced Metafile Plus} files.") (define-public imlib2 (package (name "imlib2") - (version "1.6.1") + (version "1.7.0") (source (origin (method url-fetch) (uri (string-append @@ -939,7 +939,7 @@ Metafile}, and @acronym{EMF+, Enhanced Metafile Plus} files.") "/imlib2-" version ".tar.bz2")) (sha256 (base32 - "0v8n3dswx7rxqfd0q03xwc7j2w1mv8lv18rdxv487a1xw5vklfad")))) + "0zdk4afdrrr1539f2q15zja19j4wwfmpswzws2ffgflcnhywlxhr")))) (build-system gnu-build-system) (native-inputs `(("pkgconfig" ,pkg-config))) -- cgit v1.2.3 From 08683393c37e947ca119c72911bec7cfca0fad85 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 2 Aug 2020 10:44:41 +0300 Subject: gnu: imlib2: Don't build static library. * gnu/packages/image.scm (imlib2)[arguments]: Disable static library. --- gnu/packages/image.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 34ab2a0255..38e9086110 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -941,6 +941,8 @@ Metafile}, and @acronym{EMF+, Enhanced Metafile Plus} files.") (base32 "0zdk4afdrrr1539f2q15zja19j4wwfmpswzws2ffgflcnhywlxhr")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags (list "--disable-static"))) (native-inputs `(("pkgconfig" ,pkg-config))) (inputs -- cgit v1.2.3 From ab6fe9d362046231ad6f46eccfd1ea2c9c80b401 Mon Sep 17 00:00:00 2001 From: Jakub Kądziołka Date: Sat, 25 Jul 2020 23:05:33 +0200 Subject: gnu: qtbase: Provide debug symbols. * gnu/packages/qt.scm (qtbase)[outputs]: Add "debug". [arguments]: Add "-force-debug-info" to configure flags. --- gnu/packages/qt.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 949d56d87b..ee903ecae9 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -368,6 +368,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") "zlib")) #t))))) (build-system gnu-build-system) + (outputs '("out" "debug")) (propagated-inputs `(("mesa" ,mesa) ;; Use which the package, not the function @@ -474,6 +475,9 @@ developers using C++ or QML, a CSS & JavaScript like language.") "-opensource" "-confirm-license" + ;; Later stripped into the :debug output. + "-force-debug-info" + ;; These features require higher versions of Linux than the ;; minimum version of the glibc. See ;; src/corelib/global/minimum-linux_p.h. By disabling these -- cgit v1.2.3 From 17e88168c3abb87ede709b18e376cdd4fe643b27 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 21 Sep 2020 23:09:33 +0300 Subject: gnu: libical: Use local docbook-xml package. * gnu/packages/calendar.scm (libical)[native-inputs]: Add docbook-xml-4.3. [arguments]: Add phase to substitute docbook location. --- gnu/packages/calendar.scm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm index 78f0c9848f..b7b1ab0b28 100644 --- a/gnu/packages/calendar.scm +++ b/gnu/packages/calendar.scm @@ -37,6 +37,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages check) #:use-module (gnu packages dav) + #:use-module (gnu packages docbook) #:use-module (gnu packages freedesktop) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) @@ -131,6 +132,13 @@ the library for handling time zones and leap seconds.") "-DICAL_GLIB_VAPI=true") #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-docbook-reference + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "doc/reference/libical-glib/libical-glib-docs.sgml.in" + (("http://www.oasis-open.org/docbook/xml/4.3/") + (string-append (assoc-ref inputs "docbook-xml") + "/xml/dtd/docbook/"))) + #t)) (add-before 'configure 'patch-paths (lambda* (#:key inputs #:allow-other-keys) ;; TODO: libical 3.1.0 supports using TZDIR instead of a hard-coded @@ -145,7 +153,8 @@ the library for handling time zones and leap seconds.") (("\\\"/usr/share/lib/zoneinfo\\\"") ""))) #t))))) (native-inputs - `(("gobject-introspection" ,gobject-introspection) + `(("docbook-xml" ,docbook-xml-4.3) + ("gobject-introspection" ,gobject-introspection) ("gtk-doc" ,gtk-doc) ("perl" ,perl) ("pkg-config" ,pkg-config) -- cgit v1.2.3 From 7e463dd16b7e273011f0beafa57a89fa2d525f8b Mon Sep 17 00:00:00 2001 From: Zhu Zihao Date: Mon, 21 Sep 2020 19:19:17 +0800 Subject: gnu: fcitx: Update to 4.2.9.8. * gnu/packages/fcitx.scm(fcitx): Update to 4.2.9.8. Signed-off-by: Mathieu Othacehe --- gnu/packages/fcitx.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/fcitx.scm b/gnu/packages/fcitx.scm index 279a9c8186..d52edf1750 100644 --- a/gnu/packages/fcitx.scm +++ b/gnu/packages/fcitx.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Sou Bunnbu ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice +;;; Copyright © 2020 Zhu Zihao ;;; ;;; This file is part of GNU Guix. ;;; @@ -97,14 +98,14 @@ by the different predictive algorithms.") (define-public fcitx (package (name "fcitx") - (version "4.2.9.7") + (version "4.2.9.8") (source (origin (method url-fetch) (uri (string-append "http://download.fcitx-im.org/fcitx/" "fcitx-" version "_dict.tar.xz")) (sha256 (base32 - "13vg7yzfq0vj2r8zdf9ly3n243nwwggkhd5qv3z6yqdyj0m3ncyg")))) + "1iik80l7g8yk9iwsls6nl9whwgm0sj8i7s6s0bz4c5anl35iaddw")))) (build-system cmake-build-system) (outputs '("out" "gtk2" "gtk3")) (arguments -- cgit v1.2.3