delorie.com/archives/browse.cgi | search |
Diego Biurrun wrote: > llrint is required, so I guess Cygwin compilation will indeed be broken > for a while. We don't add OS-specific workarounds to FFmpeg. I call shenanigans. The libavcodec directory has entirely separate subdirs for different processors -- platform specificity is BUILT IN to the ffmpeg source tree. Second, common.h contains compiler-specific workarounds: #ifndef av_always_inline #if defined(__GNUC__) && (__GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ > 0) # define av_always_inline __attribute__((always_inline)) inline #else # define av_always_inline inline #endif #endif to account for gcc-specific behavior. That file ALSO contains a half-dozen implementations of read_time depending on which microprocessor architecture is in use. internal.h has this: // Use rip-relative addressing if compiling PIC code on x86-64. #if defined(__MINGW32__) || defined(__CYGWIN__) || \ defined(__OS2__) || (defined (__OpenBSD__) && !defined(__ELF__)) # if defined(ARCH_X86_64) && defined(PIC) # define MANGLE(a) "_" #a"(%%rip)" # else # define MANGLE(a) "_" #a # endif #else # if defined(ARCH_X86_64) && defined(PIC) # define MANGLE(a) #a"(%%rip)" # elif defined(__APPLE__) # define MANGLE(a) "_" #a # else # define MANGLE(a) #a # endif #endif which looks pretty darn OS-specific to me. (__CYGWIN__? __MINGW32__? __OS2__?) Oh, and lookee here, in the same file: #ifndef HAVE_LRINTF /* XXX: add ISOC specific test to avoid specific BSD testing. */ /* better than nothing implementation. */ /* btw, rintf() is existing on fbsd too -- alex */ static av_always_inline long int lrintf(float x) { return (int)(rint(x)); } #endif /* HAVE_LRINTF */ a replacement function lrintf() that is activated only when a configure test determines that lrintf doesn't exist and therefore neglects to define HAVE_LRINTF.... So, we have: architecture-specific workarounds compiler-specific workarounds OS-specific workarounds AND capability-specific (!HAVE_FOO) workarounds All god's chillins gots workaround code. "We don't add OS-specific workarounds", indeed... -- Chuck -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |