summaryrefslogtreecommitdiff
path: root/compat
Commit message (Collapse)AuthorAgeFilesLines
* w32pthreads: Map MemoryBarrier to __sync_synchronize on mingwMartin Storsjö2015-10-301-2/+2
| | | | | | | This fixes building on older mingw (both mingw.org and mingw64; mingw64 from before May 2011). Signed-off-by: Martin Storsjö <martin@martin.st>
* w32pthreads: fix mingw build on x86 with -msse2 or higherHendrik Leppkes2015-10-161-0/+5
| | | | | | | | When SSE2 or higher compiler optimizations are used, mingw uses the _mm_mfence intrinsic for MemoryBarrier, however it doesn't include the appropriate headers automatically. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* build: add Solaris symbol versioningSean McGovern2015-10-111-0/+352
| | | | | | | | | | | | | | | | | | The versioning facility in the Solaris linker differs from Linux in 3 ways: 1. It does not support globs in linker scripts for symbol versioning -- this is a GNU extension. 2. The linker argument is '-M', instead of '--version-script'. 3. It is picky about line endings. Each symbol or directive must be on a line of it's own. Let's use make_sunver.pl from GCC to generate a version script that works correctly with the Solaris linker. It's function is to correctly expand the globs in the original generated version script. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* w32pthreads: Load dynamically loaded functions on demandHendrik Leppkes2015-10-071-0/+10
| | | | | | | This removes the requirement of calling w32thread_init before being able to use the threading primitives. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* w32pthreads: Add pthread_once emulationHendrik Leppkes2015-10-071-0/+73
| | | | | | | | The emulation uses native InitOnce* APIs on Windows Vista+, and a lock-free/allocation-free approach using atomics and spinning for Windows XP. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* use a wrapper script to call MS link.exe to avoid mixing with /usr/bin/link.exeSteve Lhomme2015-07-241-0/+9
| | | | | | Fallback to "link" in the path if the one next to cl is not found. Signed-off-by: Martin Storsjö <martin@martin.st>
* w32pthreads: use the condition variable API directly when targeting newer ↵James Almer2014-10-101-22/+38
| | | | | | | | | | versions of Windows Wrap the function calls in a similar fashion to how it's being done with the critical section API. Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Martin Storsjö <martin@martin.st>
* w32pthreads: use the CONDITION_VARIABLE typedef if availableJames Almer2014-10-101-10/+13
| | | | | | | | This silences warnings about passing arguments from incompatible pointer type when targeting Windows Vista or newer. Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Martin Storsjö <martin@martin.st>
* cosmetics: Write NULL pointer equality checks more compactlyGabriel Dume2014-08-151-1/+1
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* w32pthreads: Mark functions in compatibility wrapper as av_unusedDiego Biurrun2014-08-151-10/+11
| | | | | | This avoids annoying warnings about unused functions. The compatibility wrapper is designed to provide a complete (stub) API, so some functions being unused by some files is natural and no reason for a warning.
* w32threads: Use newer thread synchronization functions when targeting VistaMartin Storsjö2014-08-131-0/+12
| | | | | | | | | | | | | | | | | When explicitly targeting Vista or newer (which only happens if the caller explicitly sets _WIN32_WINNT to a high enough value via the extra cflags option - otherwise configure script sets -D_WIN32_WINNT=0x0502), we already unconditionally link to the ConditionVariable functions, since 4622f11f9. Similarly use the newer -Ex versions of CreateEvent, CreateSemaphore, InitializeCriticalSection and WaitForSingleObject, that all appeared in Vista. When building Windows Store applications, the older versions of these functions aren't available, only the -Ex functions. When doing such a build, the user can set -D_WIN32_WINNT=0x0600 to forcibly use the newer functions instead. Signed-off-by: Martin Storsjö <martin@martin.st>
* Work around broken floating point limits on some systems.Anton Khirnov2014-03-102-0/+57
| | | | | | | | | | | | | The values of {FLT,DBL}_{MAX,MIN} macros on some systems (older musl libc, some BSD flavours) are not exactly representable, i.e. (double)DBL_MAX == DBL_MAX is false This violates (at least some interpretations of) the C99 standard and breaks code (e.g. in vf_fps) like double f = DBL_MAX; [...] if (f == DBL_MAX) { // f has not been changed yet [....] }
* build: Import makedef script from c99-to-c89Derek Buitenhuis2013-11-241-0/+132
| | | | | | | This allows MSVC 2013 and ICL to build with no external dependencies. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* Remove #undefs for formerly forbidden system functionsDiego Biurrun2013-11-071-2/+0
| | | | | The macros forbidding the system functions no longer exist, obviating the need for the #undefs.
* Revert "w32pthread: help compiler figure out undeeded code"Martin Storsjö2013-08-271-5/+5
| | | | | | | | | | This reverts commit 4622f11f9c83db8a2e08408c71ff901826ca652c. The compiler should be able to do the dead code elimination now without this when the cond_* names point directly to the real functions instead of to local function pointers. Signed-off-by: Martin Storsjö <martin@martin.st>
* w32threads: Don't use function pointers when linking directly to newer APIsMartin Storsjö2013-08-271-5/+7
| | | | | | | | | | | | This reduces the call overhead slightly. More noticeably, it restores the earlier (unintended?) feature that condition variable functions work just fine even if w32thread_init() hasn't been called. This was broken as a side effect of 4622f11f9, if explicitly targeting Vista+. This makes w32threading work in VP8 again, if targeting Vista+. Signed-off-by: Martin Storsjö <martin@martin.st>
* w32pthread: help compiler figure out undeeded codeRafaël Carré2013-08-211-5/+5
| | | | | | | | The emulation code is not needed when targetting Vista+ This helps getting rid of CreateSemaphore symbol, which is forbidden in Windows Store apps. Signed-off-by: Martin Storsjö <martin@martin.st>
* compat: Add missing license boilerplatesDiego Biurrun2013-07-182-2/+38
|
* Employ consistent LIBAV_COMPAT_ multiple inclusion guards in compat/Diego Biurrun2013-07-183-9/+13
| | | | Also fix a comment and an #endif comment.
* compat: wrap math.h to avoid AIX-specific clashesLuca Barbato2013-07-041-0/+14
| | | | | AIX defines a class() function in its math.h header without any guard.
* w32pthreads: move from lavc to compat/Anton Khirnov2013-05-241-0/+279
| | | | It will be used in other places than lavc.
* Use the avstring.h locale-independent character type functionsReimar Döffinger2013-03-071-2/+1
| | | | | | Make sure the behavior does not change with the locale. Signed-off-by: Martin Storsjö <martin@martin.st>
* build: Plan 9 supportMans Rullgard2012-10-233-0/+46
| | | | | | | | | | | | | This adds support for building on Plan 9 x86-32. The compat/plan9 directory contains these items: - replacements for the 'head' and 'printf' shell commands - wrapper for main() to disable FPU exceptions Larger required changes to the system are described in the documentation. Signed-off-by: Mans Rullgard <mans@mansr.com>
* build: tms470: work around glibc math.h problemsMans Rullgard2012-10-131-0/+7
| | | | | | | The glibc definitions of INFINITY and NAN do not work with the tms470 compiler, nor do our usual fallbacks. Signed-off-by: Mans Rullgard <mans@mansr.com>
* compat/vsnprintf: return number of bytes required on truncation.Ronald S. Bultje2012-09-151-3/+10
| | | | | | This conforms to C99, but requires Windows >= XP. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* lavu: add snprintf(), vsnprint() and strtod() replacements for MS runtime.Ronald S. Bultje2012-09-052-0/+157
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* getopt: Remove an unnecessary defineMartin Storsjö2012-08-161-2/+0
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* getopt: Add missing includesMartin Storsjö2012-08-161-0/+3
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* dct/fft-test: use a replacement getopt() if the system has none present.Ronald S. Bultje2012-07-111-0/+84
This allows compiling and running these tests on systems lacking a built- in version of getopt(), such as MSVC. Signed-off-by: Anton Khirnov <anton@khirnov.net>