[FFmpeg-devel] addcompat does work correctly when overridden functions are declared to use a non-default calling convention

Yu Xiaolei dreifachstein at gmail.com
Sat May 17 11:15:41 CEST 2014


Android armeabi-v7a-hard defaults to hardfp abi while using softfp on
JNI and system library calls.
It relies on these functions being marked with correct abi through
__attribute__((pcs("aapcs"))).

When addcompat adds -Dstrtod=avpriv_strtod to compiler flags and
avpriv_strtod implementation redeclares it through:

#undef strtod
double strtod(const char *, char **);

avpriv_strtod ends up calling system strtod with hardfp abi.

I think it is at least not future proof to assume libc functions being
always declared without a calling convention,
but cannot come up with a better non-intrusive solution.


More information about the ffmpeg-devel mailing list