On Fri, Jan 11, 2019 at 11:52 AM Steve Kargl <sgk@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote: > > > ../gccx/configure --prefix=$HOME/work/x --enable-languages=c,fortran \ > > > --enable-bootstrap --disable-nls > > > > Does that work on RHEL or Cent 6? I don't see much different in what > > I'm doing, other than wanting the faster clock_gettime. > > I use neither RHEL nor Cent 6. May be that's you're problem. :) > > Have you tried the above exactly as I have typed it qout? Your > configure line starts with "../configure" suggesting that > you are building within the source code directory. Isn't > that taboo? What happens if you remove --enable-libstdcxx-time=rt? Configuring (slightly differently) with --enable-languages=fortran --disable-nls --disable-multilib ..............worked. I guess I have some more combinations to test....... > I don't understand what you mean by "wanting the faster clock_gettime". > gfortran's system_clock() will use clock_gettime if configure finds > that it is available on your system. > > % nm objx/x86_64-unknown-freebsd13.0/libgfortran/system_clock.o > 0000000000000000 T _gfortran_system_clock_4 > 0000000000000000 T _gfortran_system_clock_8 > U clock_gettime > > program foo > implicit none > integer(8) count1, count2, rate, cmax > call system_clock(count1, rate, cmax) > print '(A,I0)', 'count = ', count1 > print '(A,I0)', ' rate = ', rate > print '(A,I0)', ' cmax = ', cmax > call system("sleep 1") ! sleep for 1 second + plus system > call system_clock(count2) > print '(A,I0)', ' count = ', count2 > print '(A,F8.4)', 'elaspe = ', real(count2 - count1, 8) / rate > end program foo > > % gfcx -o z d.f90 && ./z > count = 2588092417916290 > rate = 1000000000 > cmax = 9223372036854775807 > count = 2588093482115892 > elaspe = 1.0642 I need this for C++, so that std::chrono::now() takes 200ns instead of 2000ns (yes, it matters there). On RHEL/Cent 6, the included version of glibc puts the faster VDSO method of getting time into librt, so you need to explicitly link with -lrt to use it. In later versions of glibc, it's part of libc, and so this isn't required. Jon told me I could do away with that now, but I haven't tested it yet. I hope he's right, since I think you've proven that that might be part of my overall problem. Anyway, I just built 8.2 with the options listed above. I'm now going to add back in just the --enable-libstdcxx-time=rt option to see if things break again. If so, we've got a big clue to our culprit.