[FFmpeg-devel] [PATCH 3/3] two functions were declared inline but were referenced elsewhere
jbohl at jbohl.de
Mon Jun 11 23:07:30 CEST 2012
in motion_est_template.c I found two functions, which are declared
inline but are referenced in a different compilation unit (snowenc.c
namely). This gives me a linker error (with ICL12.1 on Windows).
The simplest solution seems to remove the inline declaration - please
find the attached patch doing so.
>PS: a windows intel compiler FATE client would be welcome, that way we
also would notice immedeatlly when
>something breaks for windows-icc
Yes, this is something I will definitely look into. Meanwhile, there are
quite a few other changes I had to make in order to compile the code
with ICL12.1, mainly related to AT&T inline assembly. The Intel
compiler's support for AT&T-inline-assembly is not really complete
compared to GCC, foremost it is lacking the ability to reference
external symbols in assembly code. I had to turn all external references
into passing the addresses as input registers ("m"). However, this
worked out ok and all code compiles flawless now (and works, at least as
far as my testing goes).
I am not sure whether these changes are of interest here.
Another issue was that (false) conditionals with compile-time constants
are not discarded before link-time, i.e. statements like
if (ARCH_ARM) ff_vp56dsp_init_arm(s, codec);
result in a linker error. I do not know of a better solution than using
the pre-processor in these cases.
If you see any chance of getting these (somewhat intrusive) changes into
the codebase I would be glad to help. My primary goal was to be able to
debug and step through ffmpeg in VisualStudio which I have now achieved.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 1423 bytes
More information about the ffmpeg-devel