linking issues on Linux. It seems that the name 'launch' for a function was causing some weird linking issues that only happened sometimes. Quite ikely, the issue is another library using the same name.
This commit is contained in:
parent
601c9fae7b
commit
207181aa89
|
@ -27,8 +27,8 @@ $(C_GENERATED)/smoke_main.o: $(TEST_JNI_BRIDGE_HEADER) smoke_main.cpp
|
|||
$(CAST_TEST_BIN)$(LIBPREFIX)xlator_test.$(DLLEXT): $(C_GENERATED)/smoke.o
|
||||
$(CC) $(CC_LDFLAGS) -Wl,-rpath -Wl,$(DOMO_AST_BIN) $(CAST_OBJS) -o $@
|
||||
|
||||
main: $(CAST_TEST_BIN)/smoke_main
|
||||
main: /tmp/smoke_main
|
||||
|
||||
$(CAST_TEST_BIN)/smoke_main: $(TEST_JNI_BRIDGE_HEADER) $(DOMO_AST_BIN)/$(LIBPREFIX)cast/launch.o $(C_GENERATED)/smoke_main.o
|
||||
/tmp/smoke_main: $(TEST_JNI_BRIDGE_HEADER) $(DOMO_AST_BIN)/$(LIBPREFIX)cast/launch.o $(C_GENERATED)/smoke_main.o
|
||||
$(CC) $(ALL_FLAGS) $(DOMO_AST_BIN)/$(LIBPREFIX)cast/launch.o $(C_GENERATED)/smoke_main.o $(CC_LD_PATHS) -o $@
|
||||
|
||||
|
|
|
@ -33,28 +33,40 @@ int main(int argc, char **argv) {
|
|||
char *buf = (char *)malloc((strlen(argv[1]) + 100) * sizeof(char));
|
||||
strcpy(buf, argv[1]);
|
||||
|
||||
printf("%s\n", buf);
|
||||
printf("1: %s\n", buf);
|
||||
|
||||
JNIEnv *java_env = launch(buf);
|
||||
JNIEnv *java_env = launch_jvm(buf);
|
||||
|
||||
printf("2: %s\n", buf);
|
||||
|
||||
jclass NativeTranslatorTest =
|
||||
java_env->FindClass("com/ibm/wala/cast/test/TestNativeTranslator");
|
||||
if (java_env->ExceptionCheck()) { die(java_env); }
|
||||
|
||||
printf("3: %s\n", buf);
|
||||
|
||||
jmethodID testInit =
|
||||
java_env->GetMethodID(NativeTranslatorTest, "<init>", "()V");
|
||||
if (java_env->ExceptionCheck()) { die(java_env); }
|
||||
|
||||
printf("4: %s\n", buf);
|
||||
|
||||
jobject test =
|
||||
java_env->NewObject(NativeTranslatorTest, testInit);
|
||||
if (java_env->ExceptionCheck()) { die(java_env); }
|
||||
|
||||
printf("5: %s\n", buf);
|
||||
|
||||
jmethodID testAst =
|
||||
java_env->GetMethodID(NativeTranslatorTest, "testNativeCAst", "()V");
|
||||
if (java_env->ExceptionCheck()) { die(java_env); }
|
||||
|
||||
printf("6: %s\n", buf);
|
||||
|
||||
java_env->CallVoidMethod(test, testAst);
|
||||
if (java_env->ExceptionCheck()) { die(java_env); }
|
||||
|
||||
printf("6: %s\n", buf);
|
||||
|
||||
exit(0);
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@ import com.ibm.wala.cast.tree.impl.CAstImpl;
|
|||
import com.ibm.wala.cast.tree.rewrite.CAstRewriter.CopyKey;
|
||||
import com.ibm.wala.cast.tree.rewrite.CAstRewriter.RewriteContext;
|
||||
import com.ibm.wala.cast.tree.rewrite.CAstRewriterFactory;
|
||||
import com.ibm.wala.ssa.IR;
|
||||
import com.ibm.wala.util.io.TemporaryFile;
|
||||
|
||||
public class TestNativeTranslator {
|
||||
|
@ -149,7 +150,7 @@ public class TestNativeTranslator {
|
|||
public void testNativeCAst() throws IOException {
|
||||
CAst Ast = new CAstImpl();
|
||||
|
||||
URL junk = TestNativeTranslator.class.getClassLoader().getResource("smoke_main");
|
||||
URL junk = IR.class.getClassLoader().getResource("primordial.txt");
|
||||
|
||||
SmokeXlator xlator = new SmokeXlator(Ast, junk);
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
<id>test-native</id>
|
||||
<phase>test</phase>
|
||||
<configuration>
|
||||
<executable>${project.build.outputDirectory}/smoke_main</executable>
|
||||
<executable>/tmp/smoke_main</executable>
|
||||
<arguments>
|
||||
<argument>${project.build.outputDirectory}:${basedir}/../com.ibm.wala.cast/target/classes:${basedir}/../com.ibm.wala.core/target/classes:${basedir}/../com.ibm.wala.util/target/classes</argument>
|
||||
</arguments>
|
||||
|
|
|
@ -8,7 +8,7 @@ if (uname | grep -i "cygwin"); then
|
|||
|
||||
cmd.exe /c "call \"$MSVC\\vcvarsall.bat\" $ARCH && make"
|
||||
else
|
||||
make
|
||||
make --quiet
|
||||
fi
|
||||
|
||||
# Local variables:
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include "jni.h"
|
||||
|
||||
extern "C" JNIEnv *launch(char *);
|
||||
extern "C" void kill();
|
||||
extern JNIEnv *launch_jvm(char *);
|
||||
extern void kill();
|
||||
|
||||
#endif
|
||||
|
|
|
@ -3,10 +3,11 @@
|
|||
#include <strings.h>
|
||||
#include "Exceptions.h"
|
||||
#include "CAstWrapper.h"
|
||||
#include "launch.h"
|
||||
|
||||
JavaVM *javaVM;
|
||||
|
||||
JNIEnv *launch(char *classpath) {
|
||||
JNIEnv *launch_jvm(char *classpath) {
|
||||
JavaVMOption jvmopt[2];
|
||||
|
||||
const char *jcp = "-Djava.class.path=";
|
||||
|
|
Loading…
Reference in New Issue