On Tue, 10 Nov 2020 01:09:03 GMT, Sergey Bylokhov <s...@openjdk.org> wrote:

>> @mrserb With the last dev build of GraalVM based on JDK 11.09, the bug can 
>> be reproduced by the approach that I've mentioned above.
>> The general steps: 
>> - download the [last dev 
>> build](https://github.com/graalvm/graalvm-ce-dev-builds/releases) of GraalVM 
>> + Native image 
>> - build the native image for AWTFixExample class (ziped configs for 
>> reflection and JNI is attached): 
>> `$ ~/graalvm-ce-java11-21.0.0-dev/bin/native-image 
>> -H:ConfigurationFileDirectories=./configs -Djava.awt.headless=true 
>> --native-image-info AWTFixExample`
>> - run built image - it should be executed successfully
>> - clone any version of the OpenJDK (11.09 - 16)
>> - build static libraries by executing `make static-libs-image` target 
>> - replace `libawt.a` in GraalVM on built static library from OpenJDK
>> - try to build example again and run it - it should be failed
>> - clone OpenJDK with the proposed fix
>> - build static libraries
>> - replace `libawt.a` in GraalVM on built static library with the fix
>> - build example and run it - it should be executed successfully
>> 
>> public class AWTFixExample {
>>     public static void main(String[] args) {
>>         float[] data = new float[]{0.0f, 1.1f, 2.2f, 3.3f, 4.4f, 5.5f, 6.6f, 
>> 7.7f, 8.8f};
>>         Kernel kernel = new Kernel(3, 3, data);
>>         ConvolveOp op = new ConvolveOp(kernel);
>> 
>>         BufferedImage src = new BufferedImage(10, 10, 
>> BufferedImage.TYPE_INT_ARGB);
>>         BufferedImage dest = new BufferedImage(10, 10, 
>> BufferedImage.TYPE_INT_ARGB);
>> 
>>         BufferedImage image = op.filter(src, dest);
>>         System.out.println(image);
>>     }
>> }
>> 
>> [configs.zip](https://github.com/openjdk/jdk/files/5490906/configs.zip)
>
> I think part of the changed code is actually dead code and can be removed, 
> I'll take a look.

The changes in awt_LoadLibrary.c and XToolkit.c is mostly noop except excluding 
dladdr/dlopen. Since XsessionWMcommand/AWTIsHeadless are not used at least in 
the mainline(jdk16).
The changes in the mlib look fine.

The testing is in progress.

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

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

Reply via email to