Hi Miroslav, supporting the atomic operations you need is a simple matter of adding the missing functions to uspace/lib/c/arch/arm32/src/atomic.c
I wouldn't worry too much about it. Use what you need, I'll help sort out the missing stuff if needed. :) -- jzr On Thu, Apr 3, 2025, 01:03 Miroslav Cimerman <[email protected]> wrote: > Hello, > > While happily hacking for amd64, I started to wonder > if my RAID code (thesis) will run on other architectures, > mostly 32-bit ones, since I happen to use `_Atomic uint64_t'. > > So far I have tried: > - ia32: success > - arm32_raspberrypi: success > - arm32_integratorcp: failure > > [...] undefined reference to `__atomic_load_8' > [...] undefined reference to `__atomic_store_8' > > which were more expected than: > > [...] undefined reference to `__atomic_compare_exchange_1' > > With `compare_exchange', `_Atomic bool' is used - that > can be easily fixed with "manual promotion" to `_Atomic int', > because `compare_exchange' for `int's is apparently supported. > > Is there a way to fix these problems without having to try to > compile for all possible targets and trying to adhere to what > they support? I thought about either: > a) not including my RAID server in build for these > architectures > b) somehow forcing the compiler to use locks around > the atomic ops > > I would like to keep that `_Atomic uint64_t' as it very nicely > fits in, using locks for that would be a pitty. > > > Take care. > -- > mc > > > _______________________________________________ > HelenOS-devel mailing list > [email protected] > http://lists.modry.cz/listinfo/helenos-devel >
_______________________________________________ HelenOS-devel mailing list [email protected] http://lists.modry.cz/listinfo/helenos-devel
