Compiling ffmpeg (see http://sourceforge.net/tracker2/?func=detail&aid=2118261&group_id=202880&atid=983354) under mingw-w64 into a DLL results in a runtime crash involving two dlls.
in libavutil.dll: const uint8_t ff_log2_tab[256]; in libavcodec.dll: extern const uint8_t ff_log2_tab[256]; static inline int av_log2(unsigned int) { ... } which uses the ff_log2_tab array. The ff_log2_tab array is auto-imported from libavutil into libavcodec. When av_log2 is called the resulting program crashes. The workaround is to explicitly import ff_log2_tab into libavcodec via: __declspec(dllimport) const uint8_t ff_log2_tab[256]; If this is done the crash goes away. This worked fine in gcc 4.3. -- Summary: auto-import of constant data results in a crash at runtime Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: regression AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jkolb at wsi dot com GCC build triplet: x86_64-mingw-32 GCC host triplet: x86_64-mingw-32 GCC target triplet: x86_64-mingw-32 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37629