bugmldonkey, a multi-networks file-sharing client - Bugs: bug #31063, Reassigned to another tracker...

 
 

You are not allowed to post comments on this tracker with your current authentication level.

bug #31063: Reassigned to another tracker [was: EDK: Fix CryptoPP on mips64 abi n32]

Submitter:  Lluís Batlle <viric>
Submitted:  Sat 18 Sep 2010 04:23:49 PM UTC
   
 
Category:  Core Severity:  3 - Normal
Item Group:  Compilation problem Status:  None
Assigned to:  None Open/Closed:  Closed
Release:  3.0.4 Release: 
Operating System:  Linux Binaries Origin:  CVS / Self compiled
CPU type:  None

Sun 19 Sep 2010 10:10:54 AM UTC, comment #3: 

THIS ITEM WAS REASSIGNED TO PATCH #7319


Please, do not post any new comments to this item.

spiralvoice <spiralvoice>
Group administrator
Sat 18 Sep 2010 11:54:41 PM UTC, comment #2: 

I compared the files, and I narrowed down the trouble to lack of templated BitPrecision() function.

The mldonkey code had them for 'unsigned long' data type (32-bits in mips64), while words were 64bits long. Using a templated BitPrecision function made the assertion check go fine.

With this patch I attach (gcc44mips64.patch), mldonkey starts fine. I included also some refinements over the first patch I posted, thanks to a review by Zhang Le in the loongson-dev mailing list.

(The first incomplete patch had the sufix _2; this may look confusing. The complete patch sits in gcc44mips64.patch, not gcc44mips64_2.patch).

Just to note, this works with gcc 4.5.1 for abi n32. I haven't tried other configurations.

(file #21490)

Lluís Batlle <viric>
Sat 18 Sep 2010 08:06:03 PM UTC, comment #1: 

Try comparing integer.cpp from cryptopp561.zip (http://www.cryptopp.com/#download) with src/utils/lib/CryptoPP.cc.

spiralvoice <spiralvoice>
Group administrator
Sat 18 Sep 2010 04:23:49 PM UTC, original submission:  

THIS ITEM WAS REASSIGNED TO PATCH #7319
Hello,

I had problems building mldonkey for mips64, and I came up with a patch I attach for review. The problem was in the CryptoPP.cc file, related to multiplication of double words.
Since gcc 4.4, the asm constraint 'h' is not there, and I was using gcc 4.5.1.

Once I could build mldonkey, I tried to run it, and some division code in CryptoPP.cc failed an assertion:

mlnet: src/utils/lib/CryptoPP.cc:3745: void CryptoPP::Divide(CryptoPP::word*, CryptoPP::word*, CryptoPP::word*, const CryptoPP::word*, unsigned int, const CryptoPP::word*, unsigned int): Assertion `shiftBits < WORD_BITS' failed.


The gdb session:
(gdb) f 3
#3  0x100983cc in CryptoPP::Divide (R=0x1022ba30, Q=0x1022bac0, T=0x1022bae8, A=0x1022ba78,
    NA=6, B=0x1022b910, NB=4) at src/utils/lib/CryptoPP.cc:3745
3745            assert(shiftBits < WORD_BITS);
(gdb) print shiftBits
$1 = 64
(gdb) print WORD_BITS
$2 = 64


Any idea of what can be wrong in that code? I can debug further if you need.

Lluís Batlle <viric>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by spiralvoice (Posted a comment)
  • -email is unavailable- added by viric (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

     

    Follow 5 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2010-09-19 spiralvoice SummaryProblems running on mips64 abi n32 EDK: Fix CryptoPP on mips64 abi n32
        Reassign Itemmldonkey, a multi-networks file-sharing client, bug #31063 mldonkey, a multi-networks file-sharing client, patch #7319
    2010-09-19 spiralvoice Attached File#21486 Removed
    2010-09-18 viric Attached File- Added gcc44mips64.patch, #21490
    2010-09-18 viric Attached File- Added gcc44mips64_2.patch, #21486

    Back to the top

    Powered by Savane 3.13-02a9.
    Corresponding source code