the definitions in socket.h are meant to reflect the ones in linux for each respective target, but are sometimes difficult to maintain.
hppa (AKA parisc) was initially merged with an independent file that mirrors more closely the corresponding one in linux but hasn't been updated since. while testing what should had been a simple change (adding to setsockopt support for another SO flag) it became obvious that doing this refactor would help making the code easier to understand and avoid hard to see bugs (like definitions set to the wrong target as shown for sparc at least) the changes are somehow mechanical, and I had made an effort to try to identify what has changed (and hopefully fix a bug), but there is a high probability something as silly as a typo might have introduced a bug, therefore, testing for each target is encouraged but not something I could do on my own (being new to qemu-user and not having access to the corresponding sysroots) the fact that it is most likely that most socket functions where not working for sparc, sparc64, mips64 and ppc64 is most likely an indication that more testing (and regressions) is likely needed around this, so suggestions and help on that is also needed.