Article delegate-en/3753 of [1-5109] on the server localhost:119
  upper oldest olders older1 this newer1 newers latest
search
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
[Reference:]  
Re: compile problems
Thu, 07 Jun 2007     Yutaka Sato

On 06/07/07(05:14) you Derrick J Chacko wrote
in 
 |I am attempting to compile delegate from source on a HPUX11.11 PA-RISC 
 |machine.  We are operating in a IPv4 environment and I believe this may be 
 |the problem. I am not sure how to disable the IPv6 check. When I run "make 
 |CC=/usr/local/bin/gcc", I am getting the following errors. Any help would 
 |be greatly appreciated.
 |
 |vsaddr.cc: In function 'int sock_isconnectedX(int, int)':
 |vsaddr.cc:51: error: invalid application of 'sizeof' to incomplete type 
 |'SIN6'
...
 |vsaddr.cc:220: error: invalid use of undefined type 'struct sockaddr_in6'
...
 |vsaddr.cc:355: error: 'NI_NUMERICHOST' was not declared in this scope
 |vsaddr.cc:355: error: 'getnameinfo' was not declared in this scope
 |vsaddr.cc:503: error: 'freeaddrinfo' was not declared in this scope
 |vsaddr.cc:758: error: aggregate 'addrinfo hints' has incomplete type and 
 |cannot be defined
 |vsaddr.cc:761: error: 'AI_NUMERICHOST' was not declared in this scope

Hmm... I coded the automatic detection of the IPv6 incapablity in the
file "include/vsocket.h" based on the absense of definition of "AF_INET6"
or "IPPROTO_IPV6" but your environment seems to have both of them.
So it should be detected by the absense of "NI_NUMERICHOST" and the
modification as the enclosed patch is expected to work...

Cheers,
Yutaka
--
  9 9   Yutaka Sato http://delegate.org/y.sato/
 ( ~ )  National Institute of Advanced Industrial Science and Technology
_<   >_ 1-1-4 Umezono, Tsukuba, Ibaraki, 305-8568 Japan
Do the more with the less -- B. Fuller


*** ../../delegate9.6.1-pre5/include/vsocket.h	Fri May 18 14:42:29 2007
--- vsocket.h	Thu Jun  7 13:09:39 2007
***************
*** 96,168 ****
--- 96,172 ----
  #define recvfrom	Xrecvfrom
  /*#######################################################*/
  
  #endif /* } _MSC_VER */
  
  #ifdef SELF_AF_UNIX
  struct sockaddr_un {
  	short	sun_family;	/* AF_UNIX */
  	char	sun_path[108];	/* path name */
  };
  #endif
  
  #if defined(AF_INET6) && !defined(IPPROTO_IPV6) \
   && defined(__linux__) /* RedHat6 */
  #define IPPROTO_IPV6  IPPROTO_IPV6  /* defined only in enum */
  #define sin6_scope_id sin6_flowinfo /* without scope_id */
  #endif
  
+ /*
  #if !defined(AF_INET6) || !defined(IPPROTO_IPV6)
+ */
+ #if !defined(AF_INET6) || !defined(IPPROTO_IPV6) || !defined(NI_NUMERICHOST)
  #ifndef AF_INET6
  #define AF_INET6 ((unsigned int)-6)
  #endif
  struct in6_addr {
  	unsigned char addr8[16];
  };
  
  /* "sin6_family" might be "short" in sockaddr_in for IPv4
   * without "sin_len", so it should be not be referred for portability
   */
  struct sockaddr_in6 { 
  	unsigned char   sin6_len;
  	unsigned char   sin6_family;
  	unsigned short  sin6_port;
  	unsigned int    sin6_flowinfo;
  	struct in6_addr sin6_addr;
  	unsigned int    sin6_scope_id;
  }; 
  struct addrinfo {
  	int	ai_flags;
  	int	ai_family;
  	int	ai_socktype;
  	int	ai_protocol;
     unsigned int	ai_addrlen;
  	char	*ai_canonname;
  struct sockaddr *ai_addr;
  struct addrinfo *ai_next;
  };
  #define gethostbyname2(name,af) ((af==AF_INET)?gethostbyname(name):NULL)
  #define inet_pton(af,src,dst) -1
  #define inet_ntop(af,src,dst,siz) NULL
  #define getaddrinfo(host,serv,hint,res) -1
  #define getnameinfo(sa,salen,host,hlen,serv,slen,flags) -1
  #define freeaddrinfo(ai) -1
  #define AI_NUMERICHOST 4
  #define IPPROTO_IPV6 41
+ #define NI_NUMERICHOST 1
  #endif
  
  #ifndef IPV6_V6ONLY
  #define IPV6_V6ONLY -1
  #endif
  
  struct hostent *EX_GETHOSTBYNAME(PCStr(name));         /* system's standard resolver */
  struct hostent *EX_GETHOSTBYADDR(PCStr(addr),int,int); /* system's standard resolver */
  struct hostent *_GETHOSTBYNAME(PCStr(name));         /* resolvy */
  struct hostent *_GETHOSTBYADDR(PCStr(addr),int,int); /* resolvy */
  
  #ifdef SELF_RESOLV_H
  #ifndef _RESOLV_H_
  #define	_RESOLV_H_
  
  #define MAXDNAME 		128
  #define	MAXNS			3
  #define	MAXDFLSRCH		3
  search upper oldest olders older1 this newer1 newers latest
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
@_@V