回复: [8u]RFR: 8263061: copy wrong unpack200.diz to bin directory on linux after 8252395(Internet mail)

kalinshi(施慧) kalinshi at tencent.com
Fri Mar 5 11:00:15 UTC 2021


Thanks Severin!

< Are you trying to fix tools/launcher/VersionCheck.java test or something else? I've reproduced that test failure with external debuginfo since the test tries to execute *every* file in $JAVA_HOME/bin (including *.debuginfo files). If you are trying to fix that problem, I'd suggest to filter debuginfo files out like was done as part of JDK-8237192 for JDK 11. We'd also have to include *.diz files from being excluded from the test. Those files are zipped version s of the *.debuginfo files. It looks like JDK 11 all the way to JDK 17 would try to run *.diz files as well?

tools/launcher/VersionCheck.java tries to execute *every*      EXECUTABLE       file in $JAVA_HOME/bin.
It fails due to unpack200.diz is executable before fix, because install command is "cp build/linux-x86_64-normal-server-release/jdk/objs/unpackexe/unpack200 build/linux-x86_64-normal-server-release/jdk/bin/unpack200.diz".
It copies wrong source file, make unpack200.diz is a side effect.

This fix is making it copy correct debug info file.
"cp build/linux-x86_64-normal-server-release/jdk/objs/unpackexe/unpack200.diz build/linux-x86_64-normal-server-release/jdk/bin/unpack200.diz".

Regards
Hui
-----邮件原件-----
发件人: Severin Gehwolf <sgehwolf at redhat.com> 
发送时间: 2021年3月5日 18:37
收件人: kalinshi(施慧) <kalinshi at tencent.com>; jdk8u-dev at openjdk.java.net
主题: Re: [8u]RFR: 8263061: copy wrong unpack200.diz to bin directory on linux after 8252395(Internet mail)

On Fri, 2021-03-05 at 07:35 +0000, kalinshi(施慧) wrote:
> Hi,
> 
> Please help review this fix.
> After 8252395, unpack200 executable is wrongly copied to bin directory 
> as unpack200.diz when configure with debuginfo.
> 
> Makefile sets same prerequisite for unpack200 executable and debuginfo 
> file. install-file function always copies first prerequisite, which is 
> executable.
> Fix is use debuginfo file as first prerequisite and copy it.
> 
> webrev: http://cr.openjdk.java.net/~hshi/8263061/webrev1/
> bug: https://bugs.openjdk.java.net/browse/JDK-8263061

I've stared at this bug for a bit, but I'm not sure what you are trying to solve.

$ find build/linux-x86_64-normal-server-release/images/j2sdk-image/ | grep unpack
build/linux-x86_64-normal-server-release/images/j2sdk-image/man/ja_JP.UTF-8/man1/unpack200.1
build/linux-x86_64-normal-server-release/images/j2sdk-image/man/man1/unpack200.1
build/linux-x86_64-normal-server-release/images/j2sdk-image/bin/unpack200.debuginfo
build/linux-x86_64-normal-server-release/images/j2sdk-image/bin/unpack200
build/linux-x86_64-normal-server-release/images/j2sdk-image/jre/bin/unpack200.debuginfo
build/linux-x86_64-normal-server-release/images/j2sdk-image/jre/bin/unpack200
build/linux-x86_64-normal-server-release/images/j2sdk-image/jre/lib/amd64/libunpack.so
build/linux-x86_64-normal-server-release/images/j2sdk-image/jre/lib/amd64/libunpack.debuginfo
$ build/linux-x86_64-normal-server-release/images/j2sdk-image/bin/unpack200 -J-version -h
Usage:  unpack200 [-opt... | --option=value]... x.pack[.gz] y.jar

Unpacking Options
  -H{h}, --deflate-hint={h}     override transmitted deflate hint: true, false, or keep (default)
  -r, --remove-pack-file        remove input file after unpacking
  -v, --verbose                 increase program verbosity
  -q, --quiet                   set verbosity to lowest level
  -l{F}, --log-file={F}         output to the given log file, or '-' for standard output (default)
  -?, -h, --help                print this message
  -V, --version                 print program version
  -J{X}                         Java VM argument (ignored)
$ build/linux-x86_64-normal-server-release/images/j2sdk-image/bin/unpack200 --version
unpack200 version 1.30, 07/05/05
$ build/linux-x86_64-normal-server-release/images/j2sdk-image/jre/bin/unpack200 --version
unpack200 version 1.30, 07/05/05

Are you trying to fix tools/launcher/VersionCheck.java test or something else? I've reproduced that test failure with external debuginfo since the test tries to execute *every* file in $JAVA_HOME/bin (including *.debuginfo files). If you are trying to fix that problem, I'd suggest to filter debuginfo files out like was done as part of JDK-8237192 for JDK 11. We'd also have to include *.diz files from being excluded from the test. Those files are zipped version s of the *.debuginfo files. It looks like JDK 11 all the way to JDK 17 would try to run *.diz files as well?

Thanks,
Severin




More information about the jdk8u-dev mailing list