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

Reply via email to