[BUG] default CXXFLAGS on powerpc

Keri Harris keri at gentoo.org
Mon Jun 30 09:25:21 CEST 2008


On Sun, 29 Jun 2008 20:41:46 Raphael Collet wrote:
> Keri Harris wrote:
> > configure sets incorrect CXXFLAGS on powerpc.
> > <snip>
> >
> Dear Keri,
>
> Thank you for mentioning this.  This part of the system was never tried
> on PowerPC architectures, I think.  I also noticed a missing symbol for
> big endianness on this architecture.
>
> I have checked in a patch for the configure script on the svn trunk
> (revision 17006).  Can you give it a try?

configure works a treat on powerpc, thanks.

However msl_crypto.cc doesn't compile (ppc-linux; g++ 4.1.2):

g++ -mtune=powerpc -DBIG_ENDIAN_HOST -O3 -fomit-frame-pointer -funsigned-char -I. -I./include -fno-exceptions -Winline -Weffc++ -Wall -Wold-style-cast -Woverloaded-virtual -Wshadow   -c -o 
msl_crypto.o ./src/msl_crypto.cc
<snip warnings>
../src/msl_crypto.cc: In member function 'void 
_msl_internal::MD5::transform(BYTE*)':
../src/msl_crypto.cc:936: error: expected unqualified-id before 'int'
../src/msl_crypto.cc:936: error: 'j' was not declared in this scope

The following diff fixes this for me. *Note that the argument to 
gf_char2integer() also is fixed:*

--- mozart.orig/platform/dss/src/msl_crypto.cc  2008-06-27 01:39:31.000000000 
+1200
+++ mozart/platform/dss/src/msl_crypto.cc       2008-06-30 19:16:02.000000000 
+1200
@@ -933,7 +933,8 @@
     u32 a = state[0], b = state[1], c = state[2], d = state[3], x[MD5_SIZE];
     // Move contents of block to x, putting bytes in little-endian order.
 #ifdef BIG_ENDIAN_HOST
-    for (int i = 0, int j = 0; i < MD5_SIZE; i++, j+= 4){ x[i] = 
gf_char2integer(block[j]); }
+    int i = 0, j = 0;
+    for (; i < MD5_SIZE; i++, j+= 4){ x[i] = gf_char2integer(&block[j]); }
 #else
     memcpy( x, block, 64 );
 #endif


Keri


More information about the mozart-hackers mailing list