Sam Lantinga
ebf3889389
Fixed memory barrier macro check so it isn't quite so fragile
2019-06-30 23:58:31 -07:00
Sam Lantinga
16a348fb07
Limit the compile error to the case where we actually define the memory barrier macro as the function
2019-06-30 23:55:28 -07:00
Sam Lantinga
68d873f3e6
Fixed bug 4683 - SDL_atomic infinite recursion on armv6/armv5 w/ thumb
...
The real problem is that SDL_atomic.c was built in thumb mode instead of ARM mode, which is required to use the mcr instruction on ARM platforms. Added a compiler error to catch this case so we don't generate code that does infinite recursion.
I also added a potentially better way to handle things on Linux ARM platforms, based on comments in the Chromium headers, which we can try out after 2.0.10 ships.
2019-06-30 23:26:16 -07:00
Sam Lantinga
af32a2f4cd
Updated copyright for 2019
2019-01-04 22:01:14 -08:00
Ozkan Sezer
0bec5913e1
SDL_atomic.c, SDL_spinlock.c: use lock prefix with xchg in Watcom asm.
2018-09-27 11:55:02 +03:00
Sam Lantinga
346af016a5
Updated copyright for 2018
2018-01-03 10:03:25 -08:00
Ozkan Sezer
29941a2a2b
Add atomics for Watcom/x86 as inline asm
...
Partially fixes Bugzilla #3758 .
2017-08-18 16:35:55 -04:00
Ryan C. Gordon
d8af5b0d60
atomic: Patched to compile on Android.
2017-04-13 15:28:56 -04:00
Ryan C. Gordon
0c98a5faac
atomic: favor compiler intrinsics for compare-and-swap over macOS APIs.
...
The OSAtomicCompareAndSwap* APIs are deprecated as of macOS 10.12.
2017-04-13 13:28:52 -04:00
Ryan C. Gordon
3cab758c71
atomic: let Clang always use atomic_load_n if available.
...
(Apple's Clang reports itself as GCC 4.2.1 in preprocessor macros--the final
GNU C compiler Apple shipped--as of the macOS 10.12 SDK.)
--HG--
extra : histedit_source : 79ad10ee762abab0eb71ba57b188636282d24757
2017-04-13 13:22:23 -04:00
Sam Lantinga
b666f8701e
__atomic_load_n() appears to be available in GCC 5 but not GCC 4
2017-03-30 06:52:34 -07:00
Ryan C. Gordon
5978bddd06
Patched to compile on some platforms.
2017-03-29 12:04:17 -04:00
James Legg
703deb80e2
Use GCC's atomic loads in SDL_AtomicGet and SDL_AtomicGetPtr
...
This fixes errors reported by address sanitizer, and generates simpler
code on x86 architectures.
2017-03-29 15:48:22 +01:00
Sam Lantinga
121cd476bc
Make sure the memory barrier functions are always available, and now they are implemented on Android __ARM_ARCH_5TE__
2017-02-10 11:21:15 -08:00
Sam Lantinga
1b24bfad38
Updated copyright for 2017
2017-01-01 18:33:28 -08:00
Sam Lantinga
7ee8dda270
Updated copyright to 2016
2016-01-02 10:10:34 -08:00
Sam Lantinga
56b58afdbe
Updated the copyright year to 2015
2015-05-26 06:27:46 -07:00
Shawn Walker
f2c61cdaa5
2620 solaris port missing atomics if not using gcc
2014-07-05 16:11:23 -07:00
Sam Lantinga
d7940a513e
Fixed bug 2374 - Update copyright for 2014...
...
Is it that time already??
2014-02-02 00:53:27 -08:00
Ryan C. Gordon
599df6540c
Patched to compile on Android (I think).
2014-01-08 00:40:48 -05:00
Ryan C. Gordon
82edee6971
Make internal SDL sources include SDL_internal.h instead of SDL_config.h
...
The new header will include SDL_config.h, but allows for other global stuff.
--HG--
extra : rebase_source : ddf4a4c0dc2c554b98c82700798f343cd91b16e3
2013-11-24 23:56:17 -05:00
Ryan C. Gordon
1e82be1804
Patched stdlib changes to compile on Windows.
...
--HG--
extra : rebase_source : a782472e239edc31e70be994953d4da5a55edd95
2013-12-09 13:30:35 -05:00
Ryan C. Gordon
4b0089b843
Moved atomic API implementation out of headers.
...
--HG--
extra : rebase_source : 71f9b298ea312a5957cd761163f812750fb66899
2013-11-24 21:04:51 -05:00
Sam Lantinga
44dbed38ac
Fixed bug 2129 - fix for bug 2121 breaks linking for mingw and throws multiple warnings
...
Andreas Ertelt
The problem in question is caused by changeset 7771 (http://hg.libsdl.org/SDL/rev/4434498bf4b9 / https://bugzilla.libsdl.org/show_bug.cgi?id=2121 )
The redefinition of __inline__ (introduced by the addition of begin_code.h:128's "|| __STRICT_ANSI__") results in mingw's gcc throwing multiple
warning: always_inline function might not be inlinable [-Wattributes]
as well as a whole bunch of redefinitions of mingw internals which break linking of projects including the SDL2 headers.
2013-10-20 21:56:15 -07:00
Sam Lantinga
f80a6e7ee5
Added PowerPC and ARM versions of the memory barrier functions.
2013-07-10 20:17:20 -07:00
Sam Lantinga
0cb6385637
File style cleanup for the SDL 2.0 release
2013-05-18 14:17:52 -07:00
Sam Lantinga
1494812f7c
Put the real SDL_AtomicCAS() and SDL_AtomicCASPtr() symbols into the library.
2013-03-07 20:42:55 -08:00
Sam Lantinga
95dcfa4c28
Happy New Year!
2013-02-15 08:47:44 -08:00
Sam Lantinga
f380ecb137
Removed executable bit from source files
2012-09-27 14:35:28 -07:00
Sam Lantinga
9033bb050f
Make sure that we use consistent configuration options on platforms like Windows so that command line builds and IDE builds have ABI compatibility.
...
Make sure we don't clobber SDL_revision.h when building from Mercurial
--HG--
rename : include/SDL_config.h.in => include/SDL_config_generated.h.in
2012-01-14 13:21:19 -05:00
Sam Lantinga
028e5dcdbd
Happy New Year!
2011-12-31 09:28:07 -05:00
Sam Lantinga
b0660ba5ff
SDL 1.3 is now under the zlib license.
2011-04-08 13:03:26 -07:00
Sam Lantinga
e5803d148c
Happy 2011! :)
2011-02-11 22:37:15 -08:00
Sam Lantinga
29e0bf97e0
Improvements based on feedback from Anthony Williams
2011-01-25 17:40:06 -08:00
Sam Lantinga
b0e0f61c7e
Added native atomic operations for Windows, Mac OS X, and gcc compiler intrinsics.
...
Changed the CAS return value to bool, so it's efficient with OSAtomicCompareAndSwap32Barrier()
Added an atomic test adapted from code by Michael Davidsaver
2011-01-16 15:16:39 -08:00
Sam Lantinga
1bc8fe69ce
Updated the atomic API for better use cases
2011-01-15 12:41:59 -08:00