> Every build for releases after 7.65.3 fail with a message similar to:
> 
> $ make
> Making all in lib
> make[1]: Entering directory '/csdi/src/sco507/curl/curl-7.66.0/lib'
> make  all-am
> make[2]: Entering directory '/csdi/src/sco507/curl/curl-7.66.0/lib'
>   CC       libcurl_la-connect.lo
> connect.c: In function `Curl_addr2string':
> connect.c:668: error: `sa_family_t' undeclared (first use in this
> function)
> connect.c:668: error: (Each undeclared identifier is reported only
> once
> connect.c:668: error: for each function it appears in.)
> make[2]: *** [Makefile:1852: libcurl_la-connect.lo] Error 1
> make[2]: Leaving directory '/csdi/src/sco507/curl/curl-7.66.0/lib'
> make[1]: *** [Makefile:1046: all] Error 2
> make[1]: Leaving directory '/csdi/src/sco507/curl/curl-7.66.0/lib'
> make: *** [Makefile:946: all-recursive] Error 1

...

> This is where the problem occurs:
> 
> #if defined(HAVE_SYS_UN_H) && defined(AF_UNIX)
>     case AF_UNIX:
>       if(salen > sizeof(sa_family_t)) {
>         su = (struct sockaddr_un*)sa;
>         msnprintf(addr, MAX_IPADR_LEN, "%s", su->sun_path);
>       }
>       else
>         addr[0] = 0; /* socket with no name */
>       *port = 0;
>       return TRUE;
> #endif
> 
> In 2018, a patch for include/curl/system.h allowed building recent
> releases on SCO OpenServer 5.0.7:
> 
> -#elif defined(__GNUC__)
> +#elif defined(__GNUC__) && !defined(_SCO_DS)
> ...
>  #else
>  /* generic "safe guess" on old 32 bit style */
>  # define CURL_TYPEOF_CURL_OFF_T     long
>  # define CURL_FORMAT_CURL_OFF_T     "ld"
>  # define CURL_FORMAT_CURL_OFF_TU    "lu"
>  # define CURL_SUFFIX_CURL_OFF_T     L
>  # define CURL_SUFFIX_CURL_OFF_TU    UL
>  # define CURL_TYPEOF_CURL_SOCKLEN_T int
>  #endif
> 
> Is there perhaps a generic, "safe guess" for this...

After some digging, it seems /usr/include/sys/socket.h is relevant:

/*
 * Address families.
 */
#define AF_UNSPEC       0       /* unspecified */
#define AF_UNIX         1       /* local to host (pipes, portals) */
#define AF_INET         2       /* internetwork: UDP, TCP, etc. */
#define AF_IMPLINK      3       /* arpanet imp addresses */
#define AF_PUP          4       /* pup protocols: e.g. BSP */
#define AF_CHAOS        5       /* mit CHAOS protocols */
#define AF_NS           6       /* XEROX NS protocols */
#define AF_ISO          7       /* ISO protocols */
#define AF_OSI          AF_ISO
#define AF_ECMA         8       /* european computer manufacturers */
#define AF_DATAKIT      9       /* datakit protocols */
#define AF_CCITT        10      /* CCITT protocols, X.25 etc */
#define AF_SNA          11      /* IBM SNA */
#define AF_DECnet       12      /* DECnet */
#define AF_DLI          13      /* Direct data link interface */
#define AF_LAT          14      /* LAT */
#define AF_HYLINK       15      /* NSC Hyperchannel */
#define AF_APPLETALK    16      /* Apple Talk */
#define AF_ROUTE        17      /* Internal Routing Protocol */
#define AF_LINK         18      /* Link layer interface */
#define pseudo_AF_XTP   19      /* eXpress Transfer Protocol (no AF) */

#define AF_MAX          20

/*
 * Structure used by kernel to store most addresses.
 */
struct sockaddr {
        u_short         sa_family;      /* address family */
        char            sa_data[14];    /* up to 14 bytes of direct address */
};

Any suggestions on a curl convention to follow with respect to
handling this variance to what other systems define?

Kevin R. Bulgrien
-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html

Reply via email to