summaryrefslogtreecommitdiff
path: root/src/util/u_atomic.c
AgeCommit message (Collapse)AuthorFilesLines
2022-02-28util/u_atomic: fix build on clang archs without 64-bit atomicsJonathan Gray1-0/+41
Make this build on clang architectures that don't have 64-bit atomic instructions. Clang doesn't allow redeclaration (and therefore redefinition) of the __sync_* builtins. Use #pragma redefine_extname to work around that restriction. Clang also turns __sync_add_and_fetch into __sync_fetch_and_add (and __sync_sub_and_fetch into __sync_fetch_and_sub) in certain cases, so provide these functions as well. Fixes: a6a38a038bd ("util/u_atomic: provide 64bit atomics where they're missing") patch from Mark Kettenis Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6511>
2017-09-22util/u_atomic: remove unnecessaty __atomic functionsGrazvydas Ignotas1-12/+0
They are now provided by -latomic, which should be linked as needed since previous commit. Signed-off-by: Grazvydas Ignotas <notasas@gmail.com> Reviewed-by: Matt Turner <mattst88@gmail.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2017-09-15util/u_atomic: Add implementation of __sync_val_compare_and_swap_8Matt Turner1-0/+14
Needed for 32-bit PowerPC. Cc: "17.2" <mesa-stable@lists.freedesktop.org> Fixes: a6a38a038bd ("util/u_atomic: provide 64bit atomics where they're missing") Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2017-04-03util/u_atomic: provide 64bit atomics where they're missingGrazvydas Ignotas1-0/+75
There are still some distributions trying to support unfortunate people with old or exotic CPUs that don't have 64bit atomic operations. When compiling for such a machine, gcc conveniently inserts a library call to a helper, but it's implementation is missing and we get a linker error. This allows us to provide our own implementation, which is marked weak to prefer a better implementation, should one exist. v2: changed copyright, some style adjustments v3: [mattst88] Print results with AC_MSG_CHECKING/AC_MSG_RESULT Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93089 Signed-off-by: Grazvydas Ignotas <notasas@gmail.com> Reviewed-by: Matt Turner <mattst88@gmail.com>