Okra loader needs to check OS support

Doug Simon doug.simon at oracle.com
Fri Jan 24 10:26:40 PST 2014


Hi Tom,

The new Okra library loading mechanism breaks the unit tests on a Mac:

$ mx --vm server unittest LongNegTest
JUnit version 4.8
.E
Time: 2.377
There was 1 failure:
1) test(com.oracle.graal.compiler.hsail.test.LongNegTest)
java.lang.ExceptionInInitializerError
	at com.amd.okra.OkraUtil.testOkraLibExists(OkraUtil.java:61)
	at com.amd.okra.OkraUtil.<clinit>(OkraUtil.java:51)
	at com.oracle.graal.compiler.hsail.test.infra.KernelTester.<init>(KernelTester.java:118)
	at com.oracle.graal.compiler.hsail.test.infra.GraalKernelTester.<init>(GraalKernelTester.java:45)
	at com.oracle.graal.compiler.hsail.test.LongNegTest.<init>(LongNegTest.java:32)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
	at org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:202)
	at org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:251)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
	at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:248)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
	at org.junit.runners.Suite.runChild(Suite.java:128)
	at org.junit.runners.Suite.runChild(Suite.java:24)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:136)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:117)
	at org.junit.runner.JUnitCore.runMain(JUnitCore.java:98)
	at org.junit.runner.JUnitCore.runMainAndExit(JUnitCore.java:53)
	at org.junit.runner.JUnitCore.main(JUnitCore.java:45)
Caused by: java.lang.RuntimeException: unable to load libokra_x86_64.dylib, java.lang.UnsatisfiedLinkError: Can't load library: /var/folders/d_/fn0kjn111nsc60w4vfy38fgr0026wn/T/okraresource.dir_6569026372617119677/libokra_x86_64.dylib
	at com.amd.okra.OkraContext.loadOkraNativeLibrary(OkraContext.java:140)
	at com.amd.okra.OkraContext.<clinit>(OkraContext.java:69)
	... 35 more

FAILURES!!!
Tests run: 1,  Failures: 1


Can you please fix com.amd.okra.OkraContext.loadOkraNativeLibrary() so that it only tries to load the library if on Linux.

This will require an update to the Okra jar files.

-Doug


More information about the graal-dev mailing list