On Wed, 3 Apr 2024 07:35:46 GMT, Suchismith Roy <s...@openjdk.org> wrote:
>> Hello @suchismith1993, >> >>> > I adjust the comments which also answer your question. Please add an >>> > AIX-only test to verify this behavior. >>> >>> By test you mean provide the use case for pure .a files ? >> >> In the JDK repo, changes like these are backed by jtreg tests >> https://openjdk.org/guide/#jtreg. So for this change, you would need to add >> a jtreg test which only runs on AIX (the jtreg documentation explains how to >> do that) and will exercise the `System.loadLibrary` call for a AIX specific >> library and verify that the library can be loaded as per the expectations >> that are set in the changes proposed and finalized in this PR. >> >> For example, the test should verify that, after the changes proposed in this >> PR, calling `System.loadLibrary(<libname>)` on AIX will load from >> `<libname>.a` if `<libname>.so` is absent. >> >> For reference, you can take a look at the existing tests for loadLibrary in >> the `test/jdk/java/lang/RuntimeTests/loadLibrary` directory. > >> test/jdk/java/lang/RuntimeTests/loadLibrary > > I see. Thank you. Got to check some test cases files and how they are > structured. > For this case, i feel the use case would be to have a pure .a file. Usually > there is not such pure .a files that comes packaged with the OS. They are > provided by some applications. So i am not sure how i can make the tests > consistent for such cases. > Do you have any suggestions here ? We are anyways passing it down to the > hotspot code , which is taking care of it. Hello @suchismith1993, > Usually there is not such pure .a files that comes packaged with the OS. They > are provided by some applications. So i am not sure how i can make the tests > consistent for such cases. > Do you have any suggestions here ? Within the JDK repo, some tests require test specific native libraries (like in your case here). It appears that the JDK build infrastructure has ability to compile native code (`foo.c` for example) into a native library. However that build infrastructure doesn't appear to be flexible enough to support the case where you would have to run AIX specific commands to generate a `.a` file. So the approach of generating a test specific `.a` file doesn't look promising right now (it could still be possible, but I don't know how big a build change that would require). So taking a step back - I see that https://bugs.openjdk.org/browse/JDK-8313616 introduced the ability to dealing with `.a` files on AIX from within the hotspot area. In that commit https://github.com/openjdk/jdk/pull/15204/files I see that there are references to a couple of `.a` files - for example `libodm.a` and `libperfstat.a`. Are those `.a` expected to be present on certain AIX systems? Perhaps your new test could use either of those in the test? There was also a mention of `libclang.a` on AIX, previously in this discussion. Maybe that could be used in the test? ------------- PR Comment: https://git.openjdk.org/jdk/pull/17945#issuecomment-2034865328