[FFmpeg-trac] #1440(undetermined:new): MinGW32 Builds Fail
FFmpeg
trac at avcodec.org
Mon Jun 11 20:06:48 CEST 2012
#1440: MinGW32 Builds Fail
-------------------------------------+-------------------------------------
Reporter: mbradshaw | Owner:
Type: defect | Status: new
Priority: normal | Component:
Version: git- | undetermined
master | Keywords:
Blocked By: | Blocking:
Reproduced by developer: 0 | Analyzed by developer: 0
-------------------------------------+-------------------------------------
Building with MinGW32 fails.
[http://fate.ffmpeg.org/report.cgi?time=20120611144205&slot=x86_64-debian-
mingw32-gcc-4.6 FATE test shows the failure.] Also fails for me on my
Windows 7 MinGW build system.
git bisect shows this was introduced with commit
5db5169e46a5f1676aafb82ec8c3f5dc6fb6bb6d, "avconv: multithreaded
demuxing." However, I don't think this commit is the root of the problem.
The reported compile error, for those who haven't checked the FATE test,
is:
{{{
CC ffmpeg.o
/home/fate/fate/src/ffmpeg.c:1:0: warning: -fPIC ignored for target (all
code is position independent) [enabled by default]
/home/fate/fate/src/ffmpeg.c:1:0: warning: -fPIC ignored for target (all
code is position independent) [enabled by default]
In file included from /home/fate/fate/src/ffmpeg.c:93:0:
/home/fate/fate/src/libavcodec/w32pthreads.h:67:37: error: expected '=',
',', ';', 'asm' or '__attribute__' before 'win32thread_worker'
/home/fate/fate/src/libavcodec/w32pthreads.h: In function
'pthread_create':
/home/fate/fate/src/libavcodec/w32pthreads.h:79:60: error:
'win32thread_worker' undeclared (first use in this function)
/home/fate/fate/src/libavcodec/w32pthreads.h:79:60: note: each undeclared
identifier is reported only once for each function it appears in
/home/fate/fate/src/ffmpeg.c: In function 'opt_recording_timestamp':
/home/fate/fate/src/ffmpeg.c:4032:5: warning: unknown conversion type
character 'F' in format [-Wformat]
/home/fate/fate/src/ffmpeg.c:4032:5: warning: unknown conversion type
character 'T' in format [-Wformat]
/home/fate/fate/src/ffmpeg.c: At top level:
/home/fate/fate/src/libavcodec/w32pthreads.h:150:13: warning:
'pthread_cond_destroy' defined but not used [-Wunused-function]
/home/fate/fate/src/libavcodec/w32pthreads.h:166:13: warning:
'pthread_cond_broadcast' defined but not used [-Wunused-function]
/home/fate/fate/src/libavcodec/w32pthreads.h:254:13: warning:
'w32thread_init' defined but not used [-Wunused-function]
/home/fate/fate/src/ffmpeg.c:1533:12: warning: 'check_recording_time'
defined but not used [-Wunused-function]
}}}
Replacing "attribute_align_arg" with
"__attribute__((force_align_arg_pointer))" in libavcodec/w32pthreads.h
fixes the error. Including libavutil/internal.h also seems to fix this
error, but introduces new errors in ffmpeg.c (because of things like
fprintf).
I'm not sure what the best solution is (attribute_align_arg is needed and
it's defined in libavutil/internal.h, but ffmpeg.c can't include that
file), and will leave it up to others to determine that.
--
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/1440>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list