Package: openswan Severity: normal Tags: patch When building 'openswan' on amd64 with gcc-4.0, I get the following error:
cc -I../../programs/pluto/linux26 -I../../include -I../../linux/include -DUSE_KEYRR -DKERNEL26_SUPPORT -DKERNEL26_HAS_KAME_DUPLICATES -DX509_VERSION=\"X.509-1.5.4\" -DPLUTO -DKLIPS -DDEBUG -DGCC_LINT -DIKE_ALG -DKERNEL_ALG -DDB_CONTEXT -DAGGRESSIVE -DXAUTH -DMODECFG -DNAT_TRAVERSAL -DVIRTUAL_IP -DI_KNOW_TRANSPORT_MODE_HAS_SECURITY_CONCERN_BUT_I_WANT_IT -DSHARED_SECRETS_FILE=\"/etc/ipsec.secrets\" -DPOLICYGROUPSDIR=\"/etc/ipsec.d/policies\" -DPERPEERLOGDIR=\"/var/log/pluto/peer\" -g -Wall -W -Wmissing-prototypes -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wmissing-declarations -Wwrite-strings -Wstrict-prototypes -c connections.c In file included from connections.c:62: ../../include/kernel_alg.h:56: error: array type has incomplete element type ../../include/kernel_alg.h:57: error: array type has incomplete element type connections.c: In function 'extract_end': connections.c:959: warning: pointer targets in assignment differ in signedness make[3]: *** [connections.o] Error 1 make[3]: Leaving directory `/openswan-2.3.0/programs/pluto' With the attached patch 'openswan' can be compiled on amd64 using gcc-4.0. The attached patch contains parts which were already necessary with previous versions of gcc. Regards Andreas Jochens diff -urN ../tmp-orig/openswan-2.3.0/include/kernel_alg.h ./include/kernel_alg.h --- ../tmp-orig/openswan-2.3.0/include/kernel_alg.h 2004-12-21 22:02:46.000000000 +0100 +++ ./include/kernel_alg.h 2005-03-19 14:23:23.830193842 +0100 @@ -19,6 +19,7 @@ #define _KERNEL_ALG_H struct sadb_msg; /* forward definition */ +#include "pfkeyv2.h" /* Registration messages from pluto */ extern void kernel_alg_register_pfkey(const struct sadb_msg *msg, int buflen); diff -urN ../tmp-orig/openswan-2.3.0/programs/ikeping/ikeping.c ./programs/ikeping/ikeping.c --- ../tmp-orig/openswan-2.3.0/programs/ikeping/ikeping.c 2004-10-18 01:58:59.000000000 +0200 +++ ./programs/ikeping/ikeping.c 2005-03-19 14:18:55.769958865 +0100 @@ -196,7 +196,8 @@ ip_address sender; struct isakmp_hdr ih; char buf[64]; - int n, rport, sendlen; + int n, rport; + socklen_t sendlen; const char *xchg_name; int xchg; diff -urN ../tmp-orig/openswan-2.3.0/programs/starter/cmp.c ./programs/starter/cmp.c --- ../tmp-orig/openswan-2.3.0/programs/starter/cmp.c 2004-12-01 08:33:14.000000000 +0100 +++ ./programs/starter/cmp.c 2005-03-19 14:18:55.769958865 +0100 @@ -24,7 +24,7 @@ #define streqn(a,b) (a)?((b)?(strcmp(a,b)):(-1)):(b!=NULL) -#define STRCMP(obj) if (streqn(c1->obj,c2->obj)) return -1 +#define STRCMP(obj) if (streqn((char*)c1->obj,(char*)c2->obj)) return -1 #define VARCMP(obj) if (c1->obj!=c2->obj) return -1 #define MEMCMP(obj) if (memcmp(&c1->obj,&c2->obj,sizeof(c1->obj))) return -1 #define ADDCMP(obj) if (addrcmp(&c1->obj,&c2->obj)) return -1 diff -urN ../tmp-orig/openswan-2.3.0/programs/starter/confread.c ./programs/starter/confread.c --- ../tmp-orig/openswan-2.3.0/programs/starter/confread.c 2004-04-11 17:17:30.000000000 +0200 +++ ./programs/starter/confread.c 2005-03-19 14:18:55.770958671 +0100 @@ -347,14 +347,14 @@ char *value = end->strings[KSCF_RSAKEY1]; if (end->rsakey1) free(end->rsakey1); - end->rsakey1 = xstrdup(value); + end->rsakey1 = (unsigned char*)xstrdup(value); } if(end->strings[KSCF_RSAKEY2] != NULL) { char *value = end->strings[KSCF_RSAKEY2]; if (end->rsakey2) free(end->rsakey2); - end->rsakey2 = xstrdup(value); + end->rsakey2 = (unsigned char*)xstrdup(value); } return err; @@ -754,14 +754,15 @@ memset(&conn->link, 0, sizeof(conn->link)); #define CONN_STR(v) if (v) v=xstrdup(v) +#define CONN_STRU(v) if (v) v=(unsigned char*)xstrdup((char*)v) CONN_STR(conn->left.iface); CONN_STR(conn->left.id); - CONN_STR(conn->left.rsakey1); - CONN_STR(conn->left.rsakey2); + CONN_STRU(conn->left.rsakey1); + CONN_STRU(conn->left.rsakey2); CONN_STR(conn->right.iface); CONN_STR(conn->right.id); - CONN_STR(conn->right.rsakey1); - CONN_STR(conn->right.rsakey2); + CONN_STRU(conn->right.rsakey1); + CONN_STRU(conn->right.rsakey2); for(i=0; i<KSCF_MAX; i++) { diff -urN ../tmp-orig/openswan-2.3.0/programs/starter/interfaces.c ./programs/starter/interfaces.c --- ../tmp-orig/openswan-2.3.0/programs/starter/interfaces.c 2004-04-10 18:37:37.000000000 +0200 +++ ./programs/starter/interfaces.c 2005-03-19 14:18:55.770958671 +0100 @@ -322,7 +322,7 @@ int starter_ifaces_load (char **ifaces, unsigned int omtu, int nat_t) { char *tmp_phys, *phys; - int n; + unsigned n; char **i; int sock; int j, found; diff -urN ../tmp-orig/openswan-2.3.0/programs/starter/keywords.c ./programs/starter/keywords.c --- ../tmp-orig/openswan-2.3.0/programs/starter/keywords.c 2004-12-02 17:26:02.000000000 +0100 +++ ./programs/starter/keywords.c 2005-03-19 14:18:55.770958671 +0100 @@ -165,22 +165,22 @@ struct keyword_enum_value kw_klipsdebug_values[]={ - { "all", LRANGE(KDF_XMIT, KDF_COMP) }, - { "none", 0 }, - { "verbose", LELEM(KDF_VERBOSE) }, - { "xmit", LELEM(KDF_XMIT) }, - { "tunnel-xmit", LELEM(KDF_XMIT) }, - { "netlink", LELEM(KDF_NETLINK) }, - { "xform", LELEM(KDF_XFORM) }, - { "eroute", LELEM(KDF_EROUTE) }, - { "spi", LELEM(KDF_SPI) }, - { "radij", LELEM(KDF_RADIJ) }, - { "esp", LELEM(KDF_ESP) }, - { "ah", LELEM(KDF_AH) }, - { "rcv", LELEM(KDF_RCV) }, - { "tunnel", LELEM(KDF_TUNNEL) }, - { "pfkey", LELEM(KDF_PFKEY) }, - { "comp", LELEM(KDF_COMP) }, + { (unsigned char*)"all", LRANGE(KDF_XMIT, KDF_COMP) }, + { (unsigned char*)"none", 0 }, + { (unsigned char*)"verbose", LELEM(KDF_VERBOSE) }, + { (unsigned char*)"xmit", LELEM(KDF_XMIT) }, + { (unsigned char*)"tunnel-xmit", LELEM(KDF_XMIT) }, + { (unsigned char*)"netlink", LELEM(KDF_NETLINK) }, + { (unsigned char*)"xform", LELEM(KDF_XFORM) }, + { (unsigned char*)"eroute", LELEM(KDF_EROUTE) }, + { (unsigned char*)"spi", LELEM(KDF_SPI) }, + { (unsigned char*)"radij", LELEM(KDF_RADIJ) }, + { (unsigned char*)"esp", LELEM(KDF_ESP) }, + { (unsigned char*)"ah", LELEM(KDF_AH) }, + { (unsigned char*)"rcv", LELEM(KDF_RCV) }, + { (unsigned char*)"tunnel", LELEM(KDF_TUNNEL) }, + { (unsigned char*)"pfkey", LELEM(KDF_PFKEY) }, + { (unsigned char*)"comp", LELEM(KDF_COMP) }, }; @@ -379,7 +379,7 @@ assert(kd->validenum != NULL); for(kevcount = kd->validenum->valuesize, kev = kd->validenum->values; - kevcount > 0 && strcasecmp(piece, kev->name)!=0; + kevcount > 0 && strcasecmp(piece, (const char*)kev->name)!=0; kev++, kevcount--); /* if we found something */ @@ -445,7 +445,7 @@ assert(kd->validenum != NULL && kd->validenum->values != NULL); for(kevcount = kd->validenum->valuesize, kev = kd->validenum->values; - kevcount > 0 && strcasecmp(s, kev->name)!=0; + kevcount > 0 && strcasecmp(s, (const char*)kev->name)!=0; kev++, kevcount--); /* if we found something */ diff -urN ../tmp-orig/openswan-2.3.0/programs/starter/starterwhack.c ./programs/starter/starterwhack.c --- ../tmp-orig/openswan-2.3.0/programs/starter/starterwhack.c 2004-12-01 08:33:14.000000000 +0100 +++ ./programs/starter/starterwhack.c 2005-03-19 14:18:55.771958476 +0100 @@ -152,7 +152,7 @@ msg.pubkey_alg = PUBKEY_ALG_RSA; if (end->id && end->rsakey1) { msg.keyid = end->id; - err = atobytes(end->rsakey1, 0, keyspace, sizeof(keyspace), + err = atobytes((char*)end->rsakey1, 0, keyspace, sizeof(keyspace), &msg.keyval.len); if (err) { starter_log(LOG_LEVEL_ERR, "conn %s/%s: rsakey malformed [%s]", @@ -160,13 +160,13 @@ return 1; } else { - msg.keyval.ptr = keyspace; + msg.keyval.ptr = (unsigned char*)keyspace; return send_whack_msg(&msg); } } if (end->id && end->rsakey2) { msg.keyid = end->id; - err = atobytes(end->rsakey2, 0, keyspace, sizeof(keyspace), + err = atobytes((char*)end->rsakey2, 0, keyspace, sizeof(keyspace), &msg.keyval.len); if (err) { starter_log(LOG_LEVEL_ERR, "conn %s/%s: rsakey malformed [%s]", @@ -174,7 +174,7 @@ return 1; } else { - msg.keyval.ptr = keyspace; + msg.keyval.ptr = (unsigned char*)keyspace; return send_whack_msg(&msg); } } -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]