Ricardo Wurmus <rekado@elephly.net> writes:
> Here’s a shorter patch:
>
> --8<---------------cut here---------------start------------->8---
> diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
> index 403c446a82..bd98784232 100644
> --- a/gnu/packages/java.scm
> +++ b/gnu/packages/java.scm
> @@ -152,6 +152,13 @@ and binary format defined in The Java Virtual Machine Specification.")
> "--disable-gjdoc")
> #:phases
> (modify-phases %standard-phases
> + (add-after 'unpack 'foo
> + (lambda _
> + (substitute* "native/jni/java-io/java_io_VMFile.c"
> + (("result = cpio_isFileExists.*" m)
> + (string-append m "
> +//Without a long comment the Java side will return \"true\" on x86_64 all the time.")))
> + #t))
> (add-after 'install 'install-data
> (lambda _ (invoke "make" "install-data"))))))
> (native-inputs
> --8<---------------cut here---------------end--------------->8---
>
> This only adds a comment. If the comment is too short it won’t work.
I confirm this path works.
I tested a modified version, where I took out the comment text. It also works that way.
We might contact the classpath devs to get a proper fix, and maybe a new release, they
were super responsive the last time.
No, that’s wrong.
To my eternal embarrassement but also great relief this substitution has
the effect of commenting the *following* line which frees up previously
claimed resources (a bunch of characters making up the file name). The
other comments I tested must have ended on \n, so they did not have this
effect.
Thanks to Julien for pointing this out!
So! Creating a memory leak lets us successfully build ant-bootstrap.
It does not, however, get us all the way through the Java bootstrap.
When configuring the first icedtea I get this error:
--8<---------------cut here---------------start------------->8---
checking if the VM and compiler work together... ./configure: line 9614: 697 Illegal instruction $JAVA -classpath . $BYTECODE 1>&5 2>&1
configure: error: VM failed to run compiled class.
command "/gnu/store/h9c5g3inn5zmkixk08m27zzpj58zbfgy-bash-minimal-5.0.7/bin/bash" "./configure" "CONFIG_SHELL=/gnu/store/h9c5g3inn5zmkixk08m27zzpj58zbfgy-bash-minimal-5.0.7/bin/bash" "SHELL=/gnu/store/h9c5g3inn5zmkixk08m27zzpj58zbfgy-bash-minimal-5.0.7/bin/bash" "--prefix=/gnu/store/802356lxpjkqk66kv35mdzxhvaw6rghp-icedtea-1.13.13" "--enable-fast-install" "--docdir=/gnu/store/d4c4w9bka2bnnrwrmph1ilgjss5i37h9-icedtea-1.13.13-doc/share/doc/icedtea" "--build=x86_64-unknown-linux-gnu" "--enable-bootstrap" "--enable-nss" "--without-rhino" "--with-parallel-jobs" "--disable-downloading" "--disable-tests" "--with-ecj=/gnu/store/6dijv9ynn5j2bya86dgjn8v0qfd1nv3j-ecj-bootstrap-3.2.2/share/java/ecj-bootstrap.jar" "--with-jar=/gnu/store/hw67b3w83cc2abbgrf0wqzra07iiz3a1-fastjar-0.98/bin/fastjar" "--with-jdk-home=/gnu/store/1agbz95p2ljcvbb88w7p7jn2hnd6z3gv-classpath-0.99-1.e7c13ee0c" "--with-java=/gnu/store/ril2kk63p1grib14vl88z3aladfs33gf-jamvm-2.0.0/bin/jamvm" failed with status 1
--8<---------------cut here---------------end--------------->8---
Illegal instruction? This uses JamVM 2.0.0 as the JVM. I’ll try to
figure out what instruction this is and where it comes from.
I hit the same bug now.
--
Ricardo