Your message dated Fri, 05 Aug 2005 06:47:06 -0700
with message-id <[EMAIL PROTECTED]>
and subject line Bug#297924: fixed in ode 1:0.5-5
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--------------------------------------
Received: (at submit) by bugs.debian.org; 3 Mar 2005 15:01:23 +0000
>From [EMAIL PROTECTED] Thu Mar 03 07:01:23 2005
Return-path: <[EMAIL PROTECTED]>
Received: from c223012.adsl.hansenet.de (localhost.localdomain) [213.39.223.12] 
        by spohr.debian.org with esmtp (Exim 3.35 1 (Debian))
        id 1D6rpL-0008Rh-00; Thu, 03 Mar 2005 07:01:23 -0800
Received: from aj by localhost.localdomain with local (Exim 4.44)
        id 1D6sld-0006gq-PO; Thu, 03 Mar 2005 17:01:39 +0100
To: Debian Bug Tracking System <[EMAIL PROTECTED]>
From: Andreas Jochens <[EMAIL PROTECTED]>
Subject: ode: FTBFS (amd64/gcc-4.0): cast from 'Opcode::AABBTreeNode*' to 
'udword' loses precision
Message-Id: <[EMAIL PROTECTED]>
Date: Thu, 03 Mar 2005 17:01:39 +0100
Delivered-To: [EMAIL PROTECTED]
X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2005_01_02 
        (1.212-2003-09-23-exp) on spohr.debian.org
X-Spam-Status: No, hits=-8.0 required=4.0 tests=BAYES_00,HAS_PACKAGE 
        autolearn=no version=2.60-bugs.debian.org_2005_01_02
X-Spam-Level: 

Package: ode
Severity: normal
Tags: patch

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

OPCODE/OPC_AABBTree.cpp: In member function 'bool 
Opcode::AABBTreeNode::Subdivide(Opcode::AABBTreeBuilder*)':
OPCODE/OPC_AABBTree.cpp:295: error: cast from 'Opcode::AABBTreeNode*' to 
'udword' loses precision
OPCODE/OPC_AABBTree.cpp:309: error: cast from 'Opcode::AABBTreeNode*' to 
'udword' loses precision
OPCODE/OPC_AABBTree.h: In constructor 'Opcode::AABBTree::AABBTree()':
OPCODE/OPC_AABBTree.h:134: warning: 'Opcode::AABBTree::mTotalNbNodes' will be 
initialized after
OPCODE/OPC_AABBTree.h:132: warning:   'Opcode::AABBTreeNode* 
Opcode::AABBTree::mPool'
OPCODE/OPC_AABBTree.cpp:373: warning:   when initialized here
make[1]: *** [OPCODE/OPC_AABBTree.o] Error 1
make[1]: Leaving directory `/ode-0.5'
make: *** [build-stamp] Error 2

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

Regards
Andreas Jochens

diff -urN ../tmp-orig/ode-0.5/OPCODE/OPC_AABBTree.cpp ./OPCODE/OPC_AABBTree.cpp
--- ../tmp-orig/ode-0.5/OPCODE/OPC_AABBTree.cpp 2003-07-01 08:58:47.000000000 
+0200
+++ ./OPCODE/OPC_AABBTree.cpp   2005-03-03 16:39:52.000000000 +0100
@@ -290,11 +290,11 @@
                AABBTreeNode* Pool = (AABBTreeNode*)builder->mNodeBase;
                udword Count = builder->GetCount() - 1; // Count begins to 1...
                // Set last bit to tell it shouldn't be freed ### pretty ugly, 
find a better way. Maybe one bit in mNbPrimitives
-               ASSERT(!(udword(&Pool[Count+0])&1));
-               ASSERT(!(udword(&Pool[Count+1])&1));
-               mPos = udword(&Pool[Count+0])|1;
+               ASSERT(!(long(&Pool[Count+0])&1));
+               ASSERT(!(long(&Pool[Count+1])&1));
+               mPos = long(&Pool[Count+0])|1;
 #ifndef OPC_NO_NEG_VANILLA_TREE
-               mNeg = udword(&Pool[Count+1])|1;
+               mNeg = long(&Pool[Count+1])|1;
 #endif
        }
        else
@@ -306,7 +306,7 @@
 #else
                AABBTreeNode* PosNeg = new AABBTreeNode[2];
                CHECKALLOC(PosNeg);
-               mPos = (udword)PosNeg;
+               mPos = (long)PosNeg;
 #endif
        }
 
diff -urN ../tmp-orig/ode-0.5/OPCODE/OPC_HybridModel.cpp 
./OPCODE/OPC_HybridModel.cpp
--- ../tmp-orig/ode-0.5/OPCODE/OPC_HybridModel.cpp      2003-07-01 
08:58:47.000000000 +0200
+++ ./OPCODE/OPC_HybridModel.cpp        2005-03-03 16:40:13.000000000 +0100
@@ -209,7 +209,7 @@
                                Data->mLeaves[Data->mNbLeaves] = 
*current->GetAABB();
 
                                // Setup leaf data
-                               udword Index = 
(udword(current->GetPrimitives()) - udword(Data->mBase))/sizeof(udword);
+                               udword Index = (long(current->GetPrimitives()) 
- long(Data->mBase))/sizeof(udword);
                                
Data->mTriangles[Data->mNbLeaves].SetData(current->GetNbPrimitives(), Index);
 
                                Data->mNbLeaves++;
diff -urN ../tmp-orig/ode-0.5/OPCODE/OPC_OptimizedTree.cpp 
./OPCODE/OPC_OptimizedTree.cpp
--- ../tmp-orig/ode-0.5/OPCODE/OPC_OptimizedTree.cpp    2003-07-01 
08:58:47.000000000 +0200
+++ ./OPCODE/OPC_OptimizedTree.cpp      2005-03-03 16:44:51.360640448 +0100
@@ -119,7 +119,7 @@
                udword PosID = current_id++;    // Get a new id for positive 
child
                udword NegID = current_id++;    // Get a new id for negative 
child
                // Setup box data as the forthcoming new P pointer
-               linear[box_id].mData = (udword)&linear[PosID];
+               linear[box_id].mData = (long)&linear[PosID];
                // Make sure it's not marked as leaf
                ASSERT(!(linear[box_id].mData&1));
                // Recurse with new IDs
@@ -172,7 +172,7 @@
                // Get a new id for positive child
                udword PosID = current_id++;
                // Setup box data
-               linear[box_id].mPosData = (udword)&linear[PosID];
+               linear[box_id].mPosData = (long)&linear[PosID];
                // Make sure it's not marked as leaf
                ASSERT(!(linear[box_id].mPosData&1));
                // Recurse
@@ -193,7 +193,7 @@
                // Get a new id for negative child
                udword NegID = current_id++;
                // Setup box data
-               linear[box_id].mNegData = (udword)&linear[NegID];
+               linear[box_id].mNegData = (long)&linear[NegID];
                // Make sure it's not marked as leaf
                ASSERT(!(linear[box_id].mNegData&1));
                // Recurse
@@ -550,8 +550,8 @@
        if(!(Data&1))                                                           
                                        \
        {                                                                       
                                                        \
                /* Compute box number */                                        
                                \
-               udword Nb = (Data - udword(Nodes))/Nodes[i].GetNodeSize();      
\
-               Data = udword(&mNodes[Nb]);                                     
                                \
+               long Nb = (Data - long(Nodes))/Nodes[i].GetNodeSize();  \
+               Data = long(&mNodes[Nb]);                                       
                                \
        }                                                                       
                                                        \
        /* ...remapped */                                                       
                                        \
        mNodes[i].member = Data;
diff -urN ../tmp-orig/ode-0.5/OPCODE/OPC_SweepAndPrune.cpp 
./OPCODE/OPC_SweepAndPrune.cpp
--- ../tmp-orig/ode-0.5/OPCODE/OPC_SweepAndPrune.cpp    2003-07-01 
08:58:47.000000000 +0200
+++ ./OPCODE/OPC_SweepAndPrune.cpp      2005-03-03 16:45:50.795168488 +0100
@@ -164,7 +164,7 @@
 
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 inline_ void Remap(SAP_Element*& element, udword delta)
 {
-       if(element)     element = (SAP_Element*)(udword(element) + delta);
+       if(element)     element = (SAP_Element*)(long(element) + delta);
 }
 
 
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -200,7 +200,7 @@
 
                        // Remap everything
                        {
-                               udword Delta = udword(NewElems) - 
udword(mElementPool);
+                               udword Delta = long(NewElems) - 
long(mElementPool);
 
                                for(udword i=0;i<mNbUsedElements;i++)   
Remap(NewElems[i].mNext, Delta);
                                for(udword i=0;i<mNbObjects;i++)                
Remap(mArray[i], Delta);
diff -urN ../tmp-orig/ode-0.5/ode/test/test_space.cpp ./ode/test/test_space.cpp
--- ../tmp-orig/ode-0.5/ode/test/test_space.cpp 2004-04-22 22:38:51.000000000 
+0200
+++ ./ode/test/test_space.cpp   2005-03-03 16:52:41.556883898 +0100
@@ -123,15 +123,15 @@
 
 static void nearCallback (void *data, dGeomID o1, dGeomID o2)
 {
-  int i,j;
-  i = (int) dGeomGetData (o1);
-  j = (int) dGeomGetData (o2);
+  long i,j;
+  i = (long) dGeomGetData (o1);
+  j = (long) dGeomGetData (o2);
   if (i==j)
-    printf ("collision (%d,%d) is between the same object\n",i,j);
+    printf ("collision (%ld,%ld) is between the same object\n",i,j);
   if (!good_matrix[i][j] || !good_matrix[j][i])
-    printf ("collision (%d,%d) is incorrect\n",i,j);
+    printf ("collision (%ld,%ld) is incorrect\n",i,j);
   if (test_matrix[i][j] || test_matrix[j][i])
-    printf ("collision (%d,%d) reported more than once\n",i,j);
+    printf ("collision (%ld,%ld) reported more than once\n",i,j);
   test_matrix[i][j] = 1;
   test_matrix[j][i] = 1;
 }

---------------------------------------
Received: (at 297924-close) by bugs.debian.org; 5 Aug 2005 13:53:26 +0000
>From [EMAIL PROTECTED] Fri Aug 05 06:53:26 2005
Return-path: <[EMAIL PROTECTED]>
Received: from katie by spohr.debian.org with local (Exim 3.36 1 (Debian))
        id 1E12XS-0002bo-00; Fri, 05 Aug 2005 06:47:06 -0700
From: Guus Sliepen <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
X-Katie: $Revision: 1.56 $
Subject: Bug#297924: fixed in ode 1:0.5-5
Message-Id: <[EMAIL PROTECTED]>
Sender: Archive Administrator <[EMAIL PROTECTED]>
Date: Fri, 05 Aug 2005 06:47:06 -0700
Delivered-To: [EMAIL PROTECTED]
X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2005_01_02 
        (1.212-2003-09-23-exp) on spohr.debian.org
X-Spam-Level: 
X-Spam-Status: No, hits=-6.0 required=4.0 tests=BAYES_00,HAS_BUG_NUMBER 
        autolearn=no version=2.60-bugs.debian.org_2005_01_02

Source: ode
Source-Version: 1:0.5-5

We believe that the bug you reported is fixed in the latest version of
ode, which is due to be installed in the Debian FTP archive:

libode0-dev_0.5-5_i386.deb
  to pool/main/o/ode/libode0-dev_0.5-5_i386.deb
libode0c2_0.5-5_i386.deb
  to pool/main/o/ode/libode0c2_0.5-5_i386.deb
ode_0.5-5.diff.gz
  to pool/main/o/ode/ode_0.5-5.diff.gz
ode_0.5-5.dsc
  to pool/main/o/ode/ode_0.5-5.dsc



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [EMAIL PROTECTED],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Guus Sliepen <[EMAIL PROTECTED]> (supplier of updated ode package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [EMAIL PROTECTED])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.7
Date: Fri,  5 Aug 2005 15:04:27 +0200
Source: ode
Binary: libode0c2 libode0-dev
Architecture: source i386
Version: 1:0.5-5
Distribution: unstable
Urgency: low
Maintainer: Guus Sliepen <[EMAIL PROTECTED]>
Changed-By: Guus Sliepen <[EMAIL PROTECTED]>
Description: 
 libode0-dev - Open Dynamics Engine - development files
 libode0c2  - Open Dynamics Engine - runtime library
Closes: 297924
Changes: 
 ode (1:0.5-5) unstable; urgency=low
 .
   * Disable OPCODE, it does pointer arithmetic in a very unsafe way and it
     won't compile on 64 bit architectures. Closes: #297924
Files: 
 7f3151568f5a45df6450437f9170d3cf 558 devel optional ode_0.5-5.dsc
 359f285e36bdba48fa40da92e6926ea5 5195 devel optional ode_0.5-5.diff.gz
 aab30a8ed5f132e80ad3dd023779b990 100226 libs optional libode0c2_0.5-5_i386.deb
 a1ba7ecb9e90a0c645676bb7f2276871 234698 libdevel optional 
libode0-dev_0.5-5_i386.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFC82gkAxLow12M2nsRAjEWAJ4h6cPftdm8s4DuRAnZSkvjV3TtjwCZAcxb
girZenVesNQvf0Jo0NTN0Pw=
=Caq2
-----END PGP SIGNATURE-----


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

Reply via email to