On Fri, Jun 1, 2012 at 2:52 PM, Robin Gareus wrote: > > It might have to do with Arch's compiler[-flags] and how jack2 uses > unions .. or scoping: JackGlobals vs Engine-Parameters.. although I > don't have an explanation.. all seems good. Compiler flags (for 32bit) are, (from unaltered /etc/makepkg.conf): CXXFLAGS="-march=i686 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2" > A hunch: it could be caused by using 'server_ptr->verbose.b' (a union) > as boolean. The sever only checks "if (server_ptr->verbose.b)". The > union itself comprises other uninitialized values that could make it > evaluate to true (though it shouldn't, but maybe some compiler > optimization casts it to (int) instead of (bool) ) > > > I know this is the '-users' list (I'm ccing jack-devel), but could > someone who experiences the problem try to track it down? > > Basically just add a few printf()'s. Start at: common/JackControlAPI.cpp > - line 926 - before the call to "new JackServer(..)" add > > printf("DEBUG verbose: %s\n",(server_ptr->verbose.b)?"on":"off"); > > recompile, launch jackd. If it prints "verbose: on", sth is wrong with > parameter initialization in main() or with using unions. If it's "off" > the problem sits deeper: DEBUG verbose: on > add a line just after common/JackServer.cpp line 66 > printf("DEBUG verbose2: %s\n",(JackGlobals::fVerbose)?"on":"off"); > ... above, your line number didn't match exactly, so we seem to have different versions (1.9.7 here). Thus, I wasn't exactly sure where to add the prinf() and did the following: ... JackServerGlobals::fUserCount = 1; // One user printf("DEBUG verbose2: %s\n",(JackGlobals::fVerbose)?"on":"off"); JackGlobals::fVerbose = verbose; printf("DEBUG verbose3: %s\n",(JackGlobals::fVerbose)?"on":"off"); } which prints: DEBUG verbose2: off DEBUG verbose3: on > A crude test for the union() hunch would be to change > common/JackControlAPI.h line 53: > replace > "union jackctl_parameter_value" > with > "struct jackctl_parameter_value" > and compile with '-fpermissive' like this: > > CXXFLAGS="-fpermissive" ./waf configure > ./waf > Again, mismatching line numbers. I assume you meant the line: union jackctl_parameter_value verbose; Changing that to struct fixes both issues I reported, the verbose output and exit on last client close. So we seem to be getting somewhere. Nice. thanks Robin, d _______________________________________________ Linux-audio-user mailing list Linux-audio-user@xxxxxxxxxxxxxxxxxxxx http://lists.linuxaudio.org/listinfo/linux-audio-user