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
HelenOS-devel@lists.modry.cz
http://lists.modry.cz/listinfo/helenos-devel

Reply via email to