Support gcc-4.x on HP-UX PA-RISC/64
authorH.Merijn Brand <h.m.brand@xs4all.nl>
Thu, 4 Aug 2011 07:20:32 +0000 (09:20 +0200)
committerH.Merijn Brand <h.m.brand@xs4all.nl>
Thu, 4 Aug 2011 07:20:32 +0000 (09:20 +0200)
commit9cfd094e6d0a842551c1c58e998eb057cd8425e3
tree35d80f75ece1586fbedb1593c4b82bdd8cf4fa74
parent4eb81ef27984510df69d5b65e3f5cfa0bd218069
Support gcc-4.x on HP-UX PA-RISC/64

Correct the socketsize. Probably due to big-endian versus
little-endian, this has always worked on Intel CPUs. This
is a very very old problem,  and it has been the reason I
never used gcc-4 on PA-RISC,  because perl would not pass
the test suite in 64bitall.

Noticeable effects of wrong "$socksizetype" are return codes
of 0 (pass) from functions like getpeername (),  but invalid
(or none) data in the returned structures or a return length
of 0 or 256. In the latter case, the length is stored in the
second part of the 64bit long and the 32bit first part is 0.
This might be true on Intel-like machines too, but the tests
will pass, as the significant part of the returned length is
in the first 32bits and a pointer to int will still see that
correct.  Mind that in that case the 32bits after that might
have been overridden => can of worms.
ext/Socket/t/getaddrinfo.t
hints/hpux.sh
pod/perldelta.pod