FreeBSD Bugzilla – Attachment 103728 Details for
Bug 143727
Fixes for cad/spice
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
file.diff
file.diff (text/plain), 9.31 KB, created by
Pedro F. Giffuni
on 2010-02-10 14:50:09 UTC
(
hide
)
Description:
file.diff
Filename:
MIME Type:
Creator:
Pedro F. Giffuni
Created:
2010-02-10 14:50:09 UTC
Size:
9.31 KB
patch
obsolete
>diff -ruN spice.orig/files/patch-src_include_os_bsd_h spice/files/patch-src_include_os_bsd_h >--- spice.orig/files/patch-src_include_os_bsd_h 2010-02-09 15:07:21.000000000 +0000 >+++ spice/files/patch-src_include_os_bsd_h 2010-02-09 16:27:40.000000000 +0000 >@@ -1,6 +1,6 @@ >---- src/include/os_bsd.h.orig Sat Apr 24 18:09:46 1993 >-+++ src/include/os_bsd.h Mon Nov 12 03:14:36 2007 >-@@ -8,18 +8,35 @@ >+--- src/include/os_bsd.h.orig 1993-04-24 23:09:46.000000000 +0000 >++++ src/include/os_bsd.h 2010-02-09 16:25:54.000000000 +0000 >+@@ -8,18 +8,34 @@ > > #include "os_unix.h" > >@@ -8,7 +8,6 @@ > +#define HAS_STDLIB /* #include <stdlib.h> for libc defs */ > +#define HAS_SYSVDIRS /* <sys/dirent.h> */ > +#define HAS_INTWAITSTATUS /* wait(2) takes an int *, not a union */ >-+#define HAS_STRINGS /* use <strings.h> instead of <string.h> */ > +#define HAS_STRCHR /* strchr(3) instead of index(3) */ > +#define HAS_ATRIGH /* acosh(3), asinh(3), atanh(3) */ > +#define HAS_FLOAT_H /* float.h */ >diff -ruN spice.orig/files/patch-src_lib_ckt_noisean_c spice/files/patch-src_lib_ckt_noisean_c >--- spice.orig/files/patch-src_lib_ckt_noisean_c 1970-01-01 00:00:00.000000000 +0000 >+++ spice/files/patch-src_lib_ckt_noisean_c 2010-02-10 00:12:11.000000000 +0000 >@@ -0,0 +1,25 @@ >+--- src/lib/ckt/noisean.c.orig 2010-02-10 00:07:14.000000000 +0000 >++++ src/lib/ckt/noisean.c 2010-02-10 00:11:12.000000000 +0000 >+@@ -2,6 +2,9 @@ >+ Copyright 1990 Regents of the University of California. All rights reserved. >+ Author: 1987 Gary W. Ng >+ **********/ >++/* Patch to noisean.c by Richard D. McRoberts. >++ * >++ */ >+ >+ #include "spice.h" >+ #include <stdio.h> >+@@ -107,8 +110,12 @@ >+ error = CKTop(ckt, (ckt->CKTmode & MODEUIC) | MODEDCOP | MODEINITJCT, >+ (ckt->CKTmode & MODEUIC) | MODEDCOP | MODEINITFLOAT, >+ ckt->CKTdcMaxIter); >++ if (error) return(error); >+ >++ ckt->CKTmode = (ckt->CKTmode & MODEUIC) | MODEDCOP | MODEINITSMSIG; >++ error = CKTload(ckt); >+ if (error) return(error); >++ >+ data = (Ndata*)MALLOC(sizeof(Ndata)); >+ step = 0; >+ data->freq = job->NstartFreq; >diff -ruN spice.orig/files/patch-src_lib_ckt_traninit_c spice/files/patch-src_lib_ckt_traninit_c >--- spice.orig/files/patch-src_lib_ckt_traninit_c 1970-01-01 00:00:00.000000000 +0000 >+++ spice/files/patch-src_lib_ckt_traninit_c 2010-02-09 23:58:52.000000000 +0000 >@@ -0,0 +1,14 @@ >+--- src/lib/ckt/traninit.c.orig 2010-02-09 23:52:59.000000000 +0000 >++++ src/lib/ckt/traninit.c 2010-02-09 23:57:48.000000000 +0000 >+@@ -22,7 +22,10 @@ >+ ckt->CKTinitTime = ((TRANan*)job)->TRANinitTime; >+ ckt->CKTmaxStep = ((TRANan*)job)->TRANmaxStep; >+ if(ckt->CKTmaxStep == 0) { >+- ckt->CKTmaxStep = (ckt->CKTfinalTime-ckt->CKTinitTime)/50; >++ if ( ckt->CKTstep < (ckt->CKTfinalTime - ckt->CKTinitTime)/50.0) { >++ ckt->CKTmaxStep = ckt->CKTstep; } >++ else >++ { ckt->CKTmaxStep = (ckt->CKTfinalTime - ckt->CKTinitTime)/50.0; } >+ } >+ ckt->CKTdelmin = 1e-9*ckt->CKTmaxStep; /* XXX */ >+ ckt->CKTmode = ((TRANan*)job)->TRANmode; >diff -ruN spice.orig/files/patch-src_lib_dev_bsim1_bimpar_c spice/files/patch-src_lib_dev_bsim1_bimpar_c >--- spice.orig/files/patch-src_lib_dev_bsim1_bimpar_c 1970-01-01 00:00:00.000000000 +0000 >+++ spice/files/patch-src_lib_dev_bsim1_bimpar_c 2010-02-09 16:04:45.000000000 +0000 >@@ -0,0 +1,11 @@ >+--- src/lib/dev/bsim1/b1mpar.c.orig 2010-02-09 16:02:41.000000000 +0000 >++++ src/lib/dev/bsim1/b1mpar.c 2010-02-09 16:03:44.000000000 +0000 >+@@ -287,7 +287,7 @@ >+ mod->B1gateBulkOverlapCapGiven = TRUE; >+ break; >+ case BSIM1_MOD_XPART : >+- mod->B1channelChargePartitionFlag = value->iValue; >++ mod->B1channelChargePartitionFlag = value->rValue; >+ mod->B1channelChargePartitionFlagGiven = TRUE; >+ break; >+ case BSIM1_MOD_RSH : >diff -ruN spice.orig/files/patch-src_lib_dev_mos6_mos6load_c spice/files/patch-src_lib_dev_mos6_mos6load_c >--- spice.orig/files/patch-src_lib_dev_mos6_mos6load_c 1970-01-01 00:00:00.000000000 +0000 >+++ spice/files/patch-src_lib_dev_mos6_mos6load_c 2010-02-09 16:17:43.000000000 +0000 >@@ -0,0 +1,11 @@ >+--- src/lib/dev/mos6/mos6load.c.orig 2010-02-09 16:16:28.000000000 +0000 >++++ src/lib/dev/mos6/mos6load.c 2010-02-09 16:16:53.000000000 +0000 >+@@ -509,7 +509,7 @@ >+ } >+ vdshere = vds * here->MOS6mode; >+ von=(here->MOS6tVbi*model->MOS6type)+model->MOS6gamma*sarg >+- - model->MOS6gamma1 * vbsvbd; >++ - model->MOS6gamma1 * vbsvbd >+ - model->MOS6sigma * vdshere; >+ vgon = (here->MOS6mode==1?vgs:vgd) - von; >+ >diff -ruN spice.orig/files/patch-src_lib_fte_outitf_c spice/files/patch-src_lib_fte_outitf_c >--- spice.orig/files/patch-src_lib_fte_outitf_c 1970-01-01 00:00:00.000000000 +0000 >+++ spice/files/patch-src_lib_fte_outitf_c 2010-02-09 15:51:06.000000000 +0000 >@@ -0,0 +1,11 @@ >+--- src/lib/fte/outitf.c.orig 2010-02-09 15:49:01.000000000 +0000 >++++ src/lib/fte/outitf.c 2010-02-09 15:49:55.000000000 +0000 >+@@ -353,7 +353,7 @@ >+ >+ data->name = copy(name); >+ >+- unique = devname; >++ unique = copy(devname); >+ INPinsert(&unique, (INPtables *) ft_curckt->ci_symtab); >+ data->specName = unique; >+ >diff -ruN spice.orig/files/patch-src_lib_fte_subckt_c spice/files/patch-src_lib_fte_subckt_c >--- spice.orig/files/patch-src_lib_fte_subckt_c 1970-01-01 00:00:00.000000000 +0000 >+++ spice/files/patch-src_lib_fte_subckt_c 2010-02-09 16:00:11.000000000 +0000 >@@ -0,0 +1,22 @@ >+--- src/lib/fte/subckt.c.orig 2010-02-09 15:25:54.000000000 +0000 >++++ src/lib/fte/subckt.c 2010-02-09 15:57:52.000000000 +0000 >+@@ -648,6 +648,9 @@ >+ case 'f': >+ case 'H': >+ case 'h': >++ /* 2 lines here to fix w bug, NCF 1/31/95 */ >++ case 'W': >++ case 'w': >+ return (1); >+ >+ default: >+@@ -944,7 +947,8 @@ >+ case 't': return (4); >+ case 'u': return (3); >+ case 'v': return (2); >+- case 'w': return (3); >++ /* change 3 to 2 here to fix w bug, NCF 1/31/95 */ >++ case 'w': return (2); >+ case 'z': return (3); >+ >+ default: >diff -ruN spice.orig/files/patch-src_lib_fte_where_c spice/files/patch-src_lib_fte_where_c >--- spice.orig/files/patch-src_lib_fte_where_c 1970-01-01 00:00:00.000000000 +0000 >+++ spice/files/patch-src_lib_fte_where_c 2010-02-09 15:37:59.000000000 +0000 >@@ -0,0 +1,18 @@ >+--- src/lib/fte/where.c.orig 2010-02-09 15:32:23.000000000 +0000 >++++ src/lib/fte/where.c 2010-02-09 15:35:36.000000000 +0000 >+@@ -17,6 +17,15 @@ >+ { >+ char *msg; >+ >++ /*CDHW typing where with no current circuit caused crashes CDHW*/ >++ if (!ft_curckt) { >++ fprintf(cp_err, "There is no current circuit\n"); >++ return; >++ } >++ else if (ft_curckt->ci_ckt != "") { >++ fprintf(cp_err, "No unconverged node found.\n"); >++ return; >++ } >+ msg = (*ft_sim->nonconvErr)((GENERIC *) (ft_curckt->ci_ckt), 0); >+ >+ printf("%s", msg); >diff -ruN spice.orig/files/patch-src_lib_inp_inpgtok_c spice/files/patch-src_lib_inp_inpgtok_c >--- spice.orig/files/patch-src_lib_inp_inpgtok_c 1970-01-01 00:00:00.000000000 +0000 >+++ spice/files/patch-src_lib_inp_inpgtok_c 2010-02-09 15:44:58.000000000 +0000 >@@ -0,0 +1,41 @@ >+--- src/lib/inp/inpgtok.c.orig 2010-02-09 15:39:09.000000000 +0000 >++++ src/lib/inp/inpgtok.c 2010-02-09 15:43:10.000000000 +0000 >+@@ -27,6 +27,7 @@ >+ int gobble; /* eat non-whitespace trash AFTER token? */ >+ { >+ char * point; >++ int signstate; >+ >+ /* scan along throwing away garbage characters */ >+ for(point = *line;*point != '\0' ; point++ ) { >+@@ -41,6 +42,7 @@ >+ /* mark beginning of token */ >+ *line = point; >+ /* now find all good characters */ >++ signstate = 0; >+ for(point = *line;*point!='\0';point++) { >+ if(*point == ' ') break; >+ if(*point == '\t') break; >+@@ -48,6 +50,22 @@ >+ if(*point == '(') break; >+ if(*point == ')') break; >+ if(*point == ',') break; >++ /* This is not complex enough to catch all errors, but it will >++ get the "good" parses */ >++ if(*point == '+' && (signstate == 1 || signstate == 3)) break; >++ if(*point == '-' && (signstate == 1 || signstate == 3)) break; >++ if(*point == '*') break; >++ if(*point == '/') break; >++ if(*point == '^') break; >++ if (isdigit(*point) || *point == '.') { >++ if (signstate > 1) >++ signstate = 3; >++ else >++ signstate = 1; >++ } else if (tolower(*point) == 'e' && signstate == 1) >++ signstate = 2; >++ else >++ signstate = 3; >+ } >+ if (point == *line && *point) /* Weird items, 1 char */ >+ point++; >diff -ruN spice.orig/files/patch-src_lib_inp_inpptree_c spice/files/patch-src_lib_inp_inpptree_c >--- spice.orig/files/patch-src_lib_inp_inpptree_c 2010-02-09 15:07:21.000000000 +0000 >+++ spice/files/patch-src_lib_inp_inpptree_c 2010-02-09 15:46:17.000000000 +0000 >@@ -1,5 +1,5 @@ >---- src/lib/inp/inpptree.c.orig Mon May 3 02:16:54 1993 >-+++ src/lib/inp/inpptree.c Sun May 14 09:34:56 2006 >+--- src/lib/inp/inpptree.c.orig 1993-05-03 09:16:54.000000000 +0000 >++++ src/lib/inp/inpptree.c 2010-02-09 15:45:52.000000000 +0000 > @@ -1,6 +1,8 @@ > /********** > Copyright 1990 Regents of the University of California. All rights reserved. >@@ -32,3 +32,12 @@ > } > break; > >+@@ -977,7 +971,7 @@ >+ break; >+ } >+ >+- td = INPevaluate(&sbuf, &err, 0); >++ td = INPevaluate(&sbuf, &err, 1); >+ if (err == OK) { >+ el.token = TOK_VALUE; >+ el.type = TYP_NUM;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 143727
: 103728