Hi,

The warnings of type "cast to pointer from integer of different size" are provoked when a jlong (64 bit handle in Java) is copied to a C pointer (32 bit) or vice versa.

These warnings could be avoided with methods like these:

    void* ompi_java_cHandle(jlong handle)
    {
        union { jlong j; void* c; } u;
        u.j = handle;
        return u.c;
    }

    jlong ompi_java_jHandle(void *handle)
    {
        union { jlong j; void* c; } u;
        u.c = handle;
        return u.j;
    }

We should change all the code in this manner:

    JNIEXPORT jlong JNICALL Java_mpi_Win_free(
            JNIEnv *env, jobject jthis, jlong handle)
    {
        MPI_Win win = ompi_java_cHandle(handle);
        int rc = MPI_Win_free(&win);
        ompi_java_exceptionCheck(env, rc);
        return ompi_java_jHandle(win);
    }

I don't know if it is worth it.

Regards,
Oscar

Quoting Siegmar Gross <siegmar.gr...@informatik.hs-fulda.de>:

Hi,

yesterday I compiled 32- and 64-bit versions of openmpi-1.7.4 for
my platforms (Solaris 10 sparc, Solaris 10 x86_64, and openSUSE
Linux 12.1 x86_64) with Sun C 5.12 and gcc-4.8.0. I could build
a 64-bit version for Linux with gcc without warnings. Everything
else showed warnings. I received many warnings for my 32-bit
versions (mainly for the Java interface with gcc). I have combined
all warnings for my platforms so that it is easier to fix them, if
somebody wants to fix them. The attached files contain the warnings
from each compiler. I can also provide specific files like
Solaris.x86_64.32_cc.uniq or even my log files (e.g.,
log.make.SunOS.x86_64.32_cc).


Kind regards

Siegmar




----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

Reply via email to