Hm, so your build is failing with the
HiRes.xs:945:15: error: use of undeclared identifier 'darwin_time_mute
+x'
MUTEX_INIT(&darwin_time_mutex);
failure?
There's no way that I know of to upgrade a module before building Perl. That doesn't make sense to me. What I did most recently (bear in mind I am on Sierra):
$ perlbrew install perl-5.26.2
...
$ perlbrew use 5.26.2
$ perl -MTime::HiRes -E 'say $Time::HiRes::VERSION'
1.9741
$ cpanm https://cpan.metacpan.org/authors/id/J/JH/JHI/Time-HiRes-1.975
+8.tar.gz
...
Looking for stat() subsecond timestamps...
Trying struct stat st_atimespec.tv_nsec...found.
Trying struct stat st_atimensec...NOT found.
Trying struct stat st_atime_n...NOT found.
Trying struct stat st_atim.tv_nsec...NOT found.
Trying struct stat st_uatime...NOT found.
You seem to have subsecond timestamp reading.
(Your struct stat has them, but the filesystems must help.)
...
# Failed test at t/stat.t line 35.
# Structures begin differing at:
# $got->[8] = '1525293104'
# $expected->[8] = '1525293103'
# Failed test at t/stat.t line 35.
# Structures begin differing at:
# $got->[8] = '1525293105'
# $expected->[8] = '1525293104'
# Looks like you failed 2 tests of 43.
t/stat.t ..........
Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/43 subtests
(less 1 skipped subtest: 40 okay)
...
Test Summary Report
-------------------
t/stat.t (Wstat: 512 Tests: 43 Failed: 2)
Failed tests: 13, 34
Non-zero exit status: 2
Files=12, Tests=107, 27 wallclock secs ( 0.06 usr 0.03 sys + 14.64 cu
+sr 0.18 csys = 14.91 CPU)
Result: FAIL
Failed 1/12 test programs. 2/107 subtests failed.
make: *** [test_dynamic] Error 255
The way forward always starts with a minimal test.