Hi,
I'm currently working on an external with the *FAUST* just-in-time (JIT) compiler embedded that allows to load, compile and play FAUST. I managed to compile a 64 bits version for Mac, Windows (yeah!) and Linux but on Linux I got a problem:
The external has unresolved symbols: *__cxa_pure_virtual*. Here is the result of ldd:
ldd ../external/faust~.pd_linux linux-vdso.so.1 => (0x00007ffcbf6d9000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fdeb864a000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fdeb8341000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fdeb8124000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fdeb7f0e000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fdeb7b44000) /lib64/ld-linux-x86-64.so.2 (0x00007fdebae31000)
And when I link the external with *stdc++* to solve this problem, Pd crashes directly when I call *class_new()* - it's my 1st attempt with gdb so I didn't go very far. I only found that Pd crashes when the "setup" function is called. If I only use a "dummy" class_new() method - *t_class* c = class_new(gensym("faust~"), (t_newmethod)NULL, (t_method)NULL, s**izeof(t_faust_tilde), CLASS_DEFAULT, A_GIMME, 0);* - it also crashes.
Here is the result of ldd:
ldd ../external/faust~.pd_linux linux-vdso.so.1 => (0x00007ffe5d9e1000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f50e5c5f000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f50e5a42000) *libstdc++.so.6* => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f50e56c0000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f50e53b7000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f50e51a1000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f50e4dd7000) /lib64/ld-linux-x86-64.so.2 (0x00007f50e8446000)
Here is the Github repository: https://github.com/pierreguillot/faust-pd
Any help would be greatly appreciated! Thanks,
Pierre
I found the solution! I was linking the external with stdc++ but in fact I must link the FAUST library with stdc++. Now, there are 2 more "implicit" dependencies libz.so and libtinfo.so (and libstdc++.so) that seem to fix the problem and it works! I will publish the new version v0.0.2 (with the Linux fix) on Deken today (there is already the version 0.0.1 that works on Mac & Windows 64bits on Deken). I'll keep you informed when the version will be available on the pd-announce list . Cheers,
Pierre
Le mar. 19 juin 2018 à 16:39, Pierre Guillot guillotpierre6@gmail.com a écrit :
Hi,
I'm currently working on an external with the *FAUST* just-in-time (JIT) compiler embedded that allows to load, compile and play FAUST. I managed to compile a 64 bits version for Mac, Windows (yeah!) and Linux but on Linux I got a problem:
The external has unresolved symbols: *__cxa_pure_virtual*. Here is the result of ldd:
ldd ../external/faust~.pd_linux linux-vdso.so.1 => (0x00007ffcbf6d9000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fdeb864a000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fdeb8341000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fdeb8124000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fdeb7f0e000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fdeb7b44000) /lib64/ld-linux-x86-64.so.2 (0x00007fdebae31000)
And when I link the external with *stdc++* to solve this problem, Pd crashes directly when I call *class_new()* - it's my 1st attempt with gdb so I didn't go very far. I only found that Pd crashes when the "setup" function is called. If I only use a "dummy" class_new() method - *t_class* c = class_new(gensym("faust~"), (t_newmethod)NULL, (t_method)NULL, s**izeof(t_faust_tilde), CLASS_DEFAULT, A_GIMME, 0);*
- it also crashes.
Here is the result of ldd:
ldd ../external/faust~.pd_linux linux-vdso.so.1 => (0x00007ffe5d9e1000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f50e5c5f000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f50e5a42000) *libstdc++.so.6* => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f50e56c0000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f50e53b7000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f50e51a1000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f50e4dd7000) /lib64/ld-linux-x86-64.so.2 (0x00007f50e8446000)
Here is the Github repository: https://github.com/pierreguillot/faust-pd
Any help would be greatly appreciated! Thanks,
Pierre