steve-o / openpgm

Automatically exported from code.google.com/p/openpgm
57 stars 44 forks source link

Add support for AIX, building with xlc or gcc. #39

Closed banburybill closed 8 years ago

banburybill commented 8 years ago

Note building OpenPGM with scons is not supported for AIX. xlc build tested with xlc v6. gcc build tested with gcc 4.6.3.

steve-o commented 8 years ago

Nice to have the IPv4 and IPv6 getifaddrs via ioctl merged in, it was dead code for IPv6 with current supported platforms, but sad to see sa_len to come back. I don't see the file fetch_and_add_h.s in the file list?

steve-o commented 8 years ago

The 16-bit atomic path can ignored like Win64 by promoting to 32-bit tickets see:

https://github.com/banburybill/openpgm/blob/aix-support/openpgm/pgm/include/impl/ticket.h#L70

Or avoiding the ticket spin locks completely. I have yet to test the new queue spin locks as implemented in Linux that can provide greater fairness.

16-bit locks may not be supported on all hardware or may simply not work on non-aligned storage.

banburybill commented 8 years ago

Sorry about sa_len - didn't see any alternative...

Also apologies for missing fetch_and_add_h.s. A silly error transferring the change from an internal non-Git repo. I've update the request, it's now there. I added it purely for when building with xlc; I first got everything working with GCC, where 16-bit atomics are available, but then wanted to allow building under my old copy of xlc too so I could avoid mixing C runtimes with stuff we have that must build with xlc. Adding the missing routine seemed the minimal disturbance route.