[FFmpeg-devel] forcing ints to be 64 bits, possible new FATE client idea

Timothy Gu timothygu99 at gmail.com
Wed Oct 21 07:24:30 CEST 2015


On Tue, Oct 20, 2015 at 7:09 PM Ganesh Ajjanagadde <gajjanag at mit.edu> wrote:

> Hi all,
>
> It is known that there exist at least certain parts of the codebase
> that do not work correctly if ints are 64 bits. One of them I noticed
> was in avutil/intmath.h: ff_ctz_c does not compute the right thing if
> int is 64 bits. This is true both before and after the De-Bruijn
> optimization.
>
> A more interesting (and serious) question is whether FATE is broken if
> int's are 64 bits. I did some digging, and found the following from
> "The Definitive Guide to GCC" - On GCC prior to 4.x, there was a flag
> -mint64, documented as follows (see e.g
> https://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc.pdf):
> "Force int and long types to be 64 bits wide. See -mlong32 for an
> explanation of the default and the way that the pointer size is
> determined".
>
> This should be helpful in setting up a FATE client to test (and
> possibly fix) bad code that assumed int = 32 bits. I myself can't
> easily run such an outdated GCC, but I noticed a bunch of clients
> running GCC < 4.0 where this may be set up.
>

For lack of milder wording, this is a terrible idea.

FATE is set up, not to test every single possible combination of compiler,
compiler flags, and operating system, but to make sure FFmpeg works on the
ones people actually use. There are already not many people using GCC 3,
and the addition of a flag that completely changes the API is nowhere near
realistic.

Sometimes it's necessary to draw a line between "what's written in ISO/IEC
9899" and "real world."

Plus Mark's point on technical possibility of it (thank GOD GCC didn't do
something as crazy as this on other platforms).

Timothy


More information about the ffmpeg-devel mailing list