Package: ivi
Severity: normal
Tags: patch

When building 'ivi' on amd64 with gcc-4.0,
I get the following error:

./vector.h:143: error: template definition of non-template 'int 
Vector<vType>::remove(vType*)'
./vector.h:175: error: no 'void Vector<vType>::swap()' member function declared 
in class 'Vector<vType>'
./vector.h:175: error: template definition of non-template 'void 
Vector<vType>::swap()'
./vector.h:184: error: prototype for 'void Vector<vType>::swap(Uint32, Uint32)' 
does not match any in class 'Vector<vType>'
./vector.h:175: error: candidate is: void Vector<vType>::swap()
./vector.h:184: error: template definition of non-template 'void 
Vector<vType>::swap(Uint32, Uint32)'
./vector.h:203: error: no 'void Vector<vType>::setEqual(Vector<vType>*)' member 
function declared in class 'Vector<vType>'
./vector.h:203: error: template definition of non-template 'void 
Vector<vType>::setEqual(Vector<vType>*)'
./vector.h: In member function 'void Vector<vType>::setEqual(Vector<vType>*)':
./vector.h:206: error: there are no arguments to 'empty' that depend on a 
template parameter, so a declaration of 'empty' must be available
./vector.h:206: error: (if you use '-fpermissive', G++ will accept your code, 
but allowing the use of an undeclared name is deprecated)
./DFIO.cc: In member function 'Int32 DFIO::base_addTrace(DFIOTrace*)':
./DFIO.cc:188: error: 'class Vector<DFIOTrace>' has no member named 'append'
make[3]: *** [DFIO.o] Error 1
make[3]: Leaving directory `/ivi-0.4.pre.20031121/src/common'

With the attached patch 'ivi' can be compiled
on amd64 using gcc-4.0.

Regards
Andreas Jochens

diff -urN ../tmp-orig/ivi-0.4.pre.20031121/src/common/vector.h 
./src/common/vector.h
--- ../tmp-orig/ivi-0.4.pre.20031121/src/common/vector.h        2003-11-21 
02:57:51.000000000 +0100
+++ ./src/common/vector.h       2005-03-17 22:40:04.000000000 +0100
@@ -59,21 +59,21 @@
         return numObjs;
     }
 
-    virtual void Vector<vType>::empty(void) { 
+    virtual void empty(void) { 
         numObjs = 0;
     }
 
-    virtual void Vector<vType>::append(vType *newObj);
-    virtual void Vector<vType>::append(Vector<vType> *aVect);
-    virtual void Vector<vType>::append(Vector<vType> *aVect, 
+    virtual void append(vType *newObj);
+    virtual void append(Vector<vType> *aVect);
+    virtual void append(Vector<vType> *aVect, 
         Uint32 startIdx, Uint32 endIdx);
 
-    virtual int Vector<vType>::remove(vType *rm_el);
+    virtual int remove(vType *rm_el);
 
-    virtual void Vector<vType>::setEqual(Vector<vType> *aVect);
+    virtual void setEqual(Vector<vType> *aVect);
 
-    virtual void Vector<vType>::swap(void);
-    virtual void Vector<vType>::swap(Uint32 startIdx, Uint32 endIdx);
+    virtual void swap(void);
+    virtual void swap(Uint32 startIdx, Uint32 endIdx);
 
     vType **get_storage() { return objArray; }
 
diff -urN ../tmp-orig/ivi-0.4.pre.20031121/src/common/ConfigDB.cc 
./src/common/ConfigDB.cc
--- ../tmp-orig/ivi-0.4.pre.20031121/src/common/ConfigDB.cc     2003-11-21 
02:57:51.000000000 +0100
+++ ./src/common/ConfigDB.cc    2005-03-17 22:42:13.700286128 +0100
@@ -1015,7 +1015,7 @@
                     parentInterp, objv[3]);
 
             char buf[20];
-            sprintf(buf, "0x%08x", (Uint32)cb);
+            sprintf(buf, "0x%16x", (unsigned long)cb);
 
             Tcl_SetObjResult(parentInterp, Tcl_NewStringObj(buf, -1));
         } break;
diff -urN ../tmp-orig/ivi-0.4.pre.20031121/src/common/DesignDB.cc 
./src/common/DesignDB.cc
--- ../tmp-orig/ivi-0.4.pre.20031121/src/common/DesignDB.cc     2003-11-21 
02:57:51.000000000 +0100
+++ ./src/common/DesignDB.cc    2005-03-17 22:41:18.737946344 +0100
@@ -836,7 +836,7 @@
     Char                *argvO[128], *optO[128], buf[128];
     Int32                optTO[128], ret;
     Uint32               argcO, optcO, i, getSigs = 1, len = 0;
-    Uint32               msb, lsb;
+    unsigned long       msb, lsb;
     Vector<TreeNode>    *result;
     Char                *elemType = "@signals@"; 
     boolean              size     = false;
@@ -875,8 +875,8 @@
 
     for (i=0; (i<512 && i<result->length()); i++) {
         if (size && getSigs) { 
-            msb = (Uint32)result->idx(i)->findField("sigMsb")->getVoidVal();
-            lsb = (Uint32)result->idx(i)->findField("sigLsb")->getVoidVal();
+            msb = (unsigned 
long)result->idx(i)->findField("sigMsb")->getVoidVal();
+            lsb = (unsigned 
long)result->idx(i)->findField("sigLsb")->getVoidVal();
             if (lsb || msb) {
                 len = sprintf(buf, "%s[%d:%d]", 
                     result->idx(i)->nodeName->value(),
@@ -915,7 +915,7 @@
     Vector<TreeNode>   *list;
     Tcl_Obj             *name_list[512];
     Tcl_Obj             *ret = 0;
-    Uint32               i, msb, lsb;
+    unsigned long        i, msb, lsb;
     Char                 buf[128];
 
     if (modPath[1] == 0) {
@@ -932,8 +932,8 @@
    
     for (i=0; (i<512 && i<list->length()); i++) {
         if (!strcmp(resource, "signals")) {
-            msb = (Uint32)list->idx(i)->findField("sigMsb")->getVoidVal();
-            lsb = (Uint32)list->idx(i)->findField("sigLsb")->getVoidVal();
+            msb = (unsigned 
long)list->idx(i)->findField("sigMsb")->getVoidVal();
+            lsb = (unsigned 
long)list->idx(i)->findField("sigLsb")->getVoidVal();
             if (lsb || msb) {
                 sprintf(buf, "%s[%d:%d]", list->idx(i)->nodeName->value(),
                              msb, lsb);
diff -urN ../tmp-orig/ivi-0.4.pre.20031121/src/common/SigDB.cc 
./src/common/SigDB.cc
--- ../tmp-orig/ivi-0.4.pre.20031121/src/common/SigDB.cc        2003-11-21 
02:57:51.000000000 +0100
+++ ./src/common/SigDB.cc       2005-03-17 22:41:52.860328039 +0100
@@ -323,7 +323,7 @@
     s_vpi_time          time_s;
     p_vpi_time          time_p;
     p_cb_data           cb_data_p;
-    Uint32              msb, lsb, i;
+    unsigned long       msb, lsb, i;
 
     /**** Pick up the simulation resolution ****/
     resolution = sim->vpi_get(vpiTimePrecision, 0);
@@ -337,8 +337,8 @@
 
         if (!newTrace) {
             vpiHndl = (vpiHandle)sig->findField("vpiHandle")->getVoidVal();
-            msb = (Uint32)sig->findField("sigMsb")->getVoidVal();
-            lsb = (Uint32)sig->findField("sigLsb")->getVoidVal();
+            msb = (unsigned long)sig->findField("sigMsb")->getVoidVal();
+            lsb = (unsigned long)sig->findField("sigLsb")->getVoidVal();
 
             newTrace = dfio->newTrace(name, 0, msb, lsb, 16);
             newTrace->userData[0] = sim;
diff -urN ../tmp-orig/ivi-0.4.pre.20031121/src/shm_dfio/ShmDFIOFile.cc 
./src/shm_dfio/ShmDFIOFile.cc
--- ../tmp-orig/ivi-0.4.pre.20031121/src/shm_dfio/ShmDFIOFile.cc        
2003-11-21 02:57:51.000000000 +0100
+++ ./src/shm_dfio/ShmDFIOFile.cc       2005-03-17 22:44:20.248744668 +0100
@@ -236,7 +236,7 @@
     d_base = (char *)mmap(0, maplen, PROT_READ|PROT_WRITE,
             MAP_SHARED, d_fd, 0);
 
-    if (!d_base || ((int)d_base) == -1) {
+    if (!d_base || ((long)d_base) == -1) {
         perror("cannot map file");
         return -1;
     }


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to