summary refs log tree commit diff
path: root/gnu/packages/java.scm
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2019-09-07 16:17:39 +0200
committerRicardo Wurmus <rekado@elephly.net>2019-09-07 16:17:39 +0200
commit4fb59c9e4dbb6455ef273c83113472be9c8bb51e (patch)
treef6fbff705c65a689d75858513cb6108f7e2603d6 /gnu/packages/java.scm
parent65542a8852759f35e19959149ac92297c8b54be5 (diff)
downloadguix-4fb59c9e4dbb6455ef273c83113472be9c8bb51e.tar.gz
gnu: classpath-bootstrap: Remove call to free.
Fixes <https://bugs.gnu.org/36685>.

* gnu/packages/java.scm (classpath-bootstrap)[arguments]: Add build phase
"remove-call-to-free" to let us build ant-bootstrap later.
Diffstat (limited to 'gnu/packages/java.scm')
-rw-r--r--gnu/packages/java.scm11
1 files changed, 11 insertions, 0 deletions
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 403c446a82..cde32e451a 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -152,6 +152,17 @@ and binary format defined in The Java Virtual Machine Specification.")
              "--disable-gjdoc")
        #:phases
        (modify-phases %standard-phases
+         ;; XXX: This introduces a memory leak as we remove a call to free up
+         ;; memory for the file name string.  This was necessary because of a
+         ;; runtime error that would have prevented us from building
+         ;; ant-bootstrap later.  See https://issues.guix.gnu.org/issue/36685
+         ;; for the gnarly details.
+         (add-after 'unpack 'remove-call-to-free
+           (lambda _
+             (substitute* "native/jni/java-io/java_io_VMFile.c"
+               (("result = cpio_isFileExists.*" m)
+                (string-append m "\n//")))
+             #t))
          (add-after 'install 'install-data
            (lambda _ (invoke "make" "install-data"))))))
     (native-inputs