rpms/cudd/devel cudd-2.4.2-64bit.patch, NONE, 1.1 cudd-2.4.2-init.patch, NONE, 1.1 cudd-2.4.2-retval.patch, NONE, 1.1 cudd-2.4.2-sharedlib.patch, NONE, 1.1 cudd-2.4.2-signedness.patch, NONE, 1.1 .cvsignore, 1.2, 1.3 cudd.spec, 1.5, 1.6 sources, 1.2, 1.3 cudd-2.4.1-64bit.patch, 1.1, NONE cudd-2.4.1-build-obj-dir.patch, 1.2, NONE cudd-2.4.1-init.patch, 1.1, NONE cudd-2.4.1-retval.patch, 1.1, NONE cudd-2.4.1-sharedlib.patch, 1.1, NONE cudd-2.4.1-signedness.patch, 1.1, NONE cudd-2.4.1-strcat.patch, 1.1, NONE

Jerry James jjames at fedoraproject.org
Wed May 13 16:11:08 UTC 2009


Author: jjames

Update of /cvs/pkgs/rpms/cudd/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv6586/devel

Modified Files:
	.cvsignore cudd.spec sources 
Added Files:
	cudd-2.4.2-64bit.patch cudd-2.4.2-init.patch 
	cudd-2.4.2-retval.patch cudd-2.4.2-sharedlib.patch 
	cudd-2.4.2-signedness.patch 
Removed Files:
	cudd-2.4.1-64bit.patch cudd-2.4.1-build-obj-dir.patch 
	cudd-2.4.1-init.patch cudd-2.4.1-retval.patch 
	cudd-2.4.1-sharedlib.patch cudd-2.4.1-signedness.patch 
	cudd-2.4.1-strcat.patch 
Log Message:
* Tue May 12 2009 Jerry James <loganjerry at gmail.com> - 2.4.2-1
- Update to 2.4.2
- Drop upstreamed cudd-2.4.1-strcat.patch
- Merge Mamoru's patch into cudd-2.4.2-sharedlib.patch


cudd-2.4.2-64bit.patch:

--- NEW FILE cudd-2.4.2-64bit.patch ---
diff -dur cudd-2.4.2.ORIG/cudd/cudd.h cudd-2.4.2/cudd/cudd.h
--- cudd-2.4.2.ORIG/cudd/cudd.h	2009-03-07 17:15:46.000000000 -0700
+++ cudd-2.4.2/cudd/cudd.h	2009-05-12 10:23:52.000000000 -0600
@@ -61,6 +61,7 @@
 /* Nested includes                                                           */
 /*---------------------------------------------------------------------------*/
 
+#include <bits/wordsize.h>
 #include "mtr.h"
 #include "epd.h"
 
@@ -75,14 +76,22 @@
 #define CUDD_VERSION "2.4.2"
 
 #ifndef SIZEOF_VOID_P
+#if __WORDSIZE == 64
+#define SIZEOF_VOID_P 8
+#else
 #define SIZEOF_VOID_P 4
 #endif
+#endif
 #ifndef SIZEOF_INT
 #define SIZEOF_INT 4
 #endif
 #ifndef SIZEOF_LONG
+#if __WORDSIZE == 64
+#define SIZEOF_LONG 8
+#else
 #define SIZEOF_LONG 4
 #endif
+#endif
 
 #ifndef TRUE
 #define TRUE 1
diff -dur cudd-2.4.2.ORIG/mtr/mtr.h cudd-2.4.2/mtr/mtr.h
--- cudd-2.4.2.ORIG/mtr/mtr.h	2009-02-19 19:12:23.000000000 -0700
+++ cudd-2.4.2/mtr/mtr.h	2009-05-12 10:23:52.000000000 -0600
@@ -63,6 +63,8 @@
 /* Nested includes                                                           */
 /*---------------------------------------------------------------------------*/
 
+#include <bits/wordsize.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -72,8 +74,12 @@
 /*---------------------------------------------------------------------------*/
 
 #ifndef SIZEOF_VOID_P
+#if __WORDSIZE == 64
+#define SIZEOF_VOID_P 8
+#else
 #define SIZEOF_VOID_P 4
 #endif
+#endif
 #ifndef SIZEOF_INT
 #define SIZEOF_INT 4
 #endif
diff -dur cudd-2.4.2.ORIG/util/util.h cudd-2.4.2/util/util.h
--- cudd-2.4.2.ORIG/util/util.h	2009-02-17 07:18:57.000000000 -0700
+++ cudd-2.4.2/util/util.h	2009-05-12 10:23:52.000000000 -0600
@@ -3,6 +3,8 @@
 #ifndef UTIL_H
 #define UTIL_H
 
+#include <bits/wordsize.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -20,14 +22,22 @@
 #endif
 
 #ifndef SIZEOF_VOID_P
+#if __WORDSIZE == 64
+#define SIZEOF_VOID_P 8
+#else
 #define SIZEOF_VOID_P 4
 #endif
+#endif
 #ifndef SIZEOF_INT
 #define SIZEOF_INT 4
 #endif
 #ifndef SIZEOF_LONG
+#if __WORDSIZE == 64
+#define SIZEOF_LONG 8
+#else
 #define SIZEOF_LONG 4
 #endif
+#endif
 
 #if SIZEOF_VOID_P == 8 && SIZEOF_INT == 4
 typedef long util_ptrint;

cudd-2.4.2-init.patch:

--- NEW FILE cudd-2.4.2-init.patch ---
diff -durp cudd-2.4.2.ORIG/cudd/cuddAddIte.c cudd-2.4.2/cudd/cuddAddIte.c
--- cudd-2.4.2.ORIG/cudd/cuddAddIte.c	2004-08-24 15:37:42.000000000 -0600
+++ cudd-2.4.2/cudd/cuddAddIte.c	2009-05-12 10:21:14.000000000 -0600
@@ -447,7 +447,7 @@ cuddAddIteRecur(
     DdNode *one,*zero;
     DdNode *r,*Fv,*Fnv,*Gv,*Gnv,*Hv,*Hnv,*t,*e;
     unsigned int topf,topg,toph,v;
-    int index;
+    int index = 0;
 
     statLine(dd);
     /* Trivial cases. */
diff -durp cudd-2.4.2.ORIG/cudd/cuddAddWalsh.c cudd-2.4.2/cudd/cuddAddWalsh.c
--- cudd-2.4.2.ORIG/cudd/cuddAddWalsh.c	2009-02-17 07:16:38.000000000 -0700
+++ cudd-2.4.2/cudd/cuddAddWalsh.c	2009-05-12 10:21:14.000000000 -0600
@@ -298,7 +298,7 @@ addWalshInt(
   int  n)
 {
     DdNode *one, *minusone;
-    DdNode *t, *u, *t1, *u1, *v, *w;
+    DdNode *t = NULL, *u, *t1, *u1, *v, *w;
     int     i;
 
     one = DD_ONE(dd);
diff -durp cudd-2.4.2.ORIG/cudd/cuddBddIte.c cudd-2.4.2/cudd/cuddBddIte.c
--- cudd-2.4.2.ORIG/cudd/cuddBddIte.c	2004-08-24 15:37:43.000000000 -0600
+++ cudd-2.4.2/cudd/cuddBddIte.c	2009-05-12 10:21:14.000000000 -0600
@@ -635,7 +635,7 @@ cuddBddIteRecur(
     DdNode	 *one, *zero, *res;
     DdNode	 *r, *Fv, *Fnv, *Gv, *Gnv, *H, *Hv, *Hnv, *t, *e;
     unsigned int topf, topg, toph, v;
-    int		 index;
+    int		 index = 0;
     int		 comple;
 
     statLine(dd);
diff -durp cudd-2.4.2.ORIG/cudd/cuddDecomp.c cudd-2.4.2/cudd/cuddDecomp.c
--- cudd-2.4.2.ORIG/cudd/cuddDecomp.c	2004-08-24 15:37:43.000000000 -0600
+++ cudd-2.4.2/cudd/cuddDecomp.c	2009-05-12 10:21:14.000000000 -0600
@@ -1689,7 +1689,7 @@ BuildConjuncts(
   st_table * mintermTable)
 {
     int topid, distance;
-    Conjuncts *factorsNv, *factorsNnv, *factors;
+    Conjuncts *factorsNv = NULL, *factorsNnv = NULL, *factors;
     Conjuncts *dummy;
     DdNode *N, *Nv, *Nnv, *temp, *g1, *g2, *h1, *h2, *topv;
     double minNv = 0.0, minNnv = 0.0;
diff -durp cudd-2.4.2.ORIG/cudd/cuddGroup.c cudd-2.4.2/cudd/cuddGroup.c
--- cudd-2.4.2.ORIG/cudd/cuddGroup.c	2009-05-12 10:20:42.000000000 -0600
+++ cudd-2.4.2/cudd/cuddGroup.c	2009-05-12 10:21:14.000000000 -0600
@@ -454,7 +454,7 @@ ddReorderChildren(
   Cudd_ReorderingType method)
 {
     int lower;
-    int upper;
+    int upper = 0;
     int result;
     unsigned int initialSize;
 
@@ -1492,7 +1492,7 @@ ddGroupMove(
     Move *move;
     int  size;
     int  i,j,xtop,xbot,xsize,ytop,ybot,ysize,newxtop;
-    int  swapx,swapy;
+    int  swapx = 0, swapy = 0;
 #if defined(DD_DEBUG) && defined(DD_VERBOSE)
     int  initialSize,bestSize;
 #endif
@@ -1672,7 +1672,7 @@ ddGroupSiftingBackward(
 {
     Move *move;
     int  res;
-    Move *end_move;
+    Move *end_move = NULL;
     int diff, tmp_diff;
     int index;
     unsigned int pairlev;
diff -durp cudd-2.4.2.ORIG/cudd/cuddHarwell.c cudd-2.4.2/cudd/cuddHarwell.c
--- cudd-2.4.2.ORIG/cudd/cuddHarwell.c	2004-08-24 15:37:44.000000000 -0600
+++ cudd-2.4.2/cudd/cuddHarwell.c	2009-05-12 10:21:14.000000000 -0600
@@ -248,6 +248,7 @@ Cudd_addHarwell(
     lny = i;
 
     /* Allocate or reallocate arrays for variables as needed */
+    lx = ly = lxn = lyn = NULL;
     if (*nx == 0) {
 	if (lnx > 0) {
 	    *x = lx = ALLOC(DdNode *,lnx);
diff -durp cudd-2.4.2.ORIG/cudd/cuddLinear.c cudd-2.4.2/cudd/cuddLinear.c
--- cudd-2.4.2.ORIG/cudd/cuddLinear.c	2009-02-19 19:17:45.000000000 -0700
+++ cudd-2.4.2/cudd/cuddLinear.c	2009-05-12 10:21:14.000000000 -0600
@@ -373,7 +373,7 @@ cuddLinearInPlace(
     int    posn;
     int    isolated;
     DdNode *f,*f0,*f1,*f01,*f00,*f11,*f10,*newf1,*newf0;
-    DdNode *g,*next,*last;
+    DdNode *g,*next,*last = NULL;
     DdNodePtr *previousP;
     DdNode *tmp;
     DdNode *sentinel = &(table->sentinel);
diff -durp cudd-2.4.2.ORIG/cudd/cuddPriority.c cudd-2.4.2/cudd/cuddPriority.c
--- cudd-2.4.2.ORIG/cudd/cuddPriority.c	2009-02-19 19:17:45.000000000 -0700
+++ cudd-2.4.2/cudd/cuddPriority.c	2009-05-12 10:22:48.000000000 -0600
@@ -781,6 +781,7 @@ Cudd_Inequality(
     else if ((-(1 << N) + 1) >= c) return(one);
 
     /* Build the result bottom up. */
+    map[0] = map[1] = NULL;
     for (i = 1; i <= N; i++) {
 	int kTrueLower, kFalseLower;
 	int leftChild, middleChild, rightChild;
@@ -789,6 +790,7 @@ Cudd_Inequality(
 	DdNode *newMap[2];
 	int newIndex[2];
 
+	newMap[0] = newMap[1] = NULL;
 	kTrueLower = kTrue;
 	kFalseLower = kFalse;
 	/* kTrue = ceiling((c-1)/2^i) + 1 */
@@ -969,6 +971,7 @@ Cudd_Disequality(
     if ((1 << N) - 1 < c || (-(1 << N) + 1) > c) return(one);
 
     /* Build the result bottom up. */
+    map[0] = map[1] = NULL;
     for (i = 1; i <= N; i++) {
 	int kTrueLbLower, kTrueUbLower;
 	int leftChild, middleChild, rightChild;
@@ -977,6 +980,7 @@ Cudd_Disequality(
 	DdNode *newMap[2];
 	int newIndex[2];
 
+	newMap[0] = newMap[1] = NULL;
 	kTrueLbLower = kTrueLb;
 	kTrueUbLower = kTrueUb;
 	/* kTrueLb = floor((c-1)/2^i) + 2 */
@@ -1426,7 +1430,7 @@ cuddCProjectionRecur(
 {
     DdNode *res, *res1, *res2, *resA;
     DdNode *r, *y, *RT, *RE, *YT, *YE, *Yrest, *Ra, *Ran, *Gamma, *Alpha;
-    unsigned int topR, topY, top, index;
+    unsigned int topR, topY, top, index = 0U;
     DdNode *one = DD_ONE(dd);
 
     statLine(dd);
diff -durp cudd-2.4.2.ORIG/cudd/cuddReorder.c cudd-2.4.2/cudd/cuddReorder.c
--- cudd-2.4.2.ORIG/cudd/cuddReorder.c	2009-02-21 11:25:01.000000000 -0700
+++ cudd-2.4.2/cudd/cuddReorder.c	2009-05-12 10:21:14.000000000 -0600
@@ -606,7 +606,7 @@ cuddSwapping(
     int	iterate;
     int previousSize;
     Move *moves, *move;
-    int	pivot;
+    int	pivot = 0;
     int	modulo;
     int result;
 
diff -durp cudd-2.4.2.ORIG/cudd/cuddSubsetSP.c cudd-2.4.2/cudd/cuddSubsetSP.c
--- cudd-2.4.2.ORIG/cudd/cuddSubsetSP.c	2009-02-19 19:17:45.000000000 -0700
+++ cudd-2.4.2/cudd/cuddSubsetSP.c	2009-05-12 10:21:14.000000000 -0600
@@ -1257,17 +1257,17 @@ BuildSubsetBdd(
 {
     DdNode *N, *Nv, *Nnv;
     DdNode *ThenBranch, *ElseBranch, *childBranch;
-    DdNode *child, *regChild, *regNnv, *regNv;
+    DdNode *child, *regChild, *regNnv = NULL, *regNv = NULL;
     NodeDist_t *nodeStatNv, *nodeStat, *nodeStatNnv;
     DdNode *neW, *topv, *regNew;
     char *entry;
     unsigned int topid;
-    unsigned int childPathLength, oddLen, evenLen, NnvPathLength, NvPathLength;
+    unsigned int childPathLength, oddLen, evenLen;
+    unsigned int NnvPathLength = 0U, NvPathLength = 0U;
     unsigned int NvBotDist, NnvBotDist;
     int tiebreakChild;
     int  processingDone, thenDone, elseDone;
 
-
 #ifdef DD_DEBUG
     numCalls++;
 #endif
diff -durp cudd-2.4.2.ORIG/cudd/cuddSymmetry.c cudd-2.4.2/cudd/cuddSymmetry.c
--- cudd-2.4.2.ORIG/cudd/cuddSymmetry.c	2009-02-19 19:17:45.000000000 -0700
+++ cudd-2.4.2/cudd/cuddSymmetry.c	2009-05-12 10:21:14.000000000 -0600
@@ -1472,10 +1472,10 @@ ddSymmGroupMove(
   Move ** moves)
 {
     Move *move;
-    int	 size;
+    int	 size = 0;
     int  i,j;
     int  xtop,xbot,xsize,ytop,ybot,ysize,newxtop;
-    int  swapx,swapy;
+    int  swapx = 0, swapy = 0;
 
 #ifdef DD_DEBUG
     assert(x < y);	/* we assume that x < y */
@@ -1551,7 +1551,7 @@ ddSymmGroupMoveBackward(
   int  x,
   int  y)
 {
-    int	size;
+    int	size = 0;
     int i,j;
     int	xtop,xbot,xsize,ytop,ybot,ysize,newxtop;
 
diff -durp cudd-2.4.2.ORIG/cudd/cuddTable.c cudd-2.4.2/cudd/cuddTable.c
--- cudd-2.4.2.ORIG/cudd/cuddTable.c	2009-02-19 19:17:45.000000000 -0700
+++ cudd-2.4.2/cudd/cuddTable.c	2009-05-12 10:21:14.000000000 -0600
@@ -1789,7 +1789,7 @@ cuddInsertSubtables(
     int oldsize,newsize;
     int i,j,index,reorderSave;
     unsigned int numSlots = unique->initSlots;
-    int *newperm, *newinvperm, *newmap;
+    int *newperm, *newinvperm, *newmap = NULL;
     DdNode *one, *zero;
 
 #ifdef DD_DEBUG
@@ -2516,7 +2516,7 @@ ddResizeTable(
     int oldsize,newsize;
     int i,j,reorderSave;
     int numSlots = unique->initSlots;
-    int *newperm, *newinvperm, *newmap;
+    int *newperm, *newinvperm, *newmap = NULL;
     DdNode *one, *zero;
 
     oldsize = unique->size;
diff -durp cudd-2.4.2.ORIG/cudd/cuddUtil.c cudd-2.4.2/cudd/cuddUtil.c
--- cudd-2.4.2.ORIG/cudd/cuddUtil.c	2009-03-07 21:08:41.000000000 -0700
+++ cudd-2.4.2/cudd/cuddUtil.c	2009-05-12 10:21:14.000000000 -0600
@@ -1400,7 +1400,7 @@ Cudd_bddPickArbitraryMinterms(
     DdNode **old, *neW;
     double minterms;
     char *saveString;
-    int saveFlag, savePoint, isSame;
+    int saveFlag, savePoint = 0, isSame;
 
     minterms = Cudd_CountMinterm(dd,f,n);
     if ((double)k > minterms) {
diff -durp cudd-2.4.2.ORIG/cudd/cuddZddGroup.c cudd-2.4.2/cudd/cuddZddGroup.c
--- cudd-2.4.2.ORIG/cudd/cuddZddGroup.c	2009-05-12 10:20:42.000000000 -0600
+++ cudd-2.4.2/cudd/cuddZddGroup.c	2009-05-12 10:21:14.000000000 -0600
@@ -434,7 +434,7 @@ zddReorderChildren(
   Cudd_ReorderingType method)
 {
     int lower;
-    int upper;
+    int upper = 0;
     int result;
     unsigned int initialSize;
 
@@ -1082,7 +1082,7 @@ zddGroupMove(
     Move *move;
     int  size;
     int  i,j,xtop,xbot,xsize,ytop,ybot,ysize,newxtop;
-    int  swapx,swapy;
+    int  swapx = 0, swapy = 0;
 #if defined(DD_DEBUG) && defined(DD_VERBOSE)
     int  initialSize,bestSize;
 #endif
diff -durp cudd-2.4.2.ORIG/cudd/cuddZddReord.c cudd-2.4.2/cudd/cuddZddReord.c
--- cudd-2.4.2.ORIG/cudd/cuddZddReord.c	2004-08-24 15:37:47.000000000 -0600
+++ cudd-2.4.2/cudd/cuddZddReord.c	2009-05-12 10:21:14.000000000 -0600
@@ -491,7 +491,7 @@ cuddZddSwapInPlace(
     int		i;
     int		posn;
     DdNode	*f, *f1, *f0, *f11, *f10, *f01, *f00;
-    DdNode	*newf1, *newf0, *next;
+    DdNode	*newf1 = NULL, *newf0, *next;
     DdNodePtr	g, *lastP, *previousP;
 
 #ifdef DD_DEBUG
@@ -752,7 +752,7 @@ cuddZddSwapping(
     int iterate;
     int previousSize;
     Move *moves, *move;
-    int	pivot;
+    int	pivot = 0;
     int modulo;
     int result;
 
diff -durp cudd-2.4.2.ORIG/cudd/cuddZddSymm.c cudd-2.4.2/cudd/cuddZddSymm.c
--- cudd-2.4.2.ORIG/cudd/cuddZddSymm.c	2004-08-24 15:37:47.000000000 -0600
+++ cudd-2.4.2/cudd/cuddZddSymm.c	2009-05-12 10:21:14.000000000 -0600
@@ -1483,7 +1483,7 @@ zdd_group_move(
     Move	*move;
     int		size;
     int		i, temp, gxtop, gxbot, gybot, yprev;
-    int		swapx, swapy;
+    int		swapx = 0, swapy = 0;
 
 #ifdef DD_DEBUG
     assert(x < y);	/* we assume that x < y */
@@ -1586,7 +1586,7 @@ zdd_group_move_backward(
   int  x,
   int  y)
 {
-    int	       size;
+    int	       size = 0;
     int        i, temp, gxtop, gxbot, gybot, yprev;
 
 #ifdef DD_DEBUG
diff -durp cudd-2.4.2.ORIG/nanotrav/bnet.c cudd-2.4.2/nanotrav/bnet.c
--- cudd-2.4.2.ORIG/nanotrav/bnet.c	2009-02-20 23:35:51.000000000 -0700
+++ cudd-2.4.2/nanotrav/bnet.c	2009-05-12 10:21:14.000000000 -0600
@@ -1890,6 +1890,7 @@ buildMuxBDD(
     DdNode *func, *f, *g, *h;
     BnetNode *auxnd;
 
+    mux[0] = mux[1] = phase[0] = phase[1] = 0;
     if (nd->ninp != 3) return(0);
 
     for (line = nd->f; line != NULL; line = line->next) {
diff -durp cudd-2.4.2.ORIG/nanotrav/ntr.c cudd-2.4.2/nanotrav/ntr.c
--- cudd-2.4.2.ORIG/nanotrav/ntr.c	2009-02-20 23:35:51.000000000 -0700
+++ cudd-2.4.2/nanotrav/ntr.c	2009-05-12 10:21:14.000000000 -0600
@@ -964,7 +964,7 @@ Ntr_SCC(
     DdNode *neW;
     DdNode *one, *zero;
     DdNode *states, *scc;
-    DdNode *tmp;
+    DdNode *tmp = NULL;
     DdNode *SCCs[10];
     int depth;
     int nscc = 0;

cudd-2.4.2-retval.patch:

--- NEW FILE cudd-2.4.2-retval.patch ---
diff -durp cudd-2.4.2.ORIG/dddmp/dddmpDbg.c cudd-2.4.2/dddmp/dddmpDbg.c
--- cudd-2.4.2.ORIG/dddmp/dddmpDbg.c	2004-02-18 09:23:31.000000000 -0700
+++ cudd-2.4.2/dddmp/dddmpDbg.c	2009-05-12 10:20:50.000000000 -0600
@@ -97,7 +97,8 @@ Dddmp_cuddBddDisplayBinary(
   while (fgets(buf, 999,fp)!=NULL) {
     fprintf (fpo, "%s", buf);
     if (strncmp(buf, ".nnodes", 7) == 0) {
-      sscanf (buf, "%*s %d", &nnodes);
+      if (sscanf (buf, "%*s %d", &nnodes) == EOF)
+	break;
     }
     if (strncmp(buf, ".rootids", 8) == 0) {
       break;
@@ -141,7 +142,8 @@ Dddmp_cuddBddDisplayBinary(
 
   }
 
-  fgets(buf, 999,fp);
+  if (fgets(buf, 999,fp) == NULL)
+    buf[0] = '\0';
   if (strncmp(buf, ".end", 4) != 0) {
     return (0);
   }
diff -durp cudd-2.4.2.ORIG/dddmp/dddmpLoad.c cudd-2.4.2/dddmp/dddmpLoad.c
--- cudd-2.4.2.ORIG/dddmp/dddmpLoad.c	2009-02-17 17:41:45.000000000 -0700
+++ cudd-2.4.2/dddmp/dddmpLoad.c	2009-05-12 10:20:50.000000000 -0600
@@ -1109,7 +1109,8 @@ DddmpCuddDdArrayLoad (
 
   /*------------------------ Deal With the File Tail -----------------------*/
 
-  fgets (buf, DDDMP_MAXSTRLEN-1,fp);
+  if (fgets (buf, DDDMP_MAXSTRLEN-1,fp) == NULL)
+    buf[0] = '\0';
   Dddmp_CheckAndGotoLabel (!matchkeywd(buf, ".end"),
     "Error .end not found.", failure);
 
@@ -1273,7 +1274,8 @@ DddmpBddReadHeader (
 
     /* comment */
     if (buf[0] == '#') {
-      fgets(buf,DDDMP_MAXSTRLEN,fp);
+      if (fgets(buf,DDDMP_MAXSTRLEN,fp) == NULL)
+	buf[0] = '\0';
       continue;
     }
 
@@ -1426,7 +1428,8 @@ DddmpBddReadHeader (
     }
 
     if (matchkeywd(buf, ".nodes")) {
-      fgets(buf,DDDMP_MAXSTRLEN,fp);
+      if (fgets(buf,DDDMP_MAXSTRLEN,fp) == NULL)
+	buf[0] = '\0';
       break;
     }
 
diff -durp cudd-2.4.2.ORIG/dddmp/dddmpLoadCnf.c cudd-2.4.2/dddmp/dddmpLoadCnf.c
--- cudd-2.4.2.ORIG/dddmp/dddmpLoadCnf.c	2004-02-20 01:35:56.000000000 -0700
+++ cudd-2.4.2/dddmp/dddmpLoadCnf.c	2009-05-12 10:20:50.000000000 -0600
@@ -554,7 +554,8 @@ DddmpBddReadHeaderCnf (
 
     /* Init Problem Line */ 
     if (buf[0] == 'p') {
-      fscanf (fp, "%*s %d %d", &nv, &nc);
+      if (fscanf (fp, "%*s %d %d", &nv, &nc) == EOF)
+	break;
       Hdr->nVarsCnf = nv;
       Hdr->nClausesCnf = nc;
       break;
@@ -569,7 +570,8 @@ DddmpBddReadHeaderCnf (
 
     /* Skip Comment? */
     if (buf[0] != '.') {
-      fgets (buf, DDDMP_MAXSTRLEN, fp);
+      if (fgets (buf, DDDMP_MAXSTRLEN, fp) == NULL)
+	buf[0] = '\0';
       continue;
     }
 
@@ -811,7 +813,8 @@ DddmpReadCnfClauses (
     /* Check for Comment */
     if (word[0] == 'c') {
       /* Comment Found: Skip line */
-      fgets (word, DDDMP_MAX_CNF_ROW_LENGTH-1, fp);
+      if (fgets (word, DDDMP_MAX_CNF_ROW_LENGTH-1, fp) == NULL)
+	word[0] = '\0';
       break;
     }
 
diff -durp cudd-2.4.2.ORIG/epd/epd.c cudd-2.4.2/epd/epd.c
--- cudd-2.4.2.ORIG/epd/epd.c	2004-08-24 15:33:13.000000000 -0600
+++ cudd-2.4.2/epd/epd.c	2009-05-12 10:20:50.000000000 -0600
@@ -1094,7 +1094,8 @@ EpdGetExponentDecimal(double value)
 
   sprintf(str, "%E", value);
   pos = strstr(str, "E");
-  sscanf(pos, "E%d", &exponent);
+  if (sscanf(pos, "E%d", &exponent) == EOF)
+    exponent = 0;
   return(exponent);
 }
 
diff -durp cudd-2.4.2.ORIG/util/pipefork.c cudd-2.4.2/util/pipefork.c
--- cudd-2.4.2.ORIG/util/pipefork.c	2009-02-17 07:18:57.000000000 -0700
+++ cudd-2.4.2/util/pipefork.c	2009-05-12 10:20:50.000000000 -0600
@@ -39,8 +39,10 @@ util_pipefork(
      * fildes[0] for reading from command
      * fildes[1] for writing to command
      */
-    (void) pipe(topipe);
-    (void) pipe(frompipe);
+    if (pipe(topipe) < 0 || pipe(frompipe) < 0) {
+      fputs("Pipe creation failed.\n", stderr);
+      return 1;
+    }
 
 #ifdef __CYGWIN32__
     if ((forkpid = fork()) == 0) {

cudd-2.4.2-sharedlib.patch:

--- NEW FILE cudd-2.4.2-sharedlib.patch ---
diff -dur cudd-2.4.2.ORIG/cudd/doc/node3.html cudd-2.4.2/cudd/doc/node3.html
--- cudd-2.4.2.ORIG/cudd/doc/node3.html	2009-02-20 23:33:06.000000000 -0700
+++ cudd-2.4.2/cudd/doc/node3.html	2009-05-12 10:02:59.000000000 -0600
@@ -155,16 +155,18 @@
 <P>
 To build an application that uses the CUDD package, you should add
 <PRE>
-#include "util.h"
-#include "cudd.h"
+#include &lt;util.h&gt;
+#include &lt;cudd.h&gt;
 </PRE>
 <A NAME="82"></A>
-to your source files, and should link
+to your source files, compile with <CODE>-I/usr/include/cudd</CODE>, and link
 <code>libcudd.a</code><A NAME="83"></A>,
 <code>libmtr.a</code><A NAME="84"></A>,
 <code>libst.a</code><A NAME="85"></A>, and
 <code>libutil.a</code><A NAME="86"></A> to your executable. (All these
-libraries are part of the distribution.) Some
+libraries are part of the distribution.)  Note that shared library equivalents
+are also available, and are linked to one another appropriately; i.e., it is
+sufficient to add <CODE>-lcudd</CODE> to your link command.  Some
 platforms require specific compiler and linker flags.  Refer to the
 <TT>Makefile<A NAME="87"></A></TT> in the top level directory of the
 distribution.
diff -dur cudd-2.4.2.ORIG/cudd/Makefile cudd-2.4.2/cudd/Makefile
--- cudd-2.4.2.ORIG/cudd/Makefile	1999-08-19 16:34:24.000000000 -0600
+++ cudd-2.4.2/cudd/Makefile	2009-05-12 10:02:59.000000000 -0600
@@ -27,6 +27,10 @@
 
 INCLUDE = $(WHERE)/include
 
+SHLINK	= -shared -Xlinker -soname -Xlinker lib$(P).so.2 \
+	-L$(WHERE)/mtr -L$(WHERE)/st -L$(WHERE)/util -L$(WHERE)/epd \
+	-lmtr -lcuddst -lcuddutil -lepd -lm
+
 LIBS	= ./libcudd.a $(WHERE)/mtr/libmtr.a \
 	$(WHERE)/st/libst.a $(WHERE)/util/libutil.a $(WHERE)/epd/libepd.a
 
@@ -71,6 +75,11 @@
 
 #------------------------------------------------------
 
+lib$(P).so.2.4.2: $(POBJ)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(POBJ) $(SHLINK)
+	ln -s lib$(P).so.2.4.2 lib$(P).so.2
+	ln -s lib$(P).so.2 lib$(P).so
+
 lib$(P).a: $(POBJ)
 	ar rv $@ $?
 	$(RANLIB) $@
@@ -111,7 +120,9 @@
 tags: $(PSRC) $(PHDR)
 	ctags $(PSRC) $(PHDR)
 
-all: lib$(P).a lib$(P).b llib-l$(P).ln tags
+all: lib$(P).so.2.4.2 lib$(P).b llib-l$(P).ln tags
+
+static: lib$(P).a
 
 programs: $(TARGET) $(TARGETu) lintpgm
 
diff -dur cudd-2.4.2.ORIG/dddmp/Makefile cudd-2.4.2/dddmp/Makefile
--- cudd-2.4.2.ORIG/dddmp/Makefile	2004-02-20 09:13:24.000000000 -0700
+++ cudd-2.4.2/dddmp/Makefile	2009-05-12 10:02:59.000000000 -0600
@@ -170,6 +170,10 @@
 LINTFLAGS = -u -n
 LINTSWITCH = -o
 
+SHLINK	= -shared -Xlinker -soname -Xlinker lib$(P).so.2 \
+	-L$(WHERE)/cudd -L$(WHERE)/mtr -L$(WHERE)/st -L$(WHERE)/util \
+	-L$(WHERE)/epd -lcudd -lcuddst -lcuddutil
+
 LIBS	= ./libdddmp.a $(WHERE)/cudd/libcudd.a $(WHERE)/mtr/libmtr.a \
 	$(WHERE)/st/libst.a $(WHERE)/util/libutil.a $(WHERE)/epd/libepd.a
 
@@ -182,6 +186,11 @@
 	$(WHERE)/mtr/llib-lmtr.ln $(WHERE)/st/llib-lst.ln \
 	$(WHERE)/util/llib-lutil.ln
 
+lib$(P).so.2.4.2: $(POBJ)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(POBJ) $(SHLINK)
+	ln -s lib$(P).so.2.4.2 lib$(P).so.2
+	ln -s lib$(P).so.2 lib$(P).so
+
 lib$(P).a: $(POBJ)
 	ar rv $@ $?
 	$(RANLIB) $@
@@ -222,7 +231,9 @@
 tags: $(PSRC) $(PHDR)
 	ctags $(PSRC) $(PHDR)
 
-all: lib$(P).a lib$(P).b llib-l$(P).ln tags
+all: lib$(P).so.2.4.2 lib$(P).b llib-l$(P).ln tags
+
+static: lib$(P).a
 
 programs: $(TARGET) $(TARGETu) lintpgm
 
diff -dur cudd-2.4.2.ORIG/epd/Makefile cudd-2.4.2/epd/Makefile
--- cudd-2.4.2.ORIG/epd/Makefile	2003-12-31 09:31:30.000000000 -0700
+++ cudd-2.4.2/epd/Makefile	2009-05-12 10:02:59.000000000 -0600
@@ -11,6 +11,9 @@
 ICFLAGS = -g -O6 -Wall
 CFLAGS  = $(ICFLAGS) $(MFLAG) $(XCFLAGS)
 
+SHLINK	= -shared -Xlinker -soname -Xlinker lib$(P).so.2 -L$(WHERE)/util \
+	-lcuddutil -lm
+
 LINTFLAGS = -u -n
 
 # this is to create the lint library
@@ -27,6 +30,11 @@
 
 #---------------------------
 
+lib$(P).so.2.4.2: $(POBJ)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(POBJ) $(SHLINK)
+	ln -s lib$(P).so.2.4.2 lib$(P).so.2
+	ln -s lib$(P).so.2 lib$(P).so
+
 lib$(P).a: $(POBJ)
 	ar rv $@ $?
 	$(RANLIB) $@
@@ -55,7 +63,9 @@
 tags: $(PSRC) $(PHDR)
 	ctags $(PSRC) $(PHDR)
 
-all: lib$(P).a lib$(P).b llib-l$(P).ln tags
+all: lib$(P).so.2.4.2 lib$(P).b llib-l$(P).ln tags
+
+static: lib$(P).a
 
 clean:
 	rm -f *.o *.u .pure *.warnings
diff -dur cudd-2.4.2.ORIG/Makefile cudd-2.4.2/Makefile
--- cudd-2.4.2.ORIG/Makefile	2009-02-21 18:54:12.000000000 -0700
+++ cudd-2.4.2/Makefile	2009-05-12 10:03:36.000000000 -0600
@@ -199,7 +199,7 @@
 IDIR	= $(DDWDIR)/include
 INCLUDE = -I$(IDIR)
 
-BDIRS	= cudd dddmp mtr st util epd
+BDIRS	= util epd mtr st cudd dddmp
 DIRS	= $(BDIRS) nanotrav
 
 #------------------------------------------------------------------------
@@ -215,26 +215,32 @@
 .PHONY : testmtr
 .PHONY : lint
 .PHONY : all
+.PHONY : static
 .PHONY : clean
 .PHONY : distclean
 
 
 build:
 	sh ./setup.sh
-	@for dir in $(DIRS); do \
+	@for dir in $(DIRS) obj; do \
 		(cd $$dir; \
 		echo Making $$dir ...; \
-		make CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" )\
+		$(MAKE) CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" )\
 	done
 
-nanotrav: build
+cudd: mtr st util epd
+dddmp: cudd
+epd: util
+mtr: util
+nanotrav: dddmp
+st: util
 
 check_leaks:
 	sh ./setup.sh
 	@for dir in mnemosyne $(DIRS); do \
 		(cd $$dir; \
 		echo Making $$dir ...; \
-		make CC=$(CC) RANLIB=$(RANLIB) MFLAG=$(MFLAG) MNEMLIB=$(MNEMLIB) ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" EXE="$(EXE)" )\
+		$(MAKE) CC=$(CC) RANLIB=$(RANLIB) MFLAG=$(MFLAG) MNEMLIB=$(MNEMLIB) ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" EXE="$(EXE)" )\
 	done
 
 optimize_dec:
@@ -242,7 +248,7 @@
 	@for dir in $(DIRS); do \
 		(cd $$dir; \
 		echo Making $$dir ...; \
-		make CC=$(CC) RANLIB=$(RANLIB) XCFLAGS="$(XCFLAGS)" LDFLAGS="$(LDFLAGS)" optimize_dec )\
+		$(MAKE) CC=$(CC) RANLIB=$(RANLIB) XCFLAGS="$(XCFLAGS)" LDFLAGS="$(LDFLAGS)" optimize_dec )\
 	done
 
 lint:
@@ -250,7 +256,7 @@
 	@for dir in $(DIRS) obj; do \
 		(cd $$dir; \
 		echo Making lint in $$dir ...; \
-		make CC=$(CC) lint )\
+		$(MAKE) CC=$(CC) lint )\
 	done
 
 tags:
@@ -258,15 +264,23 @@
 	@for dir in $(DIRS) obj; do \
 		(cd $$dir; \
 		echo Making tags in $$dir ...; \
-		make CC=$(CC) tags )\
+		$(MAKE) CC=$(CC) tags )\
 	done
 
 all:
 	sh ./setup.sh
-	@for dir in $(DIRS); do \
+	@for dir in $(DIRS) obj; do \
 		(cd $$dir; \
 		echo Making all in $$dir ...; \
-		make CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" all )\
+		$(MAKE) CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" all )\
+	done
+
+static:
+	sh ./setup.sh
+	@for dir in $(DIRS) obj; do \
+		(cd $$dir; \
+		echo Making static in $$dir ...; \
+		$(MAKE) CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" static )\
 	done
 
 testcudd:
@@ -274,49 +288,49 @@
 	@for dir in util st mtr epd; do \
 		(cd $$dir; \
 		echo Making $$dir ...; \
-		make CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" )\
+		$(MAKE) CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" )\
 	done
 	@(cd cudd; \
 	echo Making testcudd ...; \
-	make CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" testcudd$(EXE) )
+	$(MAKE) CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" testcudd$(EXE) )
 
 objlib:
 	sh ./setup.sh
 	@for dir in $(BDIRS); do \
 		(cd $$dir; \
 		echo Making $$dir ...; \
-		make CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" )\
+		$(MAKE) CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" )\
 	done
 	@(cd obj; \
 	echo Making obj ...; \
-	make CPP=$(CPP) CPPFLAGS=$(CPPFLAGS) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" )
+	$(MAKE) CPP=$(CPP) CPPFLAGS=$(CPPFLAGS) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" )
 
 testobj: objlib
 	@(cd obj; \
 	echo Making testobj ...; \
-	make CPP=$(CPP) CPPFLAGS=$(CPPFLAGS) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" testobj$(EXE) )
+	$(MAKE) CPP=$(CPP) CPPFLAGS=$(CPPFLAGS) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" testobj$(EXE) )
 
 testdddmp: build
 	@(cd dddmp; \
 	echo Making testdddmp ...; \
-	make CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" testdddmp$(EXE) )
+	$(MAKE) CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" testdddmp$(EXE) )
 
 testmtr: build
 	@(cd mtr; \
 	echo Making testmtr ...; \
-	make CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" testmtr$(EXE) )
+	$(MAKE) CC=$(CC) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" testmtr$(EXE) )
 
 clean:
 	@for dir in mnemosyne $(DIRS) obj; do	\
 	    (cd $$dir;	\
 	     echo Cleaning $$dir ...; \
-	     make -s clean	) \
+	     $(MAKE) -s clean	) \
 	done
 
 distclean:
 	@for dir in mnemosyne $(DIRS) obj; do	\
 	    (cd $$dir;	\
 	     echo Cleaning $$dir ...; \
-	     make -s EXE="$(EXE)" distclean	) \
+	     $(MAKE) -s EXE="$(EXE)" distclean	) \
 	done
 	sh ./shutdown.sh
diff -dur cudd-2.4.2.ORIG/mnemosyne/Makefile cudd-2.4.2/mnemosyne/Makefile
--- cudd-2.4.2.ORIG/mnemosyne/Makefile	2009-02-19 23:39:23.000000000 -0700
+++ cudd-2.4.2/mnemosyne/Makefile	2009-05-12 10:02:59.000000000 -0600
@@ -19,14 +19,22 @@
 
 #loader flags
 LDFLGS	=
+SHLINK	= -shared -Xlinker -soname -Xlinker libmnem.so.2
 
 HDRS	=	mnemosyne.h mnemconf.h
 
-all: mnemalyse libmnem.a
+all: mnemalyse libmnem.so.2.4.2
+
+static: libmnem.a
 
 mnemalyse: mnemalyse.o
 	$(CC) $(LDFLGS) -o $@ mnemalyse.o
 
+libmnem.so.2.4.2: mnemosyne.o
+	$(CC) $(CFLAGS) $(LDFLAGS) $(SHLINK) -o $@ $<
+	ln -s libmnem.so.2.4.2 libmnem.so.2
+	ln -s libmnem.so.2 libmnem.so
+
 libmnem.a: mnemosyne.o
 	ar rcv $@ mnemosyne.o
 	$(RANLIB) $@
diff -dur cudd-2.4.2.ORIG/mtr/Makefile cudd-2.4.2/mtr/Makefile
--- cudd-2.4.2.ORIG/mtr/Makefile	2004-01-01 11:47:16.000000000 -0700
+++ cudd-2.4.2/mtr/Makefile	2009-05-12 10:02:59.000000000 -0600
@@ -39,6 +39,9 @@
 TARGET	= test$(P)$(EXE)
 TARGETu	= test$(P)-u
 
+SHLINK	= -shared -Xlinker -soname -Xlinker lib$(P).so.2 -L$(WHERE)/util \
+	-lcuddutil
+
 LIBS	= ./libmtr.a $(WHERE)/util/libutil.a
 
 BLIBS	= -kL. -klmtr -kL$(WHERE)/util -klutil
@@ -49,6 +52,11 @@
 
 #---------------------------
 
+lib$(P).so.2.4.2: $(POBJ)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(POBJ) $(SHLINK)
+	ln -s lib$(P).so.2.4.2 lib$(P).so.2
+	ln -s lib$(P).so.2 lib$(P).so
+
 lib$(P).a: $(POBJ)
 	ar rv $@ $?
 	$(RANLIB) $@
@@ -79,7 +87,9 @@
 tags: $(PSRC) $(PHDR)
 	ctags $(PSRC) $(PHDR)
 
-all: lib$(P).a lib$(P).b llib-l$(P).ln tags
+all: lib$(P).so.2.4.2 lib$(P).b llib-l$(P).ln tags
+
+static: lib$(P).a
 
 $(TARGET): $(POBJ) $(OBJ) $(LIBS) $(MNEMLIB)
 	$(PURE) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(LIBS) $(MNEMLIB) -lm
diff -dur cudd-2.4.2.ORIG/nanotrav/Makefile cudd-2.4.2/nanotrav/Makefile
--- cudd-2.4.2.ORIG/nanotrav/Makefile	1999-08-31 13:12:55.000000000 -0600
+++ cudd-2.4.2/nanotrav/Makefile	2009-05-12 10:02:59.000000000 -0600
@@ -19,6 +19,14 @@
 
 INCLUDE = $(WHERE)/include
 
+SHLINK	= -L$(WHERE)/dddmp -L$(WHERE)/cudd -L$(WHERE)/mtr -L$(WHERE)/st \
+	-L$(WHERE)/util -L$(WHERE)/epd -ldddmp -lcudd -lmtr -lcuddst \
+	-lcuddutil -lepd
+
+SHLIBS	= $(WHERE)/dddmp/libdddmp.so.2.4.2 $(WHERE)/cudd/libcudd.so.2.4.2 \
+	$(WHERE)/mtr/libmtr.so.2.4.2 $(WHERE)/st/libcuddst.so.2.4.2 \
+	$(WHERE)/util/libcuddutil.so.2.4.2 $(WHERE)/epd/libepd.so.2.4.2
+
 LIBS	= $(WHERE)/dddmp/libdddmp.a $(WHERE)/cudd/libcudd.a \
 	$(WHERE)/mtr/libmtr.a $(WHERE)/st/libst.a $(WHERE)/util/libutil.a \
 	$(WHERE)/epd/libepd.a
@@ -60,8 +68,8 @@
 
 #------------------------------------------------------
 
-$(TARGET): $(SRC) $(OBJ) $(HDR) $(LIBS) $(MNEMLIB)
-	$(PURE) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(LIBS) $(MNEMLIB) -lm
+$(TARGET): $(SRC) $(OBJ) $(HDR) $(SHLIBS) $(MNEMLIB)
+	$(PURE) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(SHLINK) $(MNEMLIB) -lm
 
 .c.o: $(HDR)
 	$(CC) -c $< -I$(INCLUDE) $(CFLAGS) $(DDDEBUG)
@@ -87,6 +95,8 @@
 
 all: $(TARGET) $(TARGETu) lint tags
 
+static:
+
 pixie: $(TARGETu)
 	pixie $(TARGETu)
 
diff -dur cudd-2.4.2.ORIG/obj/Makefile cudd-2.4.2/obj/Makefile
--- cudd-2.4.2.ORIG/obj/Makefile	2001-03-19 00:35:09.000000000 -0700
+++ cudd-2.4.2/obj/Makefile	2009-05-12 10:06:13.000000000 -0600
@@ -27,6 +27,8 @@
 
 INCLUDE = $(WHERE)/include
 
+SHLINK	= -shared -Xlinker -soname -Xlinker lib$(PP).so.2
+
 LIBS	= ./libobj.a $(WHERE)/cudd/libcudd.a $(WHERE)/mtr/libmtr.a \
 	$(WHERE)/st/libst.a $(WHERE)/util/libutil.a $(WHERE)/epd/libepd.a
 
@@ -43,6 +45,7 @@
 
 # files for the package
 P	= obj
+PP	= cudd$(P)
 PSRC	= cuddObj.cc
 PHDR	= cuddObj.hh $(INCLUDE)/cudd.h
 POBJ	= $(PSRC:.cc=.o)
@@ -57,7 +60,12 @@
 
 #------------------------------------------------------
 
-lib$(P).a: $(POBJ)
+lib$(PP).so.2.4.2: $(POBJ) $(WHERE)/cudd/libcudd.so
+	$(CPP) $(CFLAGS) $(LDFLAGS) -o $@ $(POBJ) $(SHLINK) -lcudd -L$(WHERE)/cudd
+	ln -s lib$(PP).so.2.4.2 lib$(PP).so.2
+	ln -s lib$(PP).so.2 lib$(PP).so
+
+lib$(PP).a: $(POBJ)
 	ar rv $@ $?
 	$(RANLIB) $@
 
@@ -66,7 +74,7 @@
 
 optimize_dec: lib$(P).b
 
-lib$(P).b: $(PUBJ)
+lib$(PP).b: $(PUBJ)
 	ar rv $@ $?
 	$(RANLIB) $@
 
@@ -86,9 +94,9 @@
 $(TARGETu): $(SRC) $(UBJ) $(HDR) $(LIBS:.a=.b)
 	cxx -O3 -Olimit 1000 $(XCFLAGS) $(LDFLAGS) -o $@ $(UBJ) $(BLIBS) -lm
 
-lint: llib-l$(P).ln
+lint: llib-l$(PP).ln
 
-llib-l$(P).ln: $(PSRC) $(PHDR)
+llib-l$(PP).ln: $(PSRC) $(PHDR)
 	lint $(LINTFLAGS) $(LINTSWITCH)$(P) -I$(INCLUDE) $(PSRC)
 
 lintpgm: lint
@@ -97,7 +105,9 @@
 tags: $(PSRC) $(PHDR)
 	ctags $(PSRC) $(PHDR)
 
-all: lib$(P).a lib$(P).b llib-l$(P).ln tags
+all: lib$(PP).so.2.4.2 lib$(PP).b llib-l$(PP).ln tags
+
+static: lib$(PP).a
 
 programs: $(TARGET) $(TARGETu) lintpgm
 
diff -dur cudd-2.4.2.ORIG/st/Makefile cudd-2.4.2/st/Makefile
--- cudd-2.4.2.ORIG/st/Makefile	2004-01-01 09:53:24.000000000 -0700
+++ cudd-2.4.2/st/Makefile	2009-05-12 10:02:59.000000000 -0600
@@ -11,6 +11,9 @@
 ICFLAGS = -g -O6 -Wall
 CFLAGS  = $(ICFLAGS) $(MFLAG) $(XCFLAGS)
 
+SHLINK	= -shared -Xlinker -soname -Xlinker libcudd$(P).so.2 -L$(WHERE)/util \
+	-lcuddutil
+
 LINTFLAGS = -u -n
 
 # this is to create the lint library
@@ -27,6 +30,11 @@
 
 #---------------------------
 
+libcudd$(P).so.2.4.2: $(POBJ)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(POBJ) $(SHLINK)
+	ln -s libcudd$(P).so.2.4.2 libcudd$(P).so.2
+	ln -s libcudd$(P).so.2 libcudd$(P).so
+
 lib$(P).a: $(POBJ)
 	ar rv $@ $?
 	$(RANLIB) $@
@@ -55,7 +63,9 @@
 tags: $(PSRC) $(PHDR)
 	ctags $(PSRC) $(PHDR)
 
-all: lib$(P).a lib$(P).b llib-l$(P).ln tags
+all: libcudd$(P).so.2.4.2 lib$(P).b llib-l$(P).ln tags
+
+static: lib$(P).a
 
 clean:
 	rm -f *.o *.u .pure *.warnings
diff -dur cudd-2.4.2.ORIG/util/Makefile cudd-2.4.2/util/Makefile
--- cudd-2.4.2.ORIG/util/Makefile	2004-01-03 10:15:30.000000000 -0700
+++ cudd-2.4.2/util/Makefile	2009-05-12 10:02:59.000000000 -0600
@@ -12,6 +12,8 @@
 ICFLAGS = -g
 CFLAGS  = $(ICFLAGS) $(MFLAG) $(XCFLAGS)
 
+SHLINK	= -shared -Xlinker -soname -Xlinker libcudd$(P).so.2
+
 LINTFLAGS = -u -n
 
 # this is to create the lint library
@@ -28,6 +30,11 @@
 WHERE	= ..
 INCLUDE = $(WHERE)/include
 
+libcudd$(P).so.2.4.2: $(POBJ)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(POBJ) $(SHLINK)
+	ln -s libcudd$(P).so.2.4.2 libcudd$(P).so.2
+	ln -s libcudd$(P).so.2 libcudd$(P).so
+
 lib$(P).a: $(POBJ)
 	ar rv $@ $?
 	$(RANLIB) $@
@@ -56,7 +63,9 @@
 tags: $(PSRC) $(PHDR)
 	ctags $(PSRC) $(PHDR)
 
-all: lib$(P).a lib$(P).b llib-l$(P).ln tags
+all: libcudd$(P).so.2.4.2 lib$(P).b llib-l$(P).ln tags
+
+static: lib$(P).a
 
 clean:
 	rm -f *.o *.u core *.warnings

cudd-2.4.2-signedness.patch:

--- NEW FILE cudd-2.4.2-signedness.patch ---
diff -durp cudd-2.4.2.ORIG/cudd/cuddGroup.c cudd-2.4.2/cudd/cuddGroup.c
--- cudd-2.4.2.ORIG/cudd/cuddGroup.c	2009-02-21 11:25:01.000000000 -0700
+++ cudd-2.4.2/cudd/cuddGroup.c	2009-05-12 10:20:14.000000000 -0600
@@ -214,7 +214,9 @@ Cudd_MakeTreeNode(
     ** Cudd_bddNewVarAtLevel or Cudd_addNewVarAtLevel to create new
     ** variables have to create the variables before they group them.
     */
-    level = (low < (unsigned int) dd->size) ? dd->perm[low] : low;
+    level = (low < (unsigned int) dd->size)
+      ? (unsigned int) dd->perm[low]
+      : low;
 
     if (level + size - 1> (int) MTR_MAXHIGH)
 	return(NULL);
diff -durp cudd-2.4.2.ORIG/cudd/cuddZddGroup.c cudd-2.4.2/cudd/cuddZddGroup.c
--- cudd-2.4.2.ORIG/cudd/cuddZddGroup.c	2009-02-19 19:17:45.000000000 -0700
+++ cudd-2.4.2/cudd/cuddZddGroup.c	2009-05-12 10:20:14.000000000 -0600
@@ -171,7 +171,9 @@ Cudd_MakeZddTreeNode(
     ** Cudd_bddNewVarAtLevel or Cudd_addNewVarAtLevel to create new
     ** variables have to create the variables before they group them.
     */
-    level = (low < (unsigned int) dd->sizeZ) ? dd->permZ[low] : low;
+    level = (low < (unsigned int) dd->sizeZ)
+      ? (unsigned int) dd->permZ[low]
+      : low;
 
     if (level + size - 1> (int) MTR_MAXHIGH)
 	return(NULL);
diff -durp cudd-2.4.2.ORIG/st/st.c cudd-2.4.2/st/st.c
--- cudd-2.4.2.ORIG/st/st.c	2004-02-11 15:33:16.000000000 -0700
+++ cudd-2.4.2/st/st.c	2009-05-12 10:20:14.000000000 -0600
@@ -54,7 +54,7 @@ static char rcsid[] UTIL_UNUSED = " $Id:
 #define st_shift 2
 #endif
 
-#define ST_PTRHASH(x,size) ((unsigned int)((unsigned long)(x)>>st_shift)%size)
+#define ST_PTRHASH(x,size) ((int)((unsigned long)(x)>>st_shift)%size)
 
 #define EQUAL(func, x, y) \
     ((((func) == st_numcmp) || ((func) == st_ptrcmp)) ?\


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/cudd/devel/.cvsignore,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- .cvsignore	7 Jan 2009 03:01:55 -0000	1.2
+++ .cvsignore	13 May 2009 16:10:37 -0000	1.3
@@ -1 +1 @@
-cudd-2.4.1.tar.gz
+cudd-2.4.2.tar.gz


Index: cudd.spec
===================================================================
RCS file: /cvs/pkgs/rpms/cudd/devel/cudd.spec,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -p -r1.5 -r1.6
--- cudd.spec	29 Mar 2009 21:30:31 -0000	1.5
+++ cudd.spec	13 May 2009 16:10:37 -0000	1.6
@@ -1,6 +1,6 @@
 Name:           cudd
-Version:        2.4.1
-Release:        6%{?dist}
+Version:        2.4.2
+Release:        1%{?dist}
 Summary:        CU Decision Diagram Package
 Group:          Development/Libraries
 License:        BSD
@@ -9,25 +9,19 @@ Source0:        ftp://vlsi.Colorado.EDU/
 # This patch was sent upstream in September 2005.
 # Build shared libraries as well as static archives, and incidentally unbreak
 # parallel make.
-Patch0:         cudd-2.4.1-sharedlib.patch
-# This patch was sent upstream in September 2005.
-# Extern declarations of strcat get mangled by the preprocessor
-Patch1:         cudd-2.4.1-strcat.patch
+Patch0:         cudd-2.4.2-sharedlib.patch
 # This patch was sent upstream in September 2005.
 # Fix some mixed signed/unsigned operations
-Patch2:         cudd-2.4.1-signedness.patch
+Patch1:         cudd-2.4.2-signedness.patch
 # This patch was sent upstream in September 2005.
 # Don't ignore the return values of certain functions
-Patch3:         cudd-2.4.1-retval.patch
+Patch2:         cudd-2.4.2-retval.patch
 # This patch was sent upstream in September 2005.
 # Fix a bunch of "used without being initialized" warnings
-Patch4:         cudd-2.4.1-init.patch
+Patch3:         cudd-2.4.2-init.patch
 # This patch was sent upstream in September 2005.
 # On 64 bit platforms, fix the size definitions of void * and long
-Patch5:         cudd-2.4.1-64bit.patch
-# This is so that we don't get an undefined symbol:
-# (Thanks to Mamoru Tasaka for the patch.)
-Patch6:         cudd-2.4.1-build-obj-dir.patch
+Patch4:         cudd-2.4.2-64bit.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 
@@ -63,9 +57,6 @@ Static libraries for %{name}.
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
-%patch5 -p1
-
-%patch6 -p1
 
 # Fix two doc files with DOS line endings
 sed -i 's/\r//' dddmp/README.dddmp
@@ -89,7 +80,7 @@ rm -rf $RPM_BUILD_ROOT
 # Install the shared libraries
 mkdir -p $RPM_BUILD_ROOT%{_libdir}
 for slib in */*.so; do
-  install -p -m 755 ${slib}.2.4.1 $RPM_BUILD_ROOT%{_libdir}/
+  install -p -m 755 ${slib}.%{version} $RPM_BUILD_ROOT%{_libdir}/
   mv ${slib}.2 $RPM_BUILD_ROOT%{_libdir}
   mv ${slib} $RPM_BUILD_ROOT%{_libdir}
 done
@@ -156,6 +147,11 @@ rm -rf $RPM_BUILD_ROOT
 
 
 %changelog
+* Tue May 12 2009 Jerry James <loganjerry at gmail.com> - 2.4.2-1
+- Update to 2.4.2
+- Drop upstreamed cudd-2.4.1-strcat.patch
+- Merge Mamoru's patch into cudd-2.4.2-sharedlib.patch
+
 * Sun Mar 29 2009 Conrad Meyer <konrad at tylerc.org> - 2.4.1-6
 - Use Mamoru's patch (thanks!).
 


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/cudd/devel/sources,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- sources	7 Jan 2009 03:01:55 -0000	1.2
+++ sources	13 May 2009 16:10:37 -0000	1.3
@@ -1 +1 @@
-38f4dc5195a746222f1e51c459b49b4f  cudd-2.4.1.tar.gz
+f037f3e486db93a9a1161e285f488e9c  cudd-2.4.2.tar.gz


--- cudd-2.4.1-64bit.patch DELETED ---


--- cudd-2.4.1-build-obj-dir.patch DELETED ---


--- cudd-2.4.1-init.patch DELETED ---


--- cudd-2.4.1-retval.patch DELETED ---


--- cudd-2.4.1-sharedlib.patch DELETED ---


--- cudd-2.4.1-signedness.patch DELETED ---


--- cudd-2.4.1-strcat.patch DELETED ---




More information about the scm-commits mailing list