On Fri, Dec 16, 2022 at 11:39 AM Sebastian Huber <sebastian.hu...@embedded-brains.de> wrote: > > On 16.12.22 10:47, Richard Biener wrote: > >> No, if you select -fprofile-update=atomic, then the updates shall be > >> atomic from my point of view. If a fallback is acceptable, then you can > >> use -fprofile-update=prefer-atomic. Using the fallback in > >> -fprofile-update=atomic is a bug which prevents the use of gcov for > >> multi-threaded applications on the lower end targets which do not have > >> atomic operations in hardware. > > Ah, OK. So the fallback there is libatomic calls as well then? Note > > not all targets support libatomic, for those the failure mode is likely > > a link error (which might be fine, but we eventually might want to > > amend documentation to indicate this failure mode). > > It seems these library calls caused issues in the past: > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77466 > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77378
Hmm, those are testsuite-isms in some way but of course users would run into the same issue, needing explicit -latomic (where available). I suppose target specs could automatically add that for -fprofile-update=atomic but this would need to be specified at link time as well then. > One option could be to emit calls to a new libgcov function: > > __gcov_inc_counter(counter) -> updated value > > This function could use a __gthread_mutex_t mutex for updates. This ends > up probably with quite a bad performance. But that's eventually what libatomic will do as well as fallback. I don't have a good idea here. Do you have to explicitely link -latomic on RISCV? Richard. > -- > embedded brains GmbH > Herr Sebastian HUBER > Dornierstr. 4 > 82178 Puchheim > Germany > email: sebastian.hu...@embedded-brains.de > phone: +49-89-18 94 741 - 16 > fax: +49-89-18 94 741 - 08 > > Registergericht: Amtsgericht München > Registernummer: HRB 157899 > Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler > Unsere Datenschutzerklärung finden Sie hier: > https://embedded-brains.de/datenschutzerklaerung/