--- jdk-10/src/jdk.jlink/share/classes/jdk/tools/jmod/JmodTask.java.orig 2022-04-04 11:18:52.760626467 +0200 +++ jdk-10/src/jdk.jlink/share/classes/jdk/tools/jmod/JmodTask.java 2022-04-04 12:03:40.645325687 +0200 @@ -105,6 +105,7 @@ import jdk.internal.module.ModuleTarget; import jdk.internal.module.Resources; import jdk.tools.jlink.internal.Utils; +import java.util.TreeSet; import static java.util.stream.Collectors.joining; @@ -768,6 +769,7 @@ void processSection(JmodOutputStream out, Section section, Path path) throws IOException { + TreeSet paths = new TreeSet<>(); Files.walkFileTree(path, Set.of(FileVisitOption.FOLLOW_LINKS), Integer.MAX_VALUE, new SimpleFileVisitor() { @Override @@ -781,20 +783,24 @@ if (!relPath.toString().equals(MODULE_INFO) && !matches(relPath, excludes)) { - try (InputStream in = Files.newInputStream(file)) { - out.writeEntry(in, section, relPath.toString()); - } catch (IOException x) { - if (x.getMessage().contains("duplicate entry")) { - warning("warn.ignore.duplicate.entry", - relPath.toString(), section); - return FileVisitResult.CONTINUE; - } - throw x; - } + paths.add(file); } return FileVisitResult.CONTINUE; } }); + for (Path file : paths) { + Path relPath = path.relativize(file); + try (InputStream in = Files.newInputStream(file)) { + out.writeEntry(in, section, relPath.toString()); + } catch (IOException x) { + if (x.getMessage().contains("duplicate entry")) { + warning("warn.ignore.duplicate.entry", + relPath.toString(), section); + continue; + } + throw x; + } + } } boolean matches(Path path, List matchers) { in m4 macros....* m4/guix.m4 (GUIX_CHECK_GUILE_SSH): Fix spelling of parameter. (GUIX_CHECK_FILE_NAME_LIMITS): Fix spelling of maximum. Change-Id: I93c80441393622a4bc06daa475eee13874cca527 Efraim Flashner 2023-03-16build: Correct guix_system on musl libc distros....* m4/guix.m4 (GUIX_SYSTEM_TYPE): Add linux-musl* case. This prevents the macro from mis-parsing the host OS, which causes breakage when building from source. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Antero Mejr 2022-01-14gnu: bootstrap: Add support for riscv64-linux....On 7d93b21ab1c132990054372a9677c1639d54e631 gnu: glibc-for-bootstrap: Update patch. Run ./pre-inst-env guix build --target=riscv64-linux-gnu bootstrap-tarballs Producing /gnu/store/4hdzva9i0wyyfbgj1lmqc1wkk644pv07-bootstrap-tarballs-0 With guix hash -rx 1nj0fdgj08bbmfny01mp2blv7c3p2iciqh31zmf04ap5s7ygsqlp * gnu/packages/bootstrap.scm (%bootstrap-executables): Add entries for riscv64-linux. (%bootstrap-guile-hash, %bootstrap-coreutils&co, %bootstrap-binutils, %bootstrap-glibc, %bootstrap-gcc): Add entry for riscv64-linux. (raw-build-guile3): New procedure. (make-raw-bag): Use raw-build-guile3 for riscv64-linux. * guix/packages.scm (%supported-systems): Add riscv64-linux. (%cuirass-supported-systems): Remove riscv64-linux. * guix/utils.scm (target-64bit?): Add riscv64-linux. * m4/guix.m4: Add riscv64-linux as a supported system. * doc/guix.texi (GNU Distribution): Add riscv64-linux. Efraim Flashner 2021-12-14build: Adjust 'courage level' of different systems....* m4/guix.m4 (GUIX_ASSERT_SUPPORTED_SYSTEM): Add i586-gnu. Move powerpc-linux to unsupported but not needing courage. Add mips64el-linux to unsupported. Efraim Flashner