On Mon, Jun 26, 2006 at 11:23:13AM -0700, Mike Arnold wrote:
Camp.external at qimonda.com wrote:
Have you tried 4.1.1 from this site?
http://h21007.www2.hp.com/dspp/tech/tech_TechSoftwareDetailPage_IDX/1,1703,7...
I have gcc 4.0.3 32-bit, 4.1.1 32 and 64-bit from HP, and 4.1.0 from PaAC. All give the same errors.
I'm thinking that there must be something different about our build environments, as other people have indicated that they are able to compile just fine.
I've managed to find out that this breakage is because the HP-UX include-files do not define the RPC functions and structures if the pre-processer symbol _XOPEN_SOURCE_EXTENDED is defined.
This despite the on-line documentation in "man getrpcent" stating that this function *is* available, if you just include the <netdb.h> file in your program. Which Hobbit does ...
Now ... why that is so, you'll have to ask HP. I'm prone to consider it a bug in their include-files, and looking at the contortions they go through with defining/undefining various things it seems that this may not be what they intended to do. Just #undef'ing this at the top of bbtest-net.c causes some other breakage with sys/socket.h disagreeing with itself about how to define the "sendfile" and "sendpath" functions:
/usr/include/sys/socket.h:504: error: static declaration of 'sendfile' follows non-static declaration /usr/include/sys/socket.h:484: error: previous declaration of 'sendfile' was here /usr/include/sys/socket.h:505: error: static declaration of 'sendpath' follows non-static declaration /usr/include/sys/socket.h:486: error: previous declaration of 'sendpath' was here
For now, the fastest work-around is probably to add this to bbtest-net.c around line 32 (after the HAVE_RPCENT_H part):
struct rpcent { char *r_name; /* name of server for this rpc program */ char **r_aliases; /* alias list */ int r_number; /* rpc program number */ }; extern struct rpcent *getrpcbyname(char *);
With that added, Hobbit builds just fine.
Regards, Henrik