--- gnu/packages/java.scm | 3 +- .../patches/classpath-instruction-order.patch | 35 +++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/classpath-instruction-order.patch
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 08ef7a8213..1e29cac401 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -230,7 +230,8 @@ only faster.") (sha256 (base32 "0i99wf9xd3hw1sj2sazychb9prx8nadxh2clgvk3zlmb28v0jbfz")) - (patches (search-patches "classpath-aarch64-support.patch")))) + (patches (search-patches "classpath-aarch64-support.patch" + "classpath-instruction-order.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/patches/classpath-instruction-order.patch b/gnu/packages/patches/classpath-instruction-order.patch new file mode 100644 index 0000000000..278ae912c7 --- /dev/null +++ b/gnu/packages/patches/classpath-instruction-order.patch @@ -0,0 +1,35 @@ +diff -ruN ../classpath/classpath-0.93/native/jni/java-io/java_io_VMFile.c ./native/jni/java-io/java_io_VMFile.c +--- ../classpath/classpath-0.93/native/jni/java-io/java_io_VMFile.c 2006-09-23 08:17:45.000000000 +0300 ++++ ./native/jni/java-io/java_io_VMFile.c 2021-09-03 01:08:17.073644627 +0300 +@@ -278,6 +278,7 @@ + const char *filename; + int result; + jint entryType; ++ int fres; + + /* Don't use the JCL convert function because it throws an exception + on failure */ +@@ -288,9 +289,22 @@ + } + + result = cpio_checkType (filename, &entryType); ++ ++ fres = 1; ++ ++ if (result != CPNATIVE_OK) ++ { ++ fres = 0; ++ } ++ ++ if (entryType != CPFILE_FILE) ++ { ++ fres = 0; ++ } ++ + (*env)->ReleaseStringUTFChars (env, name, filename); + +- return result == CPNATIVE_OK && entryType == CPFILE_FILE ? 1 : 0; ++ return fres; + #else /* not WITHOUT_FILESYSTEM */ + return 0; + #endif /* not WITHOUT_FILESYSTEM */ -- 2.33.0