]> code.ossystems Code Review - openembedded-core.git/commitdiff
GCC 4 fixes for pcmcia-cs and openswan
authorRichard Purdie <richard@openedhand.com>
Wed, 16 Nov 2005 16:15:32 +0000 (16:15 +0000)
committerRichard Purdie <richard@openedhand.com>
Wed, 16 Nov 2005 16:15:32 +0000 (16:15 +0000)
git-svn-id: https://svn.o-hand.com/repos/poky@180 311d38ba-8fff-0310-9ca6-ca027cbcb966

openembedded/packages/openswan/openswan-2.2.0/gcc4-fixes.patch [new file with mode: 0644]
openembedded/packages/openswan/openswan_2.2.0.bb
openembedded/packages/pcmcia-cs/files/gcc4_fixes.patch [new file with mode: 0644]
openembedded/packages/pcmcia-cs/pcmcia-cs_3.2.8.bb

diff --git a/openembedded/packages/openswan/openswan-2.2.0/gcc4-fixes.patch b/openembedded/packages/openswan/openswan-2.2.0/gcc4-fixes.patch
new file mode 100644 (file)
index 0000000..0e5f6eb
--- /dev/null
@@ -0,0 +1,329 @@
+Index: openswan-2.2.0/linux/lib/libfreeswan/pfkey_v2_build.c
+===================================================================
+--- openswan-2.2.0.orig/linux/lib/libfreeswan/pfkey_v2_build.c 2004-04-12 02:59:06.000000000 +0000
++++ openswan-2.2.0/linux/lib/libfreeswan/pfkey_v2_build.c      2005-11-14 13:49:01.000000000 +0000
+@@ -173,9 +173,9 @@
+               SENDERR(EINVAL);
+       }
+-      if(!(*pfkey_ext = (struct sadb_ext*)
+-           pfkey_msg = (struct sadb_msg*)
+-           MALLOC(sizeof(struct sadb_msg)))) {
++      pfkey_msg = (struct sadb_msg*)MALLOC(sizeof(struct sadb_msg));
++      *pfkey_ext = (struct sadb_ext*)pfkey_msg;
++      if(NULL == pfkey_msg) {
+               DEBUGGING(PF_KEY_DEBUG_BUILD,
+                       "pfkey_msg_hdr_build: "
+                       "memory allocation failed\n");
+@@ -297,9 +297,9 @@
+               SENDERR(EINVAL);
+       }
+       
+-      if(!(*pfkey_ext = (struct sadb_ext*)
+-           pfkey_sa = (struct sadb_sa*)
+-           MALLOC(sizeof(struct sadb_sa)))) {
++      pfkey_sa = (struct sadb_sa*)MALLOC(sizeof(struct sadb_sa));
++      *pfkey_ext = (struct sadb_ext*)pfkey_sa;
++      if (NULL == pfkey_sa) {
+               DEBUGGING(PF_KEY_DEBUG_BUILD,
+                       "pfkey_sa_build: "
+                       "memory allocation failed\n");
+@@ -374,9 +374,9 @@
+               SENDERR(EINVAL);
+       }
+-      if(!(*pfkey_ext = (struct sadb_ext*)
+-           pfkey_lifetime = (struct sadb_lifetime*)
+-           MALLOC(sizeof(struct sadb_lifetime)))) {
++      pfkey_lifetime = (struct sadb_lifetime*)MALLOC(sizeof(struct sadb_lifetime));
++      *pfkey_ext = (struct sadb_ext*)pfkey_lifetime;
++      if (NULL == pfkey_lifetime) {
+               DEBUGGING(PF_KEY_DEBUG_BUILD,
+                       "pfkey_lifetime_build: "
+                       "memory allocation failed\n");
+@@ -563,10 +563,11 @@
+               SENDERR(EINVAL);
+       }
+-      if(!(*pfkey_ext = (struct sadb_ext*)
+-           pfkey_key = (struct sadb_key*)
+-           MALLOC(sizeof(struct sadb_key) +
+-                                  DIVUP(key_bits, 64) * IPSEC_PFKEYv2_ALIGN))) {
++      pfkey_key = (struct sadb_key*)
++              MALLOC(sizeof(struct sadb_key) +
++                      DIVUP(key_bits, 64) * IPSEC_PFKEYv2_ALIGN);
++      *pfkey_ext = (struct sadb_ext*)pfkey_key;
++      if (NULL == pfkey_key) {
+               ERROR("pfkey_key_build: "
+                       "memory allocation failed\n");
+               SENDERR(ENOMEM);
+@@ -643,10 +644,11 @@
+       if((ident_type == SADB_IDENTTYPE_USERFQDN) ) {
+       }
+ #endif
+-          
+-      if(!(*pfkey_ext = (struct sadb_ext*)
+-           pfkey_ident = (struct sadb_ident*)
+-           MALLOC(ident_len * IPSEC_PFKEYv2_ALIGN))) {
++
++      pfkey_ident = (struct sadb_ident*)
++              MALLOC(ident_len * IPSEC_PFKEYv2_ALIGN);
++      *pfkey_ext = (struct sadb_ext*)pfkey_ident;
++      if (NULL == pfkey_ident) {
+               ERROR("pfkey_ident_build: "
+                       "memory allocation failed\n");
+               SENDERR(ENOMEM);
+@@ -696,10 +698,11 @@
+               (*pfkey_ext)->sadb_ext_type);
+       SENDERR(EINVAL); /* don't process these yet */
+-      if(!(*pfkey_ext = (struct sadb_ext*)
+-           pfkey_sens = (struct sadb_sens*)
+-           MALLOC(sizeof(struct sadb_sens) +
+-                  (sens_len + integ_len) * sizeof(uint64_t)))) {
++      pfkey_sens = (struct sadb_sens*)
++              MALLOC(sizeof(struct sadb_sens) +
++                  (sens_len + integ_len) * sizeof(uint64_t));
++      *pfkey_ext = (struct sadb_ext*)pfkey_sens;
++      if (NULL == pfkey_sens) {
+               ERROR("pfkey_sens_build: "
+                       "memory allocation failed\n");
+               SENDERR(ENOMEM);
+@@ -753,10 +756,11 @@
+               SENDERR(EINVAL);
+       }
+-      if(!(*pfkey_ext = (struct sadb_ext*)
+-           pfkey_prop = (struct sadb_prop*)
+-           MALLOC(sizeof(struct sadb_prop) +
+-                  comb_num * sizeof(struct sadb_comb)))) {
++      pfkey_prop = (struct sadb_prop*)
++              MALLOC(sizeof(struct sadb_prop) +
++                      comb_num * sizeof(struct sadb_comb));           
++      *pfkey_ext = (struct sadb_ext*)pfkey_prop;
++      if (NULL == pfkey_prop) {
+               ERROR("pfkey_prop_build: "
+                       "memory allocation failed\n");
+               SENDERR(ENOMEM);
+@@ -833,11 +837,11 @@
+               SENDERR(EINVAL);
+       }
+-      if(!(*pfkey_ext = (struct sadb_ext*)
+-           pfkey_supported = (struct sadb_supported*)
+-           MALLOC(sizeof(struct sadb_supported) +
+-                                             alg_num *
+-                                             sizeof(struct sadb_alg)))) {
++      pfkey_supported = (struct sadb_supported*)
++              MALLOC(sizeof(struct sadb_supported) +
++                      alg_num * sizeof(struct sadb_alg));
++      *pfkey_ext = (struct sadb_ext*)pfkey_supported;
++      if (NULL == pfkey_supported) {
+               DEBUGGING(PF_KEY_DEBUG_BUILD,
+                       "pfkey_supported_build: "
+                       "memory allocation failed\n");
+@@ -913,10 +917,11 @@
+                       ntohl(min));
+               SENDERR(EEXIST);
+       }
+-      
+-      if(!(*pfkey_ext = (struct sadb_ext*)
+-           pfkey_spirange = (struct sadb_spirange*)
+-           MALLOC(sizeof(struct sadb_spirange)))) {
++
++      pfkey_spirange = (struct sadb_spirange*)
++              MALLOC(sizeof(struct sadb_spirange));
++      *pfkey_ext = (struct sadb_ext*)pfkey_spirange;
++      if (NULL == pfkey_spirange) {
+               DEBUGGING(PF_KEY_DEBUG_BUILD,
+                       "pfkey_spirange_build: "
+                       "memory allocation failed\n");
+@@ -958,9 +963,10 @@
+               (*pfkey_ext)->sadb_ext_type);
+       SENDERR(EINVAL); /* don't process these yet */
+-      if(!(*pfkey_ext = (struct sadb_ext*)
+-           pfkey_x_kmprivate = (struct sadb_x_kmprivate*)
+-           MALLOC(sizeof(struct sadb_x_kmprivate)))) {
++      pfkey_x_kmprivate = (struct sadb_x_kmprivate*)
++              MALLOC(sizeof(struct sadb_x_kmprivate));
++      *pfkey_ext = (struct sadb_ext*)pfkey_x_kmprivate;
++      if (NULL == pfkey_x_kmprivate) {
+               DEBUGGING(PF_KEY_DEBUG_BUILD,
+                       "pfkey_x_kmprivate_build: "
+                       "memory allocation failed\n");
+@@ -1009,8 +1015,10 @@
+               SENDERR(EINVAL);
+       }
+-      if(!(*pfkey_ext = (struct sadb_ext*)pfkey_x_satype = (struct sadb_x_satype*)
+-           MALLOC(sizeof(struct sadb_x_satype)))) {
++      pfkey_x_satype = (struct sadb_x_satype*)
++              MALLOC(sizeof(struct sadb_x_satype));
++      *pfkey_ext = (struct sadb_ext*)pfkey_x_satype;
++      if (NULL == pfkey_x_satype) {
+               ERROR("pfkey_x_satype_build: "
+                       "memory allocation failed\n");
+               SENDERR(ENOMEM);
+@@ -1064,8 +1072,10 @@
+               "tunnel=%x netlink=%x xform=%x eroute=%x spi=%x radij=%x esp=%x ah=%x rcv=%x pfkey=%x ipcomp=%x verbose=%x?\n",
+               tunnel, netlink, xform, eroute, spi, radij, esp, ah, rcv, pfkey, ipcomp, verbose);
+-      if(!(*pfkey_ext = (struct sadb_ext*)pfkey_x_debug = (struct sadb_x_debug*)
+-           MALLOC(sizeof(struct sadb_x_debug)))) {
++      pfkey_x_debug = (struct sadb_x_debug*)
++              MALLOC(sizeof(struct sadb_x_debug));
++      *pfkey_ext = (struct sadb_ext*)pfkey_x_debug;
++      if (NULL == pfkey_x_debug) {
+               ERROR("pfkey_x_debug_build: "
+                       "memory allocation failed\n");
+               SENDERR(ENOMEM);
+@@ -1122,8 +1132,10 @@
+               "pfkey_x_nat_t_type_build: "
+               "type=%d\n", type);
+-      if(!(*pfkey_ext = (struct sadb_ext*)pfkey_x_nat_t_type = (struct sadb_x_nat_t_type*)
+-           MALLOC(sizeof(struct sadb_x_nat_t_type)))) {
++      pfkey_x_nat_t_type = (struct sadb_x_nat_t_type*)
++              MALLOC(sizeof(struct sadb_x_nat_t_type));
++      *pfkey_ext = (struct sadb_ext*)pfkey_x_nat_t_type;
++      if (NULL == pfkey_x_nat_t_type) {
+               DEBUGGING(PF_KEY_DEBUG_BUILD,
+                       "pfkey_x_nat_t_type_build: "
+                       "memory allocation failed\n");
+@@ -1174,8 +1186,10 @@
+               "pfkey_x_nat_t_port_build: "
+               "ext=%d, port=%d\n", exttype, port);
+-      if(!(*pfkey_ext = (struct sadb_ext*)pfkey_x_nat_t_port = (struct sadb_x_nat_t_port*)
+-           MALLOC(sizeof(struct sadb_x_nat_t_port)))) {
++      pfkey_x_nat_t_port = (struct sadb_x_nat_t_port*)
++              MALLOC(sizeof(struct sadb_x_nat_t_port));
++      *pfkey_ext = (struct sadb_ext*)pfkey_x_nat_t_port;
++      if (NULL == pfkey_x_nat_t_port) {
+               DEBUGGING(PF_KEY_DEBUG_BUILD,
+                       "pfkey_x_nat_t_port_build: "
+                       "memory allocation failed\n");
+@@ -1328,7 +1342,12 @@
+                       memcpy(pfkey_ext,
+                              extensions[ext],
+                              (extensions[ext])->sadb_ext_len * IPSEC_PFKEYv2_ALIGN);
+-                      ((char*)pfkey_ext) += (extensions[ext])->sadb_ext_len * IPSEC_PFKEYv2_ALIGN;
++                      {
++                              char *pfkey_ext_c = (char *)pfkey_ext;
++                              
++                              pfkey_ext_c += (extensions[ext])->sadb_ext_len * IPSEC_PFKEYv2_ALIGN;
++                              pfkey_ext = (struct sadb_ext *)pfkey_ext_c;
++                      }
+                       /* Mark that we have seen this extension and remember the header location */
+                       extensions_seen |= ( 1 << ext );
+               }
+Index: openswan-2.2.0/programs/pluto/connections.c
+===================================================================
+--- openswan-2.2.0.orig/programs/pluto/connections.c   2004-06-27 20:46:15.000000000 +0000
++++ openswan-2.2.0/programs/pluto/connections.c        2005-11-14 14:01:09.000000000 +0000
+@@ -30,6 +30,7 @@
+ #include <openswan.h>
+ #include <openswan/ipsec_policy.h>
++#include "pfkeyv2.h"
+ #include "kameipsec.h"
+ #include "constants.h"
+Index: openswan-2.2.0/programs/pluto/ipsec_doi.c
+===================================================================
+--- openswan-2.2.0.orig/programs/pluto/ipsec_doi.c     2004-09-02 01:24:23.000000000 +0000
++++ openswan-2.2.0/programs/pluto/ipsec_doi.c  2005-11-14 14:03:17.000000000 +0000
+@@ -31,6 +31,7 @@
+ #include <openswan.h>
+ #include <openswan/ipsec_policy.h>
++#include "pfkeyv2.h"
+ #include "constants.h"
+ #include "defs.h"
+Index: openswan-2.2.0/programs/pluto/rcv_whack.c
+===================================================================
+--- openswan-2.2.0.orig/programs/pluto/rcv_whack.c     2004-06-14 02:01:32.000000000 +0000
++++ openswan-2.2.0/programs/pluto/rcv_whack.c  2005-11-14 14:04:08.000000000 +0000
+@@ -31,6 +31,7 @@
+ #include <sys/queue.h>
+ #include <openswan.h>
++#include "pfkeyv2.h"
+ #include "constants.h"
+ #include "defs.h"
+Index: openswan-2.2.0/programs/pluto/log.c
+===================================================================
+--- openswan-2.2.0.orig/programs/pluto/log.c   2004-06-14 01:46:03.000000000 +0000
++++ openswan-2.2.0/programs/pluto/log.c        2005-11-14 14:02:33.000000000 +0000
+@@ -30,6 +30,7 @@
+ #include <sys/types.h>
+ #include <openswan.h>
++#include "pfkeyv2.h"
+ #include "constants.h"
+ #include "oswlog.h"
+Index: openswan-2.2.0/programs/pluto/spdb.c
+===================================================================
+--- openswan-2.2.0.orig/programs/pluto/spdb.c  2004-05-25 22:25:02.000000000 +0000
++++ openswan-2.2.0/programs/pluto/spdb.c       2005-11-14 14:02:55.000000000 +0000
+@@ -24,6 +24,7 @@
+ #include <openswan.h>
+ #include <openswan/ipsec_policy.h>
++#include "pfkeyv2.h"
+ #include "constants.h"
+ #include "oswlog.h"
+Index: openswan-2.2.0/programs/pluto/db_ops.c
+===================================================================
+--- openswan-2.2.0.orig/programs/pluto/db_ops.c        2004-06-04 01:59:33.000000000 +0000
++++ openswan-2.2.0/programs/pluto/db_ops.c     2005-11-14 13:54:10.000000000 +0000
+@@ -181,7 +181,13 @@
+       ctx->trans0 = ctx->prop.trans = new_trans;
+       /* update trans_cur (by offset) */
+       offset = (char *)(new_trans) - (char *)(old_trans);
+-      (char *)(ctx->trans_cur) += offset;
++
++      {
++        char *cctx = (char *)(ctx->trans_cur);
++        
++        cctx += offset;
++        ctx->trans_cur = (struct db_trans *)cctx;
++      }
+       /* update elem count */
+       ctx->max_trans = max_trans;
+       PFREE_ST(old_trans, db_trans_st);
+@@ -213,12 +219,25 @@
+       
+       /* update attrs0 and attrs_cur (obviously) */
+       offset = (char *)(new_attrs) - (char *)(old_attrs);
+-      (char *)ctx->attrs0 += offset;
+-      (char *)ctx->attrs_cur += offset;
++      {
++        char *actx = (char *)(ctx->attrs0);
++        
++        actx += offset;
++        ctx->attrs0 = (struct db_attr *)actx;
++        
++        actx = (char *)ctx->attrs_cur;
++        actx += offset;
++        ctx->attrs_cur = (struct db_attr *)actx;
++      }
++
+       /* for each transform, rewrite attrs pointer by offsetting it */
+-      for (t=ctx->prop.trans, ti=0; ti < ctx->prop.trans_cnt; t++, ti++) {
+-              (char *)(t->attrs) += offset;
++        for (t=ctx->prop.trans, ti=0; ti < ctx->prop.trans_cnt; t++, ti++) {
++                      char *actx = (char *)(t->attrs);
++       
++                      actx += offset;
++                      t->attrs = (struct db_attr *)actx;
+       }
++
+       /* update elem count */
+       ctx->max_attrs = max_attrs;
+       PFREE_ST(old_attrs, db_attrs_st);
index aca04b39c29078404e01d358c919ad94ff73b6e7..5246b0044a8bb13772f8a09b0d1fa1e9dc8effd7 100644 (file)
@@ -7,10 +7,11 @@ MAINTAINER = "Bruno Randolf <bruno.randolf@4g-systems.biz>"
 DEPENDS = "gmp flex-native"
 RRECOMMENDS = "kernel-module-ipsec"
 RDEPENDS_nylon = "perl"
-PR = "r3"
+PR = "r4"
 
 SRC_URI = "http://www.openswan.org/download/openswan-${PV}.tar.gz \
           file://openswan-2.2.0-gentoo.patch;patch=1 \
+           file://gcc4-fixes.patch;patch=1 \
           file://ld-library-path-breakage.patch;patch=1"
 S = "${WORKDIR}/openswan-${PV}"
 
diff --git a/openembedded/packages/pcmcia-cs/files/gcc4_fixes.patch b/openembedded/packages/pcmcia-cs/files/gcc4_fixes.patch
new file mode 100644 (file)
index 0000000..c68ba7a
--- /dev/null
@@ -0,0 +1,26 @@
+Index: pcmcia-cs-3.2.8/debug-tools/lspnp.c
+===================================================================
+--- pcmcia-cs-3.2.8.orig/debug-tools/lspnp.c   2002-02-13 05:45:01.000000000 +0000
++++ pcmcia-cs-3.2.8/debug-tools/lspnp.c        2005-11-11 23:43:33.000000000 +0000
+@@ -496,7 +496,7 @@
+               dump_io_fixed(r); break;
+           }
+       }
+-      (u_char *)p += sz + 1;
++      p = (union pnp_resource *) ((u_char *)p + sz + 1);
+     }
+     return (u_char *)p;
+ }
+Index: pcmcia-cs-3.2.8/debug-tools/setpnp.c
+===================================================================
+--- pcmcia-cs-3.2.8.orig/debug-tools/setpnp.c  2001-10-10 02:58:12.000000000 +0000
++++ pcmcia-cs-3.2.8/debug-tools/setpnp.c       2005-11-11 23:44:32.000000000 +0000
+@@ -163,7 +163,7 @@
+               break;
+           }
+       }
+-      (u_char *)p += sz + 1;
++      p = (union pnp_resource *) ((u_char *)p + sz + 1);
+     }
+     return (u_char *)p;
+ }
index fa685f8d5f91f8869f00230ccef8da6b927574f3..e0ebf70d9380b5889837fc5fb561ca6027197759 100644 (file)
@@ -3,7 +3,7 @@ SECTION = "base"
 PRIORITY = "required"
 LICENSE = "GPL"
 DEPENDS = "virtual/kernel"
-PR = "r22"
+PR = "r23"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/pcmcia-cs/pcmcia-cs-${PV}.tar.gz \
           file://busybox.patch;patch=1 \
@@ -12,6 +12,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/pcmcia-cs/pcmcia-cs-${PV}.tar.gz \
           file://automount.patch;patch=1 \
           file://ratoc-cfu1u.patch;patch=1 \
           file://no-hostap-cards.patch;patch=1 \
+          file://gcc4_fixes.patch;patch=1 \
           file://pcmcia \
           file://ide.opts \
           file://wireless.opts \