On 32bit system compiled with -D_TIME_BITS=64, following tests failed:
FAIL: run-debuginfod-archive-test.sh FAIL: run-debuginfod-archive-groom.sh FAIL: run-debuginfod-archive-rename.sh FAIL: run-debuginfod-federation-sqlite.sh FAIL: run-debuginfod-federation-metrics.sh FAIL: run-debuginfod-federation-link.sh due to tests/debuginfod-subr.sh:archive_test failing on "test $fileame -ot `pwd`", with LHS file having a bogus timestamp. LHS is generated by debuginfo-find as a cache file. I'm not sure the fix is the correct way, but since -D_TIME_BITS=64 mandates -D_FILE_OFFSET_BITS=64 in glibc, this does work on glibc environment. Signed-off-by: Taketo Kabe <k...@sra-tohoku.co.jp> --- ChangeLog | 5 +++++ debuginfod/debuginfod-client.c | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/ChangeLog b/ChangeLog index 5421f5b8..1f449d60 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2022-09-27 Taketo Kabe <k...@sra-tohoku.co.jp> + + * debuginfod/debuginfod-client.c: Correctly get timestamp when + compiling with -D_TIME_BITS=64 on 32bit environment. + 2022-04-28 Di Chen <dic...@redhat.com> * NEWS: Add readefl -D, --use-dynamic. diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c index 5e5c140a..28ad04c0 100644 --- a/debuginfod/debuginfod-client.c +++ b/debuginfod/debuginfod-client.c @@ -1392,7 +1392,11 @@ debuginfod_query_server (debuginfod_client *c, /* we've got one!!!! */ time_t mtime; +#if defined(_TIME_BITS) && _TIME_BITS == 64 + CURLcode curl_res = curl_easy_getinfo(verified_handle, CURLINFO_FILETIME_T, (void*) &mtime); +#else CURLcode curl_res = curl_easy_getinfo(verified_handle, CURLINFO_FILETIME, (void*) &mtime); +#endif if (curl_res != CURLE_OK) mtime = time(NULL); /* fall back to current time */ -- 2.31.1