Hi I've followed http://forums.trusster.com/topic/teal-build-error-fedora and used following particular patch post by Mike:
>
*** teal_reg.h.new 2010-06-28 14:47:39.000000000 -0400
--- teal_reg.h 2006-05-18 08:34:00.000000000 -0400
*************** EVEN IF ADVISED OF THE POSSIBILITY OF SU
*** 110,117 ****
char to_int (uint32 b) const; //extract one bit (WARNING: Drops X/Z, see operator(uint32))
//logic
! friend four_state ::teal::triple_equal (const reg& lhs, const reg& rhs);
! friend bool ::teal::operator== (const reg& lhs, const reg& rhs);
friend four_state operator< (const reg& lhs, const reg& rhs); //Should be bool?
friend four_state reduce_xor (const reg&);
--- 110,117 ----
char to_int (uint32 b) const; //extract one bit (WARNING: Drops X/Z, see operator(uint32))
//logic
! friend four_state triple_equal (const reg& lhs, const reg& rhs);
! friend bool operator== (const reg& lhs, const reg& rhs);
friend four_state operator< (const reg& lhs, const reg& rhs); //Should be bool?
friend four_state reduce_xor (const reg&);
*************** EVEN IF ADVISED OF THE POSSIBILITY OF SU
*** 284,290 ****
friend vout& operator<< (vout&, const vreg&);
};
vout& operator<< (vout&, const vreg&);
-
- reg::four_state triple_equal (const reg& lhs, const reg& rhs);
- bool operator== (const reg& lhs, const reg& rhs);
- reg::four_state operator< (const reg& lhs, const reg& rhs); //Should be bool?
--- 284,286 ----
-and -
*** teal_vreg.cpp.new 2010-06-28 14:45:41.000000000 -0400
--- teal_vreg.cpp 2010-06-28 14:45:28.000000000 -0400
*************** void teal::vreg::connect_ () {
*** 143,149 ****
#if defined (vpi_2_0)
if (! handle_) {
! local_log << teal_error << "Unable to get handle for \"" << path_and_name_ << "\" size:" << (int)path_and_name_.size () << endm;
vpi_control (vpiFinish);
}
--- 143,149 ----
#if defined (vpi_2_0)
if (! handle_) {
! local_log << teal_error << "Unable to get handle for \"" << path_and_name_ << "\" size:" << path_and_name_.size () << endm;
vpi_control (vpiFinish);
}
>
However
! friend four_state ::teal::triple_equal (const reg& lhs, const reg& rhs);
! friend bool ::teal::operator== (const reg& lhs, const reg& rhs);
! local_log << teal_error << "Unable to get handle for \"" << path_and_name_ << "\" size:" << path_and_name_.size () << endm;
Were giving errors on ! operator so I removed it and got it compiled completely.
But now when I try to use examples I receive following (similar) errors in all cases so I'm assuming either I didn't compile properly or still there is an issue?
truss_channel.h:113:4: error: cast from ‘alu::operation*’ to ‘int’ loses precision [-fpermissive]
make: *** [testbench.o] Error 1
If required I can attach complete log of output as well