From 5bc65c4105f6af763a4ad19e98d7ab1fc5a3d511 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Oct 02 2015 15:03:36 +0000 Subject: Update to 2.5.1. Link with $RPM_LD_FLAGS. --- diff --git a/.gitignore b/.gitignore index 77fc570..11e1592 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /cudd-2.5.0.tar.gz +/cudd-2.5.1.tar.gz diff --git a/cudd-2.5.0-arch.patch b/cudd-2.5.0-arch.patch index b41c5f4..40c76df 100644 --- a/cudd-2.5.0-arch.patch +++ b/cudd-2.5.0-arch.patch @@ -1,16 +1,15 @@ ---- ./util/util.h.orig 2012-02-04 22:35:52.000000000 -0700 -+++ ./util/util.h 2012-02-20 13:31:21.682858387 -0700 -@@ -3,6 +3,8 @@ - #ifndef UTIL_H - #define UTIL_H +--- ./cudd/cudd.h.orig 2015-01-03 11:57:30.000000000 -0700 ++++ ./cudd/cudd.h 2015-10-01 21:16:11.045396309 -0600 +@@ -61,6 +61,7 @@ + /* Nested includes */ + /*---------------------------------------------------------------------------*/ +#include -+ - #ifdef __cplusplus - extern "C" { - #endif -@@ -20,14 +22,22 @@ extern "C" { - #endif + #include "mtr.h" + #include "epd.h" + +@@ -75,14 +76,22 @@ extern "C" { + #define CUDD_VERSION "2.5.1" #ifndef SIZEOF_VOID_P +#if __WORDSIZE == 64 @@ -30,8 +29,8 @@ #endif +#endif - #if SIZEOF_VOID_P == 8 && SIZEOF_INT == 4 - typedef long util_ptrint; + #define CUDD_TRUE 1 + #define CUDD_FALSE 0 --- ./epd/epd.h.orig 2004-08-24 15:33:13.000000000 -0600 +++ ./epd/epd.h 2012-02-20 13:36:44.064529084 -0700 @@ -76,7 +76,9 @@ extern "C" { @@ -78,18 +77,19 @@ #ifndef SIZEOF_INT #define SIZEOF_INT 4 #endif ---- ./cudd/cudd.h.orig 2012-02-04 18:07:33.000000000 -0700 -+++ ./cudd/cudd.h 2012-02-20 13:31:21.683858386 -0700 -@@ -61,6 +61,7 @@ - /* Nested includes */ - /*---------------------------------------------------------------------------*/ +--- ./util/util.h.orig 2012-02-04 22:35:52.000000000 -0700 ++++ ./util/util.h 2012-02-20 13:31:21.682858387 -0700 +@@ -3,6 +3,8 @@ + #ifndef UTIL_H + #define UTIL_H +#include - #include "mtr.h" - #include "epd.h" - -@@ -75,14 +76,22 @@ extern "C" { - #define CUDD_VERSION "2.5.0" ++ + #ifdef __cplusplus + extern "C" { + #endif +@@ -20,14 +22,22 @@ extern "C" { + #endif #ifndef SIZEOF_VOID_P +#if __WORDSIZE == 64 @@ -109,5 +109,5 @@ #endif +#endif - #define CUDD_TRUE 1 - #define CUDD_FALSE 0 + #if SIZEOF_VOID_P == 8 && SIZEOF_INT == 4 + typedef long util_ptrint; diff --git a/cudd-2.5.0-init.patch b/cudd-2.5.0-init.patch index 6221039..b5296ca 100644 --- a/cudd-2.5.0-init.patch +++ b/cudd-2.5.0-init.patch @@ -1,25 +1,112 @@ ---- ./nanotrav/ntr.c.orig 2012-02-04 18:53:42.000000000 -0700 -+++ ./nanotrav/ntr.c 2012-02-20 15:16:44.870399164 -0700 -@@ -998,6 +998,7 @@ Ntr_SCC( - if (tmp == NULL) return(0); - init = Cudd_bddPickOneMinterm(dd,tmp,TR->x,TR->nlatches); +--- ./cudd/cuddAddIte.c.orig 2012-02-04 18:07:33.000000000 -0700 ++++ ./cudd/cuddAddIte.c 2012-02-20 15:16:44.881399152 -0700 +@@ -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. */ +--- ./cudd/cuddAddWalsh.c.orig 2012-02-04 18:07:33.000000000 -0700 ++++ ./cudd/cuddAddWalsh.c 2012-02-20 15:16:44.880399153 -0700 +@@ -339,6 +339,8 @@ addWalshInt( + } + cuddRef(t); + Cudd_RecursiveDeref(dd, w); ++ } else { ++ t = NULL; + } + cuddDeref(minusone); /* minusone is in the result; it won't die */ + +--- ./cudd/cuddBddIte.c.orig 2012-02-04 18:07:33.000000000 -0700 ++++ ./cudd/cuddBddIte.c 2012-02-20 15:16:44.880399153 -0700 +@@ -748,7 +748,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); +--- ./cudd/cuddDecomp.c.orig 2012-02-04 18:07:33.000000000 -0700 ++++ ./cudd/cuddDecomp.c 2012-02-20 15:18:25.349296523 -0700 +@@ -1833,6 +1833,8 @@ BuildConjuncts( + if (freeNv) FREE(factorsNv); + return(factors); + } ++ } else { ++ factorsNv = NULL; + } + + /* build ge, he recursively */ +@@ -1859,6 +1861,8 @@ BuildConjuncts( + if (freeNnv) FREE(factorsNnv); + return(factors); + } ++ } else { ++ factorsNnv = NULL; + } + + /* construct the 2 pairs */ +--- ./cudd/cuddGroup.c.orig 2012-02-20 13:13:41.645120209 -0700 ++++ ./cudd/cuddGroup.c 2015-10-01 21:14:51.644688978 -0600 +@@ -458,7 +458,7 @@ ddReorderChildren( + Cudd_ReorderingType method) + { + int lower; +- int upper; ++ int upper = 0; + int result; + unsigned int initialSize; + +@@ -1501,7 +1501,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 +@@ -1681,14 +1681,12 @@ ddGroupSiftingBackward( + { + Move *move; + int res; +- Move *end_move; ++ Move *end_move = NULL; + int diff, tmp_diff; + int index; + unsigned int pairlev; + + if (lazyFlag) { +- end_move = NULL; +- + /* Find the minimum size, and the earliest position at which it + ** was achieved. */ + for (move = moves; move != NULL; move = move->next) { +--- ./cudd/cuddHarwell.c.orig 2012-02-04 18:07:33.000000000 -0700 ++++ ./cudd/cuddHarwell.c 2012-02-20 15:16:44.884399149 -0700 +@@ -261,7 +261,7 @@ Cudd_addHarwell( + return(0); + } } else { -+ tmp = NULL; - init = Cudd_bddPickOneMinterm(dd,states,TR->x,TR->nlatches); +- *x = *xn = NULL; ++ *x = lx = *xn = lxn = NULL; } - if (init == NULL) return(0); ---- ./nanotrav/bnet.c.orig 2012-02-04 18:53:42.000000000 -0700 -+++ ./nanotrav/bnet.c 2012-02-20 15:16:44.872399161 -0700 -@@ -1923,7 +1923,8 @@ buildMuxBDD( - assert(controlC != -1 && controlR != -1); - /* At this point we know that there is indeed no column with two - ** dashes. The control column has been identified, and we know that -- ** its two elelments are different. */ -+ ** its two elements are different. */ -+ mux[0] = mux[1] = phase[0] = phase[1] = 0; - for (j = 0; j < 3; j++) { - if (j == controlC) continue; - if (values[controlR][j] == '1') { + } else if (lnx > *nx) { + *x = lx = REALLOC(DdNode *, *x, lnx); +@@ -291,7 +291,7 @@ Cudd_addHarwell( + return(0); + } + } else { +- *y = *yn_ = NULL; ++ *y = ly = *yn_ = lyn = NULL; + } + } else if (lny > *ny) { + *y = ly = REALLOC(DdNode *, *y, lny); --- ./cudd/cuddLinear.c.orig 2012-02-04 18:07:33.000000000 -0700 +++ ./cudd/cuddLinear.c 2012-02-20 15:16:44.872399161 -0700 @@ -366,7 +366,10 @@ cuddLinearInPlace( @@ -54,57 +141,6 @@ for (i = 0; i < xslots; i++) { f = xlist[i]; if (f == sentinel) continue; ---- ./cudd/cuddZddGroup.c.orig 2012-02-20 15:16:31.190413138 -0700 -+++ ./cudd/cuddZddGroup.c 2012-02-20 15:16:44.873399160 -0700 -@@ -434,7 +434,7 @@ zddReorderChildren( - Cudd_ReorderingType method) - { - int lower; -- int upper; -+ int upper=0; - int result; - unsigned int initialSize; - -@@ -1086,7 +1086,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 ---- ./cudd/cuddDecomp.c.orig 2012-02-04 18:07:33.000000000 -0700 -+++ ./cudd/cuddDecomp.c 2012-02-20 15:18:25.349296523 -0700 -@@ -1833,6 +1833,8 @@ BuildConjuncts( - if (freeNv) FREE(factorsNv); - return(factors); - } -+ } else { -+ factorsNv = NULL; - } - - /* build ge, he recursively */ -@@ -1859,6 +1861,8 @@ BuildConjuncts( - if (freeNnv) FREE(factorsNnv); - return(factors); - } -+ } else { -+ factorsNnv = NULL; - } - - /* construct the 2 pairs */ ---- ./cudd/cuddReorder.c.orig 2012-02-04 18:07:33.000000000 -0700 -+++ ./cudd/cuddReorder.c 2012-02-20 15:16:44.875399158 -0700 -@@ -614,7 +614,7 @@ cuddSwapping( - int iterate; - int previousSize; - Move *moves, *move; -- int pivot; -+ int pivot = 0; - int modulo; - int result; - --- ./cudd/cuddPriority.c.orig 2012-02-04 18:07:33.000000000 -0700 +++ ./cudd/cuddPriority.c 2012-02-20 15:16:44.876399157 -0700 @@ -781,6 +781,7 @@ Cudd_Inequality( @@ -147,52 +183,17 @@ RT = RE = R; } ---- ./cudd/cuddSymmetry.c.orig 2012-02-04 18:07:33.000000000 -0700 -+++ ./cudd/cuddSymmetry.c 2012-02-20 15:16:44.877399156 -0700 -@@ -1484,10 +1484,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 */ ---- ./cudd/cuddZddReord.c.orig 2012-02-04 18:07:33.000000000 -0700 -+++ ./cudd/cuddZddReord.c 2012-02-20 15:16:44.878399155 -0700 -@@ -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; +--- ./cudd/cuddReorder.c.orig 2015-01-03 11:57:30.000000000 -0700 ++++ ./cudd/cuddReorder.c 2015-10-01 21:14:51.641689215 -0600 +@@ -619,7 +619,7 @@ cuddSwapping( + int iterate; int previousSize; Move *moves, *move; - int pivot; + int pivot = 0; - int modulo; + int modulo; int result; ---- ./cudd/cuddZddSymm.c.orig 2012-02-04 18:07:33.000000000 -0700 -+++ ./cudd/cuddZddSymm.c 2012-02-20 15:16:44.879399154 -0700 -@@ -1495,7 +1495,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 */ --- ./cudd/cuddSubsetSP.c.orig 2012-02-04 18:07:33.000000000 -0700 +++ ./cudd/cuddSubsetSP.c 2012-02-20 15:22:30.437046162 -0700 @@ -1345,6 +1345,8 @@ BuildSubsetBdd( @@ -213,78 +214,24 @@ } else { /* Derive regular child for table lookup. */ regNnv = Cudd_Regular(Nnv); ---- ./cudd/cuddAddWalsh.c.orig 2012-02-04 18:07:33.000000000 -0700 -+++ ./cudd/cuddAddWalsh.c 2012-02-20 15:16:44.880399153 -0700 -@@ -339,6 +339,8 @@ addWalshInt( - } - cuddRef(t); - Cudd_RecursiveDeref(dd, w); -+ } else { -+ t = NULL; - } - cuddDeref(minusone); /* minusone is in the result; it won't die */ - ---- ./cudd/cuddBddIte.c.orig 2012-02-04 18:07:33.000000000 -0700 -+++ ./cudd/cuddBddIte.c 2012-02-20 15:16:44.880399153 -0700 -@@ -748,7 +748,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); ---- ./cudd/cuddAddIte.c.orig 2012-02-04 18:07:33.000000000 -0700 -+++ ./cudd/cuddAddIte.c 2012-02-20 15:16:44.881399152 -0700 -@@ -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. */ ---- ./cudd/cuddGroup.c.orig 2012-02-20 15:16:31.191413136 -0700 -+++ ./cudd/cuddGroup.c 2012-02-20 15:16:44.882399151 -0700 -@@ -458,7 +458,7 @@ ddReorderChildren( - Cudd_ReorderingType method) +--- ./cudd/cuddSymmetry.c.orig 2012-02-04 18:07:33.000000000 -0700 ++++ ./cudd/cuddSymmetry.c 2012-02-20 15:16:44.877399156 -0700 +@@ -1484,10 +1484,10 @@ ddSymmGroupMove( + Move ** moves) { - int lower; -- int upper; -+ int upper = 0; - int result; - unsigned int initialSize; - -@@ -1501,7 +1501,7 @@ ddGroupMove( Move *move; - int size; - int i,j,xtop,xbot,xsize,ytop,ybot,ysize,newxtop; +- int size; ++ int size=0; + int i,j; + int 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 -@@ -1681,14 +1681,12 @@ ddGroupSiftingBackward( - { - Move *move; - int res; -- Move *end_move; -+ Move *end_move = NULL; - int diff, tmp_diff; - int index; - unsigned int pairlev; - if (lazyFlag) { -- end_move = NULL; -- - /* Find the minimum size, and the earliest position at which it - ** was achieved. */ - for (move = moves; move != NULL; move = move->next) { ---- ./cudd/cuddTable.c.orig 2012-02-04 18:07:33.000000000 -0700 -+++ ./cudd/cuddTable.c 2012-02-20 15:16:44.883399150 -0700 -@@ -1942,6 +1942,8 @@ cuddInsertSubtables( + #ifdef DD_DEBUG + assert(x < y); /* we assume that x < y */ +--- ./cudd/cuddTable.c.orig 2015-01-03 11:57:30.000000000 -0700 ++++ ./cudd/cuddTable.c 2015-10-01 21:14:51.645688898 -0600 +@@ -1963,6 +1963,8 @@ cuddInsertSubtables( return(0); } unique->memused += (newsize - unique->maxSize) * sizeof(int); @@ -293,7 +240,7 @@ } unique->memused += (newsize - unique->maxSize) * ((numSlots+1) * sizeof(DdNode *) + 2 * sizeof(int) + sizeof(DdSubtable)); -@@ -2651,6 +2653,8 @@ ddResizeTable( +@@ -2671,6 +2673,8 @@ ddResizeTable( return(0); } unique->memused += (newsize - unique->maxSize) * sizeof(int); @@ -302,58 +249,66 @@ } unique->memused += (newsize - unique->maxSize) * ((numSlots+1) * sizeof(DdNode *) + 2 * sizeof(int) + sizeof(DdSubtable)); ---- ./cudd/cuddHarwell.c.orig 2012-02-04 18:07:33.000000000 -0700 -+++ ./cudd/cuddHarwell.c 2012-02-20 15:16:44.884399149 -0700 -@@ -261,7 +261,7 @@ Cudd_addHarwell( - return(0); - } - } else { -- *x = *xn = NULL; -+ *x = lx = *xn = lxn = NULL; - } - } else if (lnx > *nx) { - *x = lx = REALLOC(DdNode *, *x, lnx); -@@ -291,7 +291,7 @@ Cudd_addHarwell( - return(0); - } - } else { -- *y = *yn_ = NULL; -+ *y = ly = *yn_ = lyn = NULL; - } - } else if (lny > *ny) { - *y = ly = REALLOC(DdNode *, *y, lny); ---- ./dddmp/dddmpStoreCnf.c.orig 2004-02-19 15:15:53.000000000 -0700 -+++ ./dddmp/dddmpStoreCnf.c 2012-02-20 15:16:44.885399147 -0700 -@@ -1338,9 +1338,6 @@ StoreCnfBestNotSharedRecur ( +--- ./cudd/cuddZddGroup.c.orig 2012-02-20 13:13:41.646120208 -0700 ++++ ./cudd/cuddZddGroup.c 2015-10-01 21:14:51.639689374 -0600 +@@ -434,7 +434,7 @@ zddReorderChildren( + Cudd_ReorderingType method) { - DdNode *N, *Nv, *Nnv; - int index, retValue; -- DdNode *one; -- -- one = ddMgr->one; - - N = Cudd_Regular (node); + int lower; +- int upper; ++ int upper=0; + int result; + unsigned int initialSize; -@@ -1459,10 +1456,7 @@ StoreCnfBestSharedRecur ( - ) - { - DdNode *nodeThen, *nodeElse; -- int i, idf, index; -- DdNode *one; -- -- one = ddMgr->one; -+ int i, idf; +@@ -1086,7 +1086,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 +--- ./cudd/cuddZddReord.c.orig 2012-02-04 18:07:33.000000000 -0700 ++++ ./cudd/cuddZddReord.c 2012-02-20 15:16:44.878399155 -0700 +@@ -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; - Dddmp_Assert (node==Cudd_Regular(node), - "Inverted Edge during Shared Printing."); -@@ -1517,7 +1511,6 @@ StoreCnfBestSharedRecur ( + #ifdef DD_DEBUG +@@ -752,7 +752,7 @@ cuddZddSwapping( + int iterate; + int previousSize; + Move *moves, *move; +- int pivot; ++ int pivot = 0; + int modulo; + int result; - nodeThen = cuddT (node); - nodeElse = cuddE (node); -- index = node->index; +--- ./cudd/cuddZddSymm.c.orig 2012-02-04 18:07:33.000000000 -0700 ++++ ./cudd/cuddZddSymm.c 2015-10-01 21:40:19.685646516 -0600 +@@ -1495,7 +1495,7 @@ zdd_group_move( + Move *move; + int size; + int i, temp, gxtop, gxbot, gybot, yprev; +- int swapx, swapy; ++ int swapx = 0, swapy = 0; - StoreCnfBestSharedRecur (ddMgr, Cudd_Regular (nodeThen), bddIds, cnfIds, - fp, list, clauseN, varMax); + #ifdef DD_DEBUG + assert(x < y); /* we assume that x < y */ +@@ -1598,7 +1598,7 @@ zdd_group_move_backward( + int x, + int y) + { +- int size; ++ int size = 0; + int i, temp, gxtop, gxbot, gybot, yprev; + + #ifdef DD_DEBUG --- ./dddmp/dddmpNodeCnf.c.orig 2004-02-18 09:24:31.000000000 -0700 +++ ./dddmp/dddmpNodeCnf.c 2012-02-20 15:16:44.890399143 -0700 @@ -55,7 +55,6 @@ @@ -528,3 +483,57 @@ } retValue = NodeTextStoreAdd (ddMgr, f, mode, supportids, varnames, +--- ./dddmp/dddmpStoreCnf.c.orig 2004-02-19 15:15:53.000000000 -0700 ++++ ./dddmp/dddmpStoreCnf.c 2012-02-20 15:16:44.885399147 -0700 +@@ -1338,9 +1338,6 @@ StoreCnfBestNotSharedRecur ( + { + DdNode *N, *Nv, *Nnv; + int index, retValue; +- DdNode *one; +- +- one = ddMgr->one; + + N = Cudd_Regular (node); + +@@ -1459,10 +1456,7 @@ StoreCnfBestSharedRecur ( + ) + { + DdNode *nodeThen, *nodeElse; +- int i, idf, index; +- DdNode *one; +- +- one = ddMgr->one; ++ int i, idf; + + Dddmp_Assert (node==Cudd_Regular(node), + "Inverted Edge during Shared Printing."); +@@ -1517,7 +1511,6 @@ StoreCnfBestSharedRecur ( + + nodeThen = cuddT (node); + nodeElse = cuddE (node); +- index = node->index; + + StoreCnfBestSharedRecur (ddMgr, Cudd_Regular (nodeThen), bddIds, cnfIds, + fp, list, clauseN, varMax); +--- ./nanotrav/bnet.c.orig 2015-01-03 12:18:55.000000000 -0700 ++++ ./nanotrav/bnet.c 2015-10-01 21:14:51.636689611 -0600 +@@ -1947,7 +1947,8 @@ buildMuxBDD( + assert(controlC != -1 && controlR != -1); + /* At this point we know that there is indeed no column with two + ** dashes. The control column has been identified, and we know that +- ** its two elelments are different. */ ++ ** its two elements are different. */ ++ mux[0] = mux[1] = phase[0] = phase[1] = 0; + for (j = 0; j < 3; j++) { + if (j == controlC) continue; + if (values[controlR][j] == '1') { +--- ./nanotrav/ntr.c.orig 2015-01-03 12:44:44.000000000 -0700 ++++ ./nanotrav/ntr.c 2015-10-01 21:14:51.634689770 -0600 +@@ -998,6 +998,7 @@ Ntr_SCC( + if (tmp == NULL) return(0); + init = Cudd_bddPickOneMinterm(dd,tmp,TR->x,TR->nlatches); + } else { ++ tmp = NULL; + init = Cudd_bddPickOneMinterm(dd,states,TR->x,TR->nlatches); + } + if (init == NULL) return(0); diff --git a/cudd-2.5.0-sharedlib.patch b/cudd-2.5.0-sharedlib.patch index b9848c8..709ba70 100644 --- a/cudd-2.5.0-sharedlib.patch +++ b/cudd-2.5.0-sharedlib.patch @@ -1,6 +1,138 @@ ---- ./Makefile.orig 2012-02-04 23:48:43.000000000 -0700 -+++ ./Makefile 2012-02-20 13:12:02.258219178 -0700 -@@ -198,7 +198,7 @@ DDWDIR = . +--- ./cudd/doc/node3.html.orig 2015-01-03 13:08:49.000000000 -0700 ++++ ./cudd/doc/node3.html 2015-10-01 21:08:24.688284984 -0600 +@@ -154,16 +154,18 @@ Compiling and Linking +

+ To build an application that uses the CUDD package, you should add +

+-#include "util.h"
+-#include "cudd.h"
++#include <util.h>
++#include <cudd.h>
+ 
+ +-to your source files, and should link ++to your source files, compile with -I/usr/include/cudd, and link + libcudd.a, + libmtr.a, + libst.a, and + libutil.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 -lcudd to your link command. Some + platforms require specific compiler and linker flags. Refer to the + Makefile in the top level directory of the + distribution. +--- ./cudd/Makefile.orig 1999-08-19 16:34:24.000000000 -0600 ++++ ./cudd/Makefile 2012-02-20 13:08:15.195445284 -0700 +@@ -27,6 +27,10 @@ WHERE = .. + + 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 @@ UBJ = $(SRC:.c=.u) + + #------------------------------------------------------ + ++lib$(P).so.2.5.0: $(POBJ) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(POBJ) $(SHLINK) ++ ln -s lib$(P).so.2.5.0 lib$(P).so.2 ++ ln -s lib$(P).so.2 lib$(P).so ++ + lib$(P).a: $(POBJ) + ar rv $@ $? + $(RANLIB) $@ +@@ -111,7 +120,9 @@ lintpgm: lint + tags: $(PSRC) $(PHDR) + ctags $(PSRC) $(PHDR) + +-all: lib$(P).a lib$(P).b llib-l$(P).ln tags ++all: lib$(P).so.2.5.0 lib$(P).b llib-l$(P).ln tags ++ ++static: lib$(P).a + + programs: $(TARGET) $(TARGETu) lintpgm + +--- ./dddmp/Makefile.orig 2012-02-04 20:53:21.000000000 -0700 ++++ ./dddmp/Makefile 2012-02-20 13:08:15.195445284 -0700 +@@ -170,6 +170,10 @@ MNEMLIB = ../mnemosyne/libmnem.a + 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 @@ LINTLIBS = ./llib-ldddmp.ln $(WHERE)/cud + $(WHERE)/mtr/llib-lmtr.ln $(WHERE)/st/llib-lst.ln \ + $(WHERE)/util/llib-lutil.ln + ++lib$(P).so.2.5.0: $(POBJ) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(POBJ) $(SHLINK) ++ ln -s lib$(P).so.2.5.0 lib$(P).so.2 ++ ln -s lib$(P).so.2 lib$(P).so ++ + lib$(P).a: $(POBJ) + ar rv $@ $? + $(RANLIB) $@ +@@ -222,7 +231,9 @@ lintpgm: lint + tags: $(PSRC) $(PHDR) + ctags $(PSRC) $(PHDR) + +-all: lib$(P).a lib$(P).b llib-l$(P).ln tags ++all: lib$(P).so.2.5.0 lib$(P).b llib-l$(P).ln tags ++ ++static: lib$(P).a + + programs: $(TARGET) $(TARGETu) lintpgm + +--- ./epd/Makefile.orig 2003-12-31 09:31:30.000000000 -0700 ++++ ./epd/Makefile 2012-02-20 13:08:15.196445283 -0700 +@@ -11,6 +11,9 @@ MFLAG = + 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 @@ INCLUDE = $(WHERE)/include + + #--------------------------- + ++lib$(P).so.2.5.0: $(POBJ) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(POBJ) $(SHLINK) ++ ln -s lib$(P).so.2.5.0 lib$(P).so.2 ++ ln -s lib$(P).so.2 lib$(P).so ++ + lib$(P).a: $(POBJ) + ar rv $@ $? + $(RANLIB) $@ +@@ -55,7 +63,9 @@ llib-l$(P).ln: $(PSRC) $(PHDR) + tags: $(PSRC) $(PHDR) + ctags $(PSRC) $(PHDR) + +-all: lib$(P).a lib$(P).b llib-l$(P).ln tags ++all: lib$(P).so.2.5.0 lib$(P).b llib-l$(P).ln tags ++ ++static: lib$(P).a + + clean: + rm -f *.o *.u .pure *.warnings +--- ./Makefile.orig 2015-01-05 07:21:45.000000000 -0700 ++++ ./Makefile 2015-10-01 21:13:57.742960799 -0600 +@@ -200,7 +200,7 @@ DDWDIR = . IDIR = $(DDWDIR)/include INCLUDE = -I$(IDIR) @@ -9,7 +141,7 @@ DIRS = $(BDIRS) nanotrav #------------------------------------------------------------------------ -@@ -214,26 +214,32 @@ DIRS = $(BDIRS) nanotrav +@@ -216,26 +216,32 @@ DIRS = $(BDIRS) nanotrav .PHONY : testmtr .PHONY : lint .PHONY : all @@ -20,8 +152,8 @@ build: sh ./setup.sh -- @for dir in $(DIRS); do \ -+ @for dir in $(DIRS) obj; do \ +- @+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)" )\ @@ -38,7 +170,7 @@ check_leaks: sh ./setup.sh - @for dir in mnemosyne $(DIRS); do \ + @+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)" )\ @@ -46,8 +178,8 @@ done optimize_dec: -@@ -241,7 +247,7 @@ optimize_dec: - @for dir in $(DIRS); do \ +@@ -243,7 +249,7 @@ optimize_dec: + @+for dir in $(DIRS); do \ (cd $$dir; \ echo Making $$dir ...; \ - make CC=$(CC) RANLIB=$(RANLIB) XCFLAGS="$(XCFLAGS)" LDFLAGS="$(LDFLAGS)" optimize_dec )\ @@ -55,8 +187,8 @@ done lint: -@@ -249,7 +255,7 @@ lint: - @for dir in $(DIRS) obj; do \ +@@ -251,7 +257,7 @@ lint: + @+for dir in $(DIRS) obj; do \ (cd $$dir; \ echo Making lint in $$dir ...; \ - make CC=$(CC) lint )\ @@ -64,8 +196,8 @@ done tags: -@@ -257,15 +263,23 @@ tags: - @for dir in $(DIRS) obj; do \ +@@ -259,15 +265,23 @@ tags: + @+for dir in $(DIRS) obj; do \ (cd $$dir; \ echo Making tags in $$dir ...; \ - make CC=$(CC) tags )\ @@ -74,8 +206,8 @@ all: sh ./setup.sh -- @for dir in $(DIRS); do \ -+ @for dir in $(DIRS) obj; do \ +- @+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 )\ @@ -84,52 +216,52 @@ + +static: + sh ./setup.sh -+ @for dir in $(DIRS) obj; do \ ++ @+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: -@@ -273,49 +287,49 @@ testcudd: - @for dir in util st mtr epd; do \ +@@ -275,49 +289,49 @@ testcudd: + @+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; \ + @+(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 \ + @+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; \ + @+(cd obj; \ echo Making obj ...; \ - make CXX=$(CXX) CXXFLAGS=$(CXXFLAGS) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" ) + $(MAKE) CXX=$(CXX) CXXFLAGS=$(CXXFLAGS) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" ) testobj: objlib - @(cd obj; \ + @+(cd obj; \ echo Making testobj ...; \ - make CXX=$(CXX) CXXFLAGS=$(CXXFLAGS) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" testobj$(EXE) ) + $(MAKE) CXX=$(CXX) CXXFLAGS=$(CXXFLAGS) RANLIB=$(RANLIB) MFLAG= MNEMLIB= ICFLAGS="$(ICFLAGS)" XCFLAGS="$(XCFLAGS)" DDDEBUG="$(DDDEBUG)" MTRDEBUG="$(MTRDEBUG)" LDFLAGS="$(LDFLAGS)" PURE="$(PURE)" EXE="$(EXE)" testobj$(EXE) ) testdddmp: build - @(cd dddmp; \ + @+(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; \ + @+(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) ) @@ -150,75 +282,32 @@ + $(MAKE) -s EXE="$(EXE)" distclean ) \ done sh ./shutdown.sh ---- ./util/Makefile.orig 2012-02-04 22:36:31.000000000 -0700 -+++ ./util/Makefile 2012-02-20 13:08:15.198445281 -0700 -@@ -12,6 +12,8 @@ MFLAG = - 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 -@@ -27,6 +29,11 @@ PHDR = util.h - WHERE = .. - INCLUDE = $(WHERE)/include - -+libcudd$(P).so.2.5.0: $(POBJ) -+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(POBJ) $(SHLINK) -+ ln -s libcudd$(P).so.2.5.0 libcudd$(P).so.2 -+ ln -s libcudd$(P).so.2 libcudd$(P).so -+ - lib$(P).a: $(POBJ) - ar rv $@ $? - $(RANLIB) $@ -@@ -55,7 +62,9 @@ llib-l$(P).ln: $(PSRC) $(PHDR) - tags: $(PSRC) $(PHDR) - ctags $(PSRC) $(PHDR) +--- ./mnemosyne/Makefile.orig 2009-02-19 23:39:23.000000000 -0700 ++++ ./mnemosyne/Makefile 2012-02-20 13:08:15.196445283 -0700 +@@ -19,14 +19,22 @@ CFLAGS = -g $(OPTNS) $(XCFLAGS) --all: lib$(P).a lib$(P).b llib-l$(P).ln tags -+all: libcudd$(P).so.2.5.0 lib$(P).b llib-l$(P).ln tags -+ -+static: lib$(P).a + #loader flags + LDFLGS = ++SHLINK = -shared -Xlinker -soname -Xlinker libmnem.so.2 - clean: - rm -f *.o *.u core *.warnings ---- ./epd/Makefile.orig 2003-12-31 09:31:30.000000000 -0700 -+++ ./epd/Makefile 2012-02-20 13:08:15.196445283 -0700 -@@ -11,6 +11,9 @@ MFLAG = - ICFLAGS = -g -O6 -Wall - CFLAGS = $(ICFLAGS) $(MFLAG) $(XCFLAGS) + HDRS = mnemosyne.h mnemconf.h -+SHLINK = -shared -Xlinker -soname -Xlinker lib$(P).so.2 -L$(WHERE)/util \ -+ -lcuddutil -lm +-all: mnemalyse libmnem.a ++all: mnemalyse libmnem.so.2.5.0 + - LINTFLAGS = -u -n - - # this is to create the lint library -@@ -27,6 +30,11 @@ INCLUDE = $(WHERE)/include ++static: libmnem.a - #--------------------------- + mnemalyse: mnemalyse.o + $(CC) $(LDFLGS) -o $@ mnemalyse.o -+lib$(P).so.2.5.0: $(POBJ) -+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(POBJ) $(SHLINK) -+ ln -s lib$(P).so.2.5.0 lib$(P).so.2 -+ ln -s lib$(P).so.2 lib$(P).so ++libmnem.so.2.5.0: mnemosyne.o ++ $(CC) $(CFLAGS) $(LDFLAGS) $(SHLINK) -o $@ $< ++ ln -s libmnem.so.2.5.0 libmnem.so.2 ++ ln -s libmnem.so.2 libmnem.so + - lib$(P).a: $(POBJ) - ar rv $@ $? + libmnem.a: mnemosyne.o + ar rcv $@ mnemosyne.o $(RANLIB) $@ -@@ -55,7 +63,9 @@ llib-l$(P).ln: $(PSRC) $(PHDR) - tags: $(PSRC) $(PHDR) - ctags $(PSRC) $(PHDR) - --all: lib$(P).a lib$(P).b llib-l$(P).ln tags -+all: lib$(P).so.2.5.0 lib$(P).b llib-l$(P).ln tags -+ -+static: lib$(P).a - - clean: - rm -f *.o *.u .pure *.warnings --- ./mtr/Makefile.orig 2004-01-01 11:47:16.000000000 -0700 +++ ./mtr/Makefile 2012-02-20 13:08:15.197445282 -0700 @@ -39,6 +39,9 @@ UBJ = $(SRC:.c=.u) @@ -291,102 +380,6 @@ pixie: $(TARGETu) pixie $(TARGETu) ---- ./cudd/Makefile.orig 1999-08-19 16:34:24.000000000 -0600 -+++ ./cudd/Makefile 2012-02-20 13:08:15.195445284 -0700 -@@ -27,6 +27,10 @@ WHERE = .. - - 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 @@ UBJ = $(SRC:.c=.u) - - #------------------------------------------------------ - -+lib$(P).so.2.5.0: $(POBJ) -+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(POBJ) $(SHLINK) -+ ln -s lib$(P).so.2.5.0 lib$(P).so.2 -+ ln -s lib$(P).so.2 lib$(P).so -+ - lib$(P).a: $(POBJ) - ar rv $@ $? - $(RANLIB) $@ -@@ -111,7 +120,9 @@ lintpgm: lint - tags: $(PSRC) $(PHDR) - ctags $(PSRC) $(PHDR) - --all: lib$(P).a lib$(P).b llib-l$(P).ln tags -+all: lib$(P).so.2.5.0 lib$(P).b llib-l$(P).ln tags -+ -+static: lib$(P).a - - programs: $(TARGET) $(TARGETu) lintpgm - ---- ./cudd/doc/node3.html.orig 2012-02-04 20:05:02.000000000 -0700 -+++ ./cudd/doc/node3.html 2012-02-20 13:08:15.195445284 -0700 -@@ -154,16 +154,18 @@ Compiling and Linking -

- To build an application that uses the CUDD package, you should add -

--#include "util.h"
--#include "cudd.h"
-+#include <util.h>
-+#include <cudd.h>
- 
- --to your source files, and should link -+to your source files, compile with -I/usr/include/cudd, and link - libcudd.a, - libmtr.a, - libst.a, and - libutil.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 -lcudd to your link command. Some - platforms require specific compiler and linker flags. Refer to the - Makefile in the top level directory of the - distribution. ---- ./st/Makefile.orig 2004-01-01 09:53:24.000000000 -0700 -+++ ./st/Makefile 2012-02-20 13:08:15.198445281 -0700 -@@ -11,6 +11,9 @@ MFLAG = - 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 @@ INCLUDE = $(WHERE)/include - - #--------------------------- - -+libcudd$(P).so.2.5.0: $(POBJ) -+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(POBJ) $(SHLINK) -+ ln -s libcudd$(P).so.2.5.0 libcudd$(P).so.2 -+ ln -s libcudd$(P).so.2 libcudd$(P).so -+ - lib$(P).a: $(POBJ) - ar rv $@ $? - $(RANLIB) $@ -@@ -55,7 +63,9 @@ llib-l$(P).ln: $(PSRC) $(PHDR) - tags: $(PSRC) $(PHDR) - ctags $(PSRC) $(PHDR) - --all: lib$(P).a lib$(P).b llib-l$(P).ln tags -+all: libcudd$(P).so.2.5.0 lib$(P).b llib-l$(P).ln tags -+ -+static: lib$(P).a - - clean: - rm -f *.o *.u .pure *.warnings --- ./obj/Makefile.orig 2012-02-04 18:49:02.000000000 -0700 +++ ./obj/Makefile 2012-02-20 13:08:15.197445282 -0700 @@ -27,6 +27,8 @@ WHERE = .. @@ -452,65 +445,72 @@ programs: $(TARGET) $(TARGETu) lintpgm ---- ./mnemosyne/Makefile.orig 2009-02-19 23:39:23.000000000 -0700 -+++ ./mnemosyne/Makefile 2012-02-20 13:08:15.196445283 -0700 -@@ -19,14 +19,22 @@ CFLAGS = -g $(OPTNS) $(XCFLAGS) - - #loader flags - LDFLGS = -+SHLINK = -shared -Xlinker -soname -Xlinker libmnem.so.2 - - HDRS = mnemosyne.h mnemconf.h +--- ./st/Makefile.orig 2004-01-01 09:53:24.000000000 -0700 ++++ ./st/Makefile 2012-02-20 13:08:15.198445281 -0700 +@@ -11,6 +11,9 @@ MFLAG = + ICFLAGS = -g -O6 -Wall + CFLAGS = $(ICFLAGS) $(MFLAG) $(XCFLAGS) --all: mnemalyse libmnem.a -+all: mnemalyse libmnem.so.2.5.0 ++SHLINK = -shared -Xlinker -soname -Xlinker libcudd$(P).so.2 -L$(WHERE)/util \ ++ -lcuddutil + -+static: libmnem.a + LINTFLAGS = -u -n - mnemalyse: mnemalyse.o - $(CC) $(LDFLGS) -o $@ mnemalyse.o + # this is to create the lint library +@@ -27,6 +30,11 @@ INCLUDE = $(WHERE)/include -+libmnem.so.2.5.0: mnemosyne.o -+ $(CC) $(CFLAGS) $(LDFLAGS) $(SHLINK) -o $@ $< -+ ln -s libmnem.so.2.5.0 libmnem.so.2 -+ ln -s libmnem.so.2 libmnem.so + #--------------------------- + ++libcudd$(P).so.2.5.0: $(POBJ) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(POBJ) $(SHLINK) ++ ln -s libcudd$(P).so.2.5.0 libcudd$(P).so.2 ++ ln -s libcudd$(P).so.2 libcudd$(P).so + - libmnem.a: mnemosyne.o - ar rcv $@ mnemosyne.o + lib$(P).a: $(POBJ) + ar rv $@ $? $(RANLIB) $@ ---- ./dddmp/Makefile.orig 2012-02-04 20:53:21.000000000 -0700 -+++ ./dddmp/Makefile 2012-02-20 13:08:15.195445284 -0700 -@@ -170,6 +170,10 @@ MNEMLIB = ../mnemosyne/libmnem.a - LINTFLAGS = -u -n - LINTSWITCH = -o +@@ -55,7 +63,9 @@ llib-l$(P).ln: $(PSRC) $(PHDR) + tags: $(PSRC) $(PHDR) + ctags $(PSRC) $(PHDR) -+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 +-all: lib$(P).a lib$(P).b llib-l$(P).ln tags ++all: libcudd$(P).so.2.5.0 lib$(P).b llib-l$(P).ln tags + - LIBS = ./libdddmp.a $(WHERE)/cudd/libcudd.a $(WHERE)/mtr/libmtr.a \ - $(WHERE)/st/libst.a $(WHERE)/util/libutil.a $(WHERE)/epd/libepd.a ++static: lib$(P).a -@@ -182,6 +186,11 @@ LINTLIBS = ./llib-ldddmp.ln $(WHERE)/cud - $(WHERE)/mtr/llib-lmtr.ln $(WHERE)/st/llib-lst.ln \ - $(WHERE)/util/llib-lutil.ln + clean: + rm -f *.o *.u .pure *.warnings +--- ./util/Makefile.orig 2015-01-03 11:32:05.000000000 -0700 ++++ ./util/Makefile 2015-10-01 21:08:24.684285300 -0600 +@@ -12,6 +12,8 @@ MFLAG = + ICFLAGS = -g + CFLAGS = $(ICFLAGS) $(MFLAG) $(XCFLAGS) -+lib$(P).so.2.5.0: $(POBJ) ++SHLINK = -shared -Xlinker -soname -Xlinker libcudd$(P).so.2 ++ + LINTFLAGS = -u -n + + # this is to create the lint library +@@ -27,6 +29,11 @@ PHDR = util.h cstringstream.h + WHERE = .. + INCLUDE = $(WHERE)/include + ++libcudd$(P).so.2.5.0: $(POBJ) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(POBJ) $(SHLINK) -+ ln -s lib$(P).so.2.5.0 lib$(P).so.2 -+ ln -s lib$(P).so.2 lib$(P).so ++ ln -s libcudd$(P).so.2.5.0 libcudd$(P).so.2 ++ ln -s libcudd$(P).so.2 libcudd$(P).so + lib$(P).a: $(POBJ) ar rv $@ $? $(RANLIB) $@ -@@ -222,7 +231,9 @@ lintpgm: lint +@@ -55,7 +62,9 @@ llib-l$(P).ln: $(PSRC) $(PHDR) tags: $(PSRC) $(PHDR) ctags $(PSRC) $(PHDR) -all: lib$(P).a lib$(P).b llib-l$(P).ln tags -+all: lib$(P).so.2.5.0 lib$(P).b llib-l$(P).ln tags ++all: libcudd$(P).so.2.5.0 lib$(P).b llib-l$(P).ln tags + +static: lib$(P).a - programs: $(TARGET) $(TARGETu) lintpgm - + clean: + rm -f *.o *.u core *.warnings diff --git a/cudd-2.5.0-signedness.patch b/cudd-2.5.0-signedness.patch index da3d57d..a1bea25 100644 --- a/cudd-2.5.0-signedness.patch +++ b/cudd-2.5.0-signedness.patch @@ -1,29 +1,40 @@ ---- ./cudd/cuddZddGroup.c.orig 2012-02-04 18:07:33.000000000 -0700 -+++ ./cudd/cuddZddGroup.c 2012-02-20 13:13:41.646120208 -0700 -@@ -171,7 +171,9 @@ Cudd_MakeZddTreeNode( +--- ./cudd/cuddGroup.c.orig 2012-02-04 18:07:33.000000000 -0700 ++++ ./cudd/cuddGroup.c 2012-02-20 13:13:41.645120209 -0700 +@@ -215,7 +215,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->sizeZ) ? dd->permZ[low] : low; -+ level = (low < (unsigned int) dd->sizeZ) -+ ? (unsigned int) dd->permZ[low] +- 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); ---- ./cudd/cuddGroup.c.orig 2012-02-04 18:07:33.000000000 -0700 -+++ ./cudd/cuddGroup.c 2012-02-20 13:13:41.645120209 -0700 -@@ -215,7 +215,9 @@ Cudd_MakeTreeNode( +--- ./cudd/cuddZddGroup.c.orig 2012-02-04 18:07:33.000000000 -0700 ++++ ./cudd/cuddZddGroup.c 2012-02-20 13:13:41.646120208 -0700 +@@ -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->size) ? dd->perm[low] : low; -+ level = (low < (unsigned int) dd->size) -+ ? (unsigned int) dd->perm[low] +- 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); +--- ./obj/cuddObj.cc.orig 2015-01-05 06:26:37.000000000 -0700 ++++ ./obj/cuddObj.cc 2015-10-01 21:37:15.782205894 -0600 +@@ -587,7 +587,7 @@ ostream & operator<<(ostream & os, BDD c + { + DdManager *mgr = f.p->manager; + vector const & vn = f.p->varnames; +- char const * const *inames = vn.size() == Cudd_ReadSize(mgr) ? ++ char const * const *inames = vn.size() == (size_t)Cudd_ReadSize(mgr) ? + &vn[0] : 0; + char * str = Cudd_FactoredFormString(mgr, f.node, inames); + f.checkReturnValue(str); --- ./st/st.c.orig 2012-02-04 17:25:15.000000000 -0700 +++ ./st/st.c 2012-02-20 13:13:41.647120207 -0700 @@ -54,7 +54,7 @@ static char rcsid[] UTIL_UNUSED = " $Id: diff --git a/cudd.spec b/cudd.spec index 8a9c1df..c652f14 100644 --- a/cudd.spec +++ b/cudd.spec @@ -1,6 +1,6 @@ Name: cudd -Version: 2.5.0 -Release: 9%{?dist} +Version: 2.5.1 +Release: 1%{?dist} Summary: CU Decision Diagram Package Group: Development/Libraries License: BSD @@ -65,16 +65,21 @@ for f in dddmp/README.*; do mv -f ${f}.fixed $f done +# The 2.5.1 release didn't change the version numbers +for mk in $(find . -name Makefile); do + sed -i 's/2\.5\.0/%{version}/g' $mk +done + %build # Build the shared libraries and binaries make %{?_smp_mflags} CPPFLAGS="%{optflags}" ICFLAGS="%{optflags} -fPIC" \ - XCFLAGS="-DHAVE_IEEE_754 -DBSD" + XCFLAGS="-DHAVE_IEEE_754 -DBSD" LDFLAGS="$RPM_LD_FLAGS" # Build the static libraries make clean make %{?_smp_mflags} static CPPFLAGS="%{optflags}" ICFLAGS="%{optflags}" \ - XCFLAGS="-DHAVE_IEEE_754 -DBSD" + XCFLAGS="-DHAVE_IEEE_754 -DBSD" LDFLAGS="$RPM_LD_FLAGS" %install @@ -144,6 +149,10 @@ mv st/doc doc/st %changelog +* Thu Oct 1 2015 Jerry James - 2.5.1-1 +- Update to 2.5.1 +- Link with RPM_LD_FLAGS + * Wed Jun 17 2015 Fedora Release Engineering - 2.5.0-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild diff --git a/sources b/sources index 5a7dabc..f2d39c3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -8fec90d7ebd68563bddbe6c9331d92e6 cudd-2.5.0.tar.gz +e2a514c2d309feab6b697195b7615b8b cudd-2.5.1.tar.gz