Created attachment 218382 [details]
update ardor6 to 6.3.0
attached updates ardour6 to version 6.3.0. patching wscript makes sure this build system at least recognizes FreeBSD. As build time CPU detection is a problematic idea (think package builder) and detecting CPU features from inside the build jail is far from trivial, I decided to let amd64 have SSE and MMX (those are over 20 years old now and were introduced back in the 32bit era) and don't even try for SSE on i386 (is i386 even a relevant platform for an application like this?).
The whole ss3-vs-not-problem seems to have been uncovered by the recent glib update, which is why we didn't note this problem until now.
Additionally, ardour 6.3 replaces the "mixer-demo" with a much more elaborate mixer system, that accounts for the big change in pkg-plist.
This passes popudriere and at least starts for me.
The problem between cccache, waf and gas (see bug #246915) needs to wait for another day.
(In reply to Christoph Moench-Tegeder from comment #0)
do you say that in addition to what is specified regarding SSE support in the ports makefile, the wscript checks for the architecture once more and even overwrites the makefile settings?
Is this a new feature of the wscript?
As you said there were no problems in the past with this, and when I build locally the only problem I see that the runtime detection for AVX (some new AVX was added) doesn't work for FreeBSD. I didn't have time to look into this further.
Regarding i386: I don't think supporting any older CPU without SSE makes sense for such an application. That's why I specified SSE support also for the 32-bit builds in the makefile.
(In reply to Michael Beer from comment #1)
Right, wscript does some checks on it's own (badly, in our case, as it doesn't know about FreeBSD) and messes with compiler flags and build targets again. See https://github.com/Ardour/ardour/blob/master/wscript#L522 for example.
(In reply to Christoph Moench-Tegeder from comment #2)
OK, thanks for the explanation.
Regarding SSE for 32-bit build I still would prefer including SSE support by default. The standard FPU is more affected by denormalisation issues which happen quite often in audio precessing because of the usage of IIR filter in e.g. equalizers. For SSE you can switch of the special treatment of denormalized floating point values in contrast.
A commit references this bug:
Date: Tue Sep 29 20:03:40 UTC 2020
New revision: 550616
audio/ardour6: update to 6.3.0 and unbreak
attempt to fill in the blanks (like FreeBSD support) in this port's
wscript's CPU feature detection. Build time CPU detection is problematic
in the context of package builds, so for now this assumes that all
amd64 CPUs have SSE and i386 CPUs don't. Juggling the flags in this
way also fixes the breakage uncovered by the latest glib update.
Approved by: Michael Beer (maintainer)
thanks - great we could get this in before next Quarterly branch. We'll need to re-visit CPU detection soon, both in wscript and for the runtime parts.