RFR: JDK-8320005 : Native library suffix impact on hotspot code in AIX [v2]
suchismith1993
duke at openjdk.org
Fri Nov 24 11:48:09 UTC 2023
On Thu, 23 Nov 2023 06:03:15 GMT, Thomas Stuefe <stuefe at openjdk.org> wrote:
>> suchismith1993 has updated the pull request incrementally with one additional commit since the last revision:
>>
>> change macro position
>
> src/hotspot/os/aix/os_aix.cpp line 3065:
>
>> 3063: //Replaces provided path with alternate path for the given file,if it doesnt exist.
>> 3064: //For AIX,this replaces .so with .a.
>> 3065: void os::Aix::mapAlternateName(char* buffer, const char *extension) {
>
> The documentation is wrong:
>
> // Replaces the specified path with an alternative path for the
> given file if the original path doesn't exist
>
> It does no such thing; it replaces the extension unconditionally. The comment sounds like it does a file system check.
>
> The whole function is not that well named - "map alternate name" does not really tell me anything, I need to look at the implementation and the caller to understand what it is doing. There is no mapping here, this is just a string utility function.
>
> The function should not modify the original buffer but instead assemble a copy. That is the conventional way to do these things. You can work with immutable strings as input, e.g. literals, and don't risk buffer overflows.
>
> All of this should be handled inside os_aix.cpp; see my other comment. This should not live in the external os::aix interface, since it has nothing to do with AIX. But I think all of this should be confined to os_aix.cpp.
>
> Proposal for a clearer name, comment, and pseudocode
>
> // Given a filename with an extension, return a new string containing the filename with the new extension.
> // New string is allocated in resource area.
> static char* replace_extension_in_filename(const char* filename, const char* new_extension) {
> - allocate buffer in RA
> - assemble new path by contacting old path - old extension + new extension
> - return new path
> }
thank you for the explanation. I am working on it.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/16604#discussion_r1404265530
More information about the serviceability-dev
mailing list