RFR: 8276743: Make openjdk build Zip Archive generation "reproducible"

Andrew Leonard aleonard at openjdk.java.net
Tue Nov 9 15:20:37 UTC 2021


On Tue, 9 Nov 2021 14:57:52 GMT, Magnus Ihse Bursie <ihse at openjdk.org> wrote:

> We already have an --enable-reproducible-builds. If (and I say if) we need to turn this on/off with a flag, this would to fine.
> 
> However, as I have said previously in a private discussion with Andrew, I prefer it if we can make reproducible builds so cheap, reliable and uncontroversial so we can always to reproducible builds, and remove that flag.
> 
> For this case, I think it depends on two things:
> 
>     1. the extra time to make the zip file reproducible. Some benchmarking on the GenerateZip for src.zip would be good to have, at least for some ballpark figures.
> 
>     2. When is src.zip built? (I don't remember right now) If it is part of the exploded-image, then it is really time sensitive (and should maybe move out of that target). If it part of the jdk-image, I'd say it is not as sensitive, due to
>        a) this is very much slower anyway, and
>        b) that part is much more parallelizible, so src.zip can be produced while waiting for jlink or whatever.

@magicus
1) I'll do some rough benchmarks
2) "zip-source" is only dependent on "gensrc", ie.all module -gensrc stages must have completed, so in theory it should run in parallel while the linking goes on, a quick scan of a parallel build log seems to confirm that, the "Updating support/src.zip" occurs quite some time before the exploded image linking:

20:34:45  Compiling 31 files for jdk.management.agent
20:34:45  Compiling 16 files for jdk.security.jgss
20:34:45  Compiling 30 files for jdk.security.auth
20:34:45  Creating support/native/java.security.jgss/libj2gss/static/libj2gss.a from 3 file(s)
20:34:45  Updating support/src.zip
20:34:46  Creating support/native/jdk.management.agent/libmanagement_agent/static/libmanagement_agent.a from 1 file(s)
20:34:46  Creating support/native/jdk.security.auth/libjaas/static/libjaas.a from 1 file(s)
20:34:48  Compiling 136 files for jdk.jdeps
20:34:48  Creating support/test/lib-test/jtreg/native/bin/jvm-test-launcher from 1 file(s)
20:34:49  Creating support/modules_libs/java.base/libverify.so from 1 file(s)
.........
20:36:17  Optimizing the exploded image
20:36:18  Creating java.datatransfer.jmod
20:36:18  Creating java.instrument.jmod
20:36:18  Creating java.compiler.jmod

-------------

PR: https://git.openjdk.java.net/jdk/pull/6311



More information about the build-dev mailing list