On Mon, Aug 06, 2012 at 03:54:10PM +0100, Måns Rullgård wrote: > Måns Rullgård <[email protected]> writes: > >>> Now that's debian. What about other systems, like cygwin? Or AncientBSD? > >> > >> Cygwin comes with nasm 2.08 (of course you can compile yasm there). > > > > You can compile yasm anywhere. I thought this whole exercise was about > > supporting what comes with the systems whenever possible. > > OK, so let's make a list. > > System nasm yasm > ---------------------------------------------- > CentOS 6 2.07 > Debian stale 2.08.01 0.8.0 > Debian testing 2.10.01 1.1.0 > Debian unstable 2.10.01 1.1.0 > Fedora 14 2.09.03 1.0.1 > Fedora 15 2.09.07 1.1.0 > Fedora 16 2.09.08 1.1.0 > Fedora 17 2.09.08 1.2.0 > Gentoo 2.10.01 1.2.0 > OpenSUSE 11 2.07 1.1.0 > OpenSUSE 12 2.09.08 1.1.0 > RHEL 6 2.07 > Scientific Linux 6 2.07 > Ubuntu Lucid 2.07 0.8.0 > Ubuntu Maverick 2.08.01 1.1.0 > Ubuntu Oneiric (11.10) 2.09.08 1.1.0 > Ubuntu Precise (12.04) 2.09.10 1.1.0 > > FreeBSD 9.0 2.09.10 1.1.0 > NetBSD 2.07 1.2.0 > OpenBSD 5.1 2.08.01 1.2.0 > > OSX (fink) 2.09.10 1.2.0 > OSX (macports) 2.10.03 1.2.0 > > Cygwin 2.08.02
Thanks, this is a good overview. The only system missing there is OS/2, which is of course fringe, but IIRC it has no yasm at all. The OS/2 build instructions at http://www.edm2.com/index.php/FFmpeg recommend grabbing the latest OS/2 nasm snapshot, but apparently they are no longer prebuilt for OS/2. The 2.10 release has no OS/2 binaries, but 2.09.10 has, there are 2.10 binaries available from OS/2 forums. > A few observations about our requirements: > > - nasm 2.09.07 required for avx > - nasm 2.09.03 fixes the macro expansion problem with %+ > - nasm 2.08 required for sse4 yasm 0.8.0 is enough for AVX yasm 1.0.0 is enough for FMA4 nasm 2.10.01 is enough to pass the FMA4 in configure, 2.08.01 fails. > With the first set of 5 patches I sent yesterday, we can support nasm > 2.09.07 or later. > > If we ifdef the avx code and somehow work around the %+ bug, we can > support nasm versions back to 2.08. > > If we additionally ifdef sse4 code, we can support nasm 2.07, which > would cover all the systems above. > > Limiting support to 2.09.07 or later would require installing unpackaged > nasm/yasm versions on Cygwin and RHEL-like distros. A few more would > need to install yasm rather than nasm. > > Restoring support for nasm 2.08 would leave only RHEL in the cold. We could turn this around as well and say that requiring nasm 2.09.07 or yasm 0.8.0 would allow us to drop the avx ifdeffery. Also, the test in configure would become very simple: the avx test would become the yasm/nasm test. This would only leave the RHEL-derived distros and Cygwin out in the cold, but supporting nasm 2.08 or even 2.07 requires adding some very ugly hacks to the codebase, which have a high chance of getting rejected. So I would suggest making yasm 0.8.0 and nasm 2.09.07 the minimum requirement. This covers all current systems except RHEL 6 derivatives and Cygwin while having minimal impact on our codebase. Sounds like a good deal to me. In any case, once this is settled, we need a FATE instance with our minimal required nasm version or at the very least some nasm version, otherwise this will break again. I can take care of it. Diego _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
