Fork me on GitHub
#membrane
<
2023-02-11
>
Kimo10:02:25

Trying to run https://github.com/phronmophobic/clong/tree/main/examples/freetype on Debian 11. Has anyone seen this error?

2
Kimo10:02:22

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]

phronmophobic17:02:24

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

phronmophobic17:02:20

ok, I was able to reproduce the error locally. Hopefully, shouldn't be too hard to fix.

phronmophobic18:02:19

@U02J388JDEG, 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?

Kimo19:02:21

Awesome, it works. @U7RJTCH6J

🎉 2