Adding --add-opens=... flag during AOT cache creation implicitly disables AOT ClassLinking.
Steps to reproduce:
> $WS/build/linux-x64/images/jdk/bin/java -XX:AOTMode=record -XX:AOTConfiguration=test.aotconf -version
F="--add-opens java.base/java.io=ALL-UNNAMED"
$WS/build/linux-x64/images/jdk/bin/java $F -XX:+AOTClassLinking -XX:AOTMode=create -XX:AOTConfiguration=test.aotconf -XX:AOTCache=test.aotcache -Xlog:cds,class+path=info:file=test.aotlog
> grep aot-link test.aotlog
[1.488s][info][cds ] instance classes = 816, aot-linked = 0, inited = 0
[1.488s][info][cds ] boot = 816, aot-linked = 0, inited = 0
[1.488s][info][cds ] vm = 150, aot-linked = 0, inited = 0
[1.488s][info][cds ] platform = 0, aot-linked = 0, inited = 0
[1.488s][info][cds ] app = 0, aot-linked = 0, inited = 0
[1.488s][info][cds ] unregistered = 0, aot-linked = 0, inited = 0
[1.488s][info][cds ] (enum) = 27, aot-linked = 0, inited = 0
[1.488s][info][cds ] (hidden) = 15, aot-linked = 0, inited = 0
[1.488s][info][cds ] (old) = 0, aot-linked = 0, inited = 0
Steps to reproduce:
> $WS/build/linux-x64/images/jdk/bin/java -XX:AOTMode=record -XX:AOTConfiguration=test.aotconf -version
F="--add-opens java.base/java.io=ALL-UNNAMED"
$WS/build/linux-x64/images/jdk/bin/java $F -XX:+AOTClassLinking -XX:AOTMode=create -XX:AOTConfiguration=test.aotconf -XX:AOTCache=test.aotcache -Xlog:cds,class+path=info:file=test.aotlog
> grep aot-link test.aotlog
[1.488s][info][cds ] instance classes = 816, aot-linked = 0, inited = 0
[1.488s][info][cds ] boot = 816, aot-linked = 0, inited = 0
[1.488s][info][cds ] vm = 150, aot-linked = 0, inited = 0
[1.488s][info][cds ] platform = 0, aot-linked = 0, inited = 0
[1.488s][info][cds ] app = 0, aot-linked = 0, inited = 0
[1.488s][info][cds ] unregistered = 0, aot-linked = 0, inited = 0
[1.488s][info][cds ] (enum) = 27, aot-linked = 0, inited = 0
[1.488s][info][cds ] (hidden) = 15, aot-linked = 0, inited = 0
[1.488s][info][cds ] (old) = 0, aot-linked = 0, inited = 0