Skip to content

jack2 and mod-host versions (or: CV segfault in jack2) #107

@geedubess

Description

@geedubess

I understand some of the reasons that we might want to lock our installed libs/apps to a version, and why we might want to additionally patch them, but is there further information available about these choices or a maintenance plan? In particular I don't see the value-add of the diffs in the forks (eg mod-host fork only seems to add optimization for cortex-a53 and I can't see the jack2 fork adding anything).

https://github.com/TreeFallSound/pi-stomp/blob/pistomp-v3/setup/mod/install.sh installs from:

https://github.com/micahvdm/mod-host (71 commits behind parent)
https://github.com/micahvdm/jack2 (1.9.14 vs 1.9.22 from ChangeLog.rst, https://github.com/jackaudio/jack2)

I came to this because of a segfault in mod-host whenever I assign a CV signal to an effect parameter. After updating to https://github.com/mod-audio/mod-host [master] and https://github.com/jackaudio/jack2.git [develop], my CV problem is fixed.
My initial hint was: mod-audio/mod-host#88; building a debug version of mod-host and attaching gdb to it showed the segfault was in /lib/aarch64-linux-gnu/libjack.so.0). (I wouldn't recommend pulling from develop, instead using a 1.9.22 tag for distribution of course.)

Some notes about updating to these versions (I'll continue to test):

  • mod-host required a small Makefile patch to update to the current processor and
  • I needed to ignore /usr/local/lib/liblilv-0.a; I was trying not to rebuild more than I had to like lilv):
diff --git a/Makefile b/Makefile
index ba5bf86..42164a3 100644
--- a/Makefile
+++ b/Makefile
@@ -20,6 +20,7 @@ MANDIR = $(SHAREDIR)/man/man1/
 CFLAGS += -O3 -Wall -Wextra -c -std=gnu99 -fPIC -D_GNU_SOURCE -pthread
 CFLAGS += -Wno-deprecated-declarations
 CFLAGS += -Werror=implicit-function-declaration -Werror=return-type
+CFLAGS += -mcpu=cortex-a76 -mtune=cortex-a76

 # debug mode compiler and linker flags
 ifeq ($(DEBUG), 1)
@@ -46,7 +47,8 @@ CFLAGS += -Winit-self -Wjump-misses-init -Wmissing-prototypes -Wnested-externs -
 endif

 # libraries
-LIBS = $(shell pkg-config --libs lilv-0)
+# force a link against the shared library instead of the installed static library
+LIBS    = /usr/lib/aarch64-linux-gnu/liblilv-0.so -ldl -lsord-0 -lserd-0 -lsratom-0 -ljack

 ifeq ($(MOD_DESKTOP),1)
 LIBS += $(subst -ljack ,-ljackserver ,$(shell pkg-config --libs jack))

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions