When I had jack dump out it's module filenames during library load, it only appeared to load jack_firewire once. The clue as to what's happening is that valgrind reports "Bad permissions for mapped region", if you look at the function, it's trying to pass a string literal, the valgrind error means that it's trying to modify the string, and since it's read-only, it results in a segfault. The string and address are valid.

The appropriate fix appears to be to either use your alternative function, or to create a C string and pass it to the function:

---
char binding[] = "glibmm__Glib::Binding::manage");
GQuark quark_manage = g_quark_from_static_string(binding);
---
or
---
GQuark quark_manage = g_quark_from_string("glibmm__Glib::Binding::manage");
---

Both of those changes work on my system, and jack_firewire now works for me again. One thing online says about that function, "This function must not be used before library constructors have finished running."

--
Ryan Thoryk
r...@thoryk.com
r...@tliquest.net

Reply via email to