RFR: 8336529: (fs) UnixFileAttributeViews setTimes() failing on armhf, Ubuntu noble [v2]
Alan Bateman
alanb at openjdk.org
Thu Aug 15 13:44:53 UTC 2024
On Thu, 18 Jul 2024 17:25:30 GMT, Alan Bateman <alanb at openjdk.org> wrote:
>> Vladimir Petko has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision:
>>
>> - review comments: add ifdef, rename function
>> - Merge branch 'master' into JDK-8336529
>> - typo: remove extra whitespace
>> - fix typo: missing whitespace
>> - try to use 64 bit function if sizeof(time_t) > 4
>
> I don't object to putting in a patch to deal with this porting challenge, we just need to make sure that it don't disrupt other builds or platforms. To that end, I think it would be better to only compile in lookup_time_t_function on Linux, you can put it after statx_wrapper. I assume you can reduce it to:
>
> if (sizeof(time_t) > 4) {
> return dlsym(RTLD_DEFAULT, symbol64);
> } else {
> return dlsym(RTLD_DEFAULT, symbol32);
> }
>
> In Java_sun_nio_fs_UnixNativeDispatcher_init think you can use something like this to avoid changing what is compiled in on other platforms.
>
> #if defined(__linux)
> my_futimesat_func = ..
> #elif defined(_ALLBSD_SOURCE)
> my_futimesat_func = ..
> #else
> my_futimesat_func = ..
> #endif
> @AlanBateman I am still a bit afraid of breaking the non-glibc armhf port. E.g. musl does not provide 64 bit symbol, but instead has `__futimens_time32`.
> This is a bit longer, but does not break for musl.
I don't have a sense on who builds arm32 in this configuration but what you suggest looks okay.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/20208#issuecomment-2291290297
More information about the nio-dev
mailing list