Skip to content

Global variable setter with a namespace #387

@yukoba

Description

@yukoba

Now I'm trying to port the LLVM Polly optimizer.
The code is this.
yukoba/javacpp-presets@55d70bc

The generated jnipolly.cpp has the following setter code.

JNIEXPORT void JNICALL Java_org_bytedeco_llvm_global_polly_PollyChunkSize__I(JNIEnv* env, jclass cls, jint arg0) {
    PollyChunkSize = arg0;
}

But it must have the namespace polly like this.

JNIEXPORT void JNICALL Java_org_bytedeco_llvm_global_polly_PollyChunkSize__I(JNIEnv* env, jclass cls, jint arg0) {
    polly::PollyChunkSize = arg0;
}

Getter has the namespace polly correctly.

JNIEXPORT jint JNICALL Java_org_bytedeco_llvm_global_polly_PollyChunkSize__(JNIEnv* env, jclass cls) {
    jint rarg = 0;
    int rval = polly::PollyChunkSize;
    rarg = (jint)rval;
    return rarg;
}

If I add polly:: by hand, I can compile by this.

g++ -I/home/ubuntu/javacpp-presets/llvm/cppbuild/linux-x86_64/include/ -I/home/ubuntu/javacpp-presets/llvm/cppbuild/linux-x86_64/include/polly/ -I/usr/lib/jvm/java-11-openjdk-amd64/include -I/usr/lib/jvm/java-11-openjdk-amd64/include/linux /home/ubuntu/javacpp-presets/llvm/target/native/org/bytedeco/llvm/linux-x86_64/jnipolly.cpp /home/ubuntu/javacpp-presets/llvm/target/native/org/bytedeco/llvm/linux-x86_64/jnijavacpp.cpp -march=x86-64 -m64 -O3 -s -std=c++11 -Wl,-rpath,$ORIGIN/ -Wl,-z,noexecstack -Wl,-Bsymbolic -Wall -fPIC -pthread -shared -o libjnipolly.so -L/home/ubuntu/javacpp-presets/llvm/cppbuild/linux-x86_64/lib/ -Wl,-rpath,/home/ubuntu/javacpp-presets/llvm/cppbuild/linux-x86_64/lib/ -lPolly -lLTO -lLLVM-9

What should I do to add the namespace to the global variable setter?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions