Trying to run https://github.com/phronmophobic/clong/tree/main/examples/freetype on Debian 11. Has anyone seen this error?
1. Unhandled java.lang.ClassFormatError
Illegal zero length constant pool entry at 9 in class
com/phronemophobic/libz/structs/__pthread_cond_sByReference
ClassLoader.java: -2 java.lang.ClassLoader/defineClass1
ClassLoader.java: 1013 java.lang.ClassLoader/defineClass
ClassLoader.java: 875 java.lang.ClassLoader/defineClass
DynamicClassLoader.java: 46 clojure.lang.DynamicClassLoader/defineClass
core.clj: 263 insn.core/eval11708/fn
core.clj: 255 insn.core/eval11689/fn/G
core.clj: 279 insn.core/define
core.clj: 274 insn.core/define
core.clj: 277 insn.core/define
core.clj: 274 insn.core/define
jna.clj: 258 com.phronemophobic.clong.gen.jna/def-struct
jna.clj: 255 com.phronemophobic.clong.gen.jna/def-struct
REPL: 22 com.phronemophobic.libz/eval22281/fn
core.clj: 7717 clojure.core/run!/fn
ArrayChunk.java: 63 clojure.lang.ArrayChunk/reduce
protocols.clj: 136 clojure.core.protocols/fn
protocols.clj: 124 clojure.core.protocols/fn
protocols.clj: 19 clojure.core.protocols/fn/G
protocols.clj: 31 clojure.core.protocols/seq-reduce
protocols.clj: 75 clojure.core.protocols/fn
protocols.clj: 75 clojure.core.protocols/fn
protocols.clj: 13 clojure.core.protocols/fn/G
core.clj: 6830 clojure.core/reduce
core.clj: 7712 clojure.core/run!
core.clj: 7712 clojure.core/run!
REPL: 22 com.phronemophobic.libz/eval22281
REPL: 22 com.phronemophobic.libz/eval22281
Compiler.java: 7181 clojure.lang.Compiler/eval
Compiler.java: 7136 clojure.lang.Compiler/eval
core.clj: 3202 clojure.core/eval
core.clj: 3198 clojure.core/eval
interruptible_eval.clj: 87 nrepl.middleware.interruptible-eval/evaluate/fn/fn
AFn.java: 152 clojure.lang.AFn/applyToHelper
AFn.java: 144 clojure.lang.AFn/applyTo
core.clj: 667 clojure.core/apply
core.clj: 1977 clojure.core/with-bindings*
core.clj: 1977 clojure.core/with-bindings*
RestFn.java: 425 clojure.lang.RestFn/invoke
interruptible_eval.clj: 87 nrepl.middleware.interruptible-eval/evaluate/fn
main.clj: 437 clojure.main/repl/read-eval-print/fn
main.clj: 437 clojure.main/repl/read-eval-print
main.clj: 458 clojure.main/repl/fn
main.clj: 458 clojure.main/repl
main.clj: 368 clojure.main/repl
RestFn.java: 1523 clojure.lang.RestFn/invoke
interruptible_eval.clj: 84 nrepl.middleware.interruptible-eval/evaluate
interruptible_eval.clj: 56 nrepl.middleware.interruptible-eval/evaluate
interruptible_eval.clj: 152 nrepl.middleware.interruptible-eval/interruptible-eval/fn/fn
AFn.java: 22 clojure.lang.AFn/run
session.clj: 218 nrepl.middleware.session/session-exec/main-loop/fn
session.clj: 217 nrepl.middleware.session/session-exec/main-loop
AFn.java: 22 clojure.lang.AFn/run
Thread.java: 1589 java.lang.Thread/run
My diff so far:
modified examples/libz/deps.edn
@@ -3,4 +3,4 @@
com.phronemophobic/clong {:local/root "../../"}}
:aliases
{:project
- {:jvm-opts ["-Djna.library.path=../../../llvm-project/build/out/lib"]}}}
+ {:jvm-opts ["-Djna.library.path=/usr/lib/llvm-11/lib"]}}}
modified examples/libz/src/clong/libz.clj
@@ -17,7 +17,7 @@
(def libz
(com.sun.jna.NativeLibrary/getInstance "z"))
-(def api (clong/easy-api "/opt/local/include/zlib.h"))
+(def api (clong/easy-api "/usr/include/zlib.h"))
(gen/def-api libz api)
My libclang:
$ apt list libclang-dev
libclang-dev/stable,now 1:11.0-51+nmu5 amd64 [installed]Thanks for the report! Seems like a bug in clong. It looks like it's creating an invalid class definition for the __pthread_cond struct. I'll see if I can reproduce on an AWS instance
ok, I was able to reproduce the error locally. Hopefully, shouldn't be too hard to fix.
@kimo741, I just pushed a fix, https://github.com/phronmophobic/clong/commit/c75cf5e6a6858a6b1a8283c46f2187ca1f085323 If you get a chance, can you confirm that it fixes it for you?