Hi Erik,

Thanks for your kind response!


在 2019年03月20日 00:51, Erik Joelsson 写道:
Hello Leslie,

The failure you see is happening when the newly built exploded image is used for the first time. I'm not familiar with ASAN, but it seems that the JDK you create does not quite work. There are some ways around this.

If you are unfamiliar with the exploded image, it's something we create while building everything (classes, libraries etc) that can run directly, but will not be as performant as the real jlinked image that the "images" target creates. Normally you build this with "make exploded-image" or "make jdk", but this includes the optimization step that is failing for you. To build just the exploded image and skip the optimization step, you can run "make exploded-image-base". In the build output you find the exploded image in build/linux-x86_64-server-fastdebug/jdk. After your failure, you should be able to investigate this image by running things directly in it. From there you should be able to see if there is a problem with the binaries you built.

I will try.
Thanks,
Leslie Zhai



Another thing that could help you (perhaps not right now since it fails too early, but in general when you add special instrumentation to the build) is to first build a normal JDK. Then when you configure your special build, add --with-build-jdk=/path/to/normal/image. The "build-jdk" must exactly match the sources of the special build you are building and will be used for running all the jmod/jlink etc steps in the build instead of your special JDK build.

/Erik

On 2019-03-19 08:33, Leslie Zhai wrote:
Hi,

I want to run dynamic analysis test with the help of Address Sanitizer. And I read the blog 'Running Java with AddressSanitizer'[1] wrote by Artem who also added support for ASan[2]. Thanks for his great job!

But I failed to make images for X86:

Compiling 4 files for BUILD_JIGSAW_TOOLS
ERROR: Invalid value for bool option: '0"'
ERROR: Flag parsing failed.
ExplodedImageOptimize.gmk:39: recipe for target '/home/xiangzhai/project/jdk/build/linux-x86_64-server-fastdebug/jdk/_optimize_image_exec.marker' failed gmake[3]: *** [/home/xiangzhai/project/jdk/build/linux-x86_64-server-fastdebug/jdk/_optimize_image_exec.marker] Error 1
make/Main.gmk:372: recipe for target 'exploded-image-optimize' failed
gmake[2]: *** [exploded-image-optimize] Error 1

ERROR: Build failed for target 'images' in configuration 'linux-x86_64-server-fastdebug' (exit code 2)
Stopping sjavac server

=== Output from failing command(s) repeated here ===
* For target jdk__optimize_image_exec:
ERROR: Invalid value for bool option: '0"'
ERROR: Flag parsing failed.

----- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< ---

jdk__optimize_image_exec.cmdline[3], jdk__optimize_image_exec.log[4], and dynamic analysis report[5] by running the cmdline.

using configure arguments '--with-toolchain-type=clang --disable-warnings-as-errors --enable-asan --with-boot-jdk=/home/xiangzhai/jdk-11.0.2 --with-debug-level=fastdebug'

----- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< ---

And I also make images with extra CFLAGS, CXXFLAGS and LDFLAGS to enable TSan for mips64el with LLVM toolchain especially integrated assembler:

sh configure --with-toolchain-type=clang \
  --disable-warnings-as-errors \
--with-boot-jdk=/home/loongson/zhaixiang/jdk-mips-f21-build-server-release-072 \
  --with-debug-level=fastdebug \
  --with-extra-cflags="-fintegrated-as -fsanitize=thread" \
  --with-extra-cxxflags="-fintegrated-as -fsanitize=thread" \
  --with-extra-ldflags="-fsanitize=thread"

Although successfully built libjvm.so, it means make hotspot works, failed to bootstrap near the end of make images.

So workaround might be make images at first without ASan nor TSan, then make hotspot with ASan or TSan?

Thanks,

Leslie Zhai

[1] https://blog.gypsyengineer.com/en/security/running-java-with-addresssanitizer.html

[2] https://bugs.openjdk.java.net/browse/JDK-8189800

[3] https://raw.githubusercontent.com/xiangzhai/jdk-dev/master/jdk__optimize_image_exec.cmdline

[4] https://raw.githubusercontent.com/xiangzhai/jdk-dev/master/jdk__optimize_image_exec.log

[5] https://raw.githubusercontent.com/xiangzhai/jdk-dev/master/make-enable-asan.log




Reply via email to