The fstat() call in cache_bstat() (cache.c) uses the "normal" function of the CRT, but the one in gdb_bfd_open() (gdb_bfd.c) uses the redefined variant rpl_fstat() of gnulib. But both of them return different values in st_mtime (timezone difference?), which makes htab_find_with_hash() then fail to find the cached value in gdb_bfd_cache. It's not even possible to start a simple hello world application, gdb always crashes. As a workaround I did push_macro/undef both fstat and stat before gdb_bfd_open(), und pop_macro afterwards. This works fine for me so far, but there are probably other fstat() calls which might have a similar problem, and also the same might be true for stat() calls. It probably started with commit c0c3707ff46ccfb78ea175dd42d628d8c90dca8b (Update Gnulib to the latest git version).
I'm testing a patch.
https://sourceware.org/ml/gdb-patches/2020-01/msg00386.html
adding target milestone (10.1), since this is a pretty significant problem.
The commit messages didn't show up here, even though the PR was mentioned in them. Anyway, I think this is fixed now.