RFR: 8336529: (fs) UnixFileAttributeViews setTimes() failing on armhf, Ubuntu noble [v7]

Vladimir Petko vpetko at openjdk.org
Sun Aug 18 09:22:32 UTC 2024


> time_t transition in Debian/Ubuntu left 32 bit time_t  symbols in glibc. 
> 
> Looking up 'futimens' via dlsym returns 32 bit version of the function.  
> This is causing failure to set last modified time (e.g. instead of year 2017 we get 1976 in the test).
> Using the function directly correctly calls 64 bit versions. 
> 
> When we lookup functions with time_t arguments through dlsym() calls we should use 64 bit versions.
> 
> This MR adds a function to lookup 64 bit functions when time_t size is greater than 32 bit in line with the existing [time_t patch](https://evolvis.org/plugins/scmgit/cgi-bin/gitweb.cgi?p=alioth/openjdk-8.git;a=blob;f=debian/patches/t64-dlsyms.diff;h=b2cc8f8a00244bc44900366ed08d7f246ad09904;hb=4c5085cd49fcdc04405e9039705935fde08644a7)
> 
> Testing:
> `` sh configure --with-debug-level=fastdebug --enable-fallback-linker --with-jtreg=../jtreg/build/images/jtreg``
> 
> 
> ==============================
> Test summary
> ==============================
>    TEST                                              TOTAL  PASS  FAIL ERROR   
>    jtreg:test/jdk/jdk/nio/zipfs/CopyMoveTests.java       1     1     0     0   
>    jtreg:test/jdk/jdk/nio/zipfs/TestPosix.java           1     1     0     0   
>    jtreg:test/jdk/java/nio/file/attribute/BasicFileAttributeView/Basic.java
>                                                          1     1     0     0   
>    jtreg:test/jdk/java/nio/file/attribute/BasicFileAttributeView/CreationTime.java
>                                                          1     1     0     0   
>    jtreg:test/jdk/java/nio/file/Files/SetLastModifiedTime.java
>                                                          1     1     0     0   
>    jtreg:test/jdk/java/nio/file/Files/SymlinkTime.java
>                                                          1     1     0     0   
>    jtreg:test/langtools/tools/javac/modules/MOptionTest.java
>                                                          1     1     0     0   
>    jtreg:test/hotspot/jtreg/runtime/cds/appcds/dynamicArchive/DynamicSharedSymbols.java
>                                                          1     1     0     0   
>    jtreg:test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestDynamicDump.java
>                                                          1     1     0     0   
>    jtreg:test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestFileSafety.java
>                                                          1     1     0     0   
>    jtreg:test/hotspot/jtreg/runtime/cds/appcds/jcmd/JCmdTestStaticDump.java
>             ...

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 12 additional commits since the last revision:

 - Merge branch 'master' into JDK-8336529
 - fix curly braces
 - remove spurious whitespace
 - lookup symbol as a fallback
 - move function after statx_wrapper
 - move lookup function and set guard condtions
 - review comments: use a separate ifdef statement.
 - review comments: add ifdef, rename function
 - Merge branch 'master' into JDK-8336529
 - typo: remove extra whitespace
 - ... and 2 more: https://git.openjdk.org/jdk/compare/5fd24b77...d922d60e

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/20208/files
  - new: https://git.openjdk.org/jdk/pull/20208/files/33436b53..d922d60e

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=20208&range=06
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=20208&range=05-06

  Stats: 19469 lines in 635 files changed: 11784 ins; 5146 del; 2539 mod
  Patch: https://git.openjdk.org/jdk/pull/20208.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/20208/head:pull/20208

PR: https://git.openjdk.org/jdk/pull/20208


More information about the nio-dev mailing list