Re: [PATCH] Emulate clock and other stubs on nvptx
Corinna Vinschen <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <[email protected]> |
On Aug 19 12:22, Corinna Vinschen wrote: > Hi Roger, > > On Aug 18 17:43, Roger Sayle wrote: > > > > Please be gentle, this is my first patch to newlib. > > > > This patch to the libc/machine/nvptx port of newlib implements an > > approximation of "clock" and provides some additional stub routines. > > These changes not only reduce the number of (link) failures in the GCC > > testsuite when targeting nvptx-none, but also allow the NIST scimark4 > > benchmark to compile and run without modification. > > > > newlib already contains support for backends to provide their own > > clock implementations via -DCLOCK_PROVIDED. That functionality is > > used here to return an approximate elapsed time based on the NVidia > > GPU's clock64 cycle counter. Although not great, this is better than > > the current behaviour of link error from the unresolved symbol > > _times_r. > > > > The other part of the patch is to add a small number of stub functions > > to nvptx's misc.c. Adding isatty, for example, resolves linking > > problems in libc from the dependency in __smakebuf_r, and the sync > > stub, for example, fixes the failure with GCC's > > testsuite/gfortran.dg/ISO_Fortran_binding_14.f90 [which simply tests > > that gfortran can call a/any C function]. > > > > Hopefully, these changes are acceptable. If so, if someone could > > please commit > > They are, but your patch submission is a bit weird and more work to > apply than necessary. > > Please commit your patches to your local git repo, including a nice > commit message, create a git patch file via `git format-patch' and send > it via `git send-email --to="newlib@..." to this mailing list. Note > that providing Makefile.in is nice, but you don't *have* to provide > Makefile.in. We'll regenerate that as required. > > Another point: Given the HW support for a monotonic clock tick, > wouldn't it make more sense to implement clock_gettime() with support > for CLOCK_REALTIME and CLOCK_MONOTONIC, and implement clock() by calling > clock_gettime()? Oh, btw., since your comment enumerates the CPU variants, isn't there a runtime method to check the CPU and use more accurate values per CPU? Just an idea... Corinna