On Don, 2017-07-06 at 22:35 +0200, IOhannes m zmölnig wrote:
On 07/06/2017 09:17 PM, Roman Haefeli wrote:
Hey all
I don't know exactly for how long, but jack support seems broken in current git master. This is how I compile Pd:
$ ./autogen.sh $ ./configure --enable-jack $ make -j
The resulting binary doesn't link against jack libraries:
$ ldd src/pd linux-gate.so.1 => (0xb7757000) libasound.so.2 => /usr/lib/i386-linux-gnu/libasound.so.2 (0xb760c000) libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb75ef000) libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb75e9000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb7594000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb73de000) librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb73d5000) /lib/ld-linux.so.2 (0x80015000)
When I start:
$ pd -jack -channels 2
It segfaults.
unable to repdroduce (Debian/buster+sid, amd64)
This is on Ubuntu 16.04 amd64 and i386. And yes, on Debian jessie amd64 it works fine for me, too.
but then, i haven't run Pd on a i386 architecture on linux for quite some time.
what's the output of configure? (the lines about jack). do you have a backtrace?
$ pd -jack -channels 2
i guess you did a 'make install' inbetween (or really did a "./src/pd ..."). just to make sure...
yes
Just to sum it up for others reading this. This issue appears on Ubuntu 16.04 and (according to a #dataflow user) on Gentoo. I had a shared SSH session with IOhannes and he investigated the problem. I might be not be able to fully explain what he found out, but it is related to weak linking and the way the the compiler that comes with Ubuntu 16.04 handles it. IOhannes proposed to add the '-Wl,--no-as-needed' linker flag like this:
$ ./configure --enable-jack LDFLAGS="-Wl,--no-as-needed"
Roman