From: Christophe Poucet Date: 2005-10-05T05:32:04+09:00 Subject: Concerning c++ ------=_Part_13662_27858434.1128457920594 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hello, I found the reason why the tests failed: my mem_move was flawed. (I use thi= s instead of MEMMOVE because that way I'm assured the proper operators are called). The proper version for mem_move is: static inline void mem_move(register VALUE *dest, register const VALUE *src, register long size) { if (dest=3D=3Dsrc) return; if (src < dest && dest < src+size) { src+=3Dsize; dest+=3Dsize; while(size-- > 0) { *--dest =3D *--src; } } else { while (size-- > 0) { *dest++ =3D *src++; } } } Also I noted a problem with the LDSHARED not being set. I tracked it down and it has to do with a test program used in configure. It won't compile under c++ because the wrong files are included. /* Test for whether ELF binaries are produced */ #include #include #if defined (__cplusplus) #include #endif main() { char buffer[4]; int i=3Dopen("conftest",O_RDONLY); if(i=3D=3D-1) exit(1); /* fail */ if(read(i,&buffer[0],4)<4) exit(1); /* fail */ if(buffer[0] !=3D 127 || buffer[1] !=3D 'E' || buffer[2] !=3D 'L' || buffer[3] !=3D 'F') exit(1); /* fail */ exit(0); /* succeed (yes, it's ELF) */ } Note the inclusion of unistd.h With regards, Christophe ------=_Part_13662_27858434.1128457920594--