Sync from SUSE:SLFO:Main libatomic_ops revision 3e4e56015d683797faf1f1256677792c

This commit is contained in:
Adrian Schröter 2024-05-03 14:34:29 +02:00
commit b47a3ebed8
4 changed files with 338 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

BIN
libatomic_ops-7.8.0.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

234
libatomic_ops.changes Normal file
View File

@ -0,0 +1,234 @@
-------------------------------------------------------------------
Tue Mar 28 08:09:48 UTC 2023 - Jan Engelhardt <jengelh@inai.de>
- Update to release 7.8.0
* Do not expose AO_REAL_HEAD/NEXT_PTR implementation in header
by default
* Hide AO_free_list symbol
* New AO_stack_is_lock_free API function
* Use GCC atomic intrinsics for SPARC
-------------------------------------------------------------------
Thu Aug 25 21:50:14 UTC 2022 - Jan Engelhardt <jengelh@inai.de>
- Update to release 7.6.14
* Avoid AO_stack_t to cross CPU cache line boundary
-------------------------------------------------------------------
Mon Sep 13 10:45:00 UTC 2021 - Jan Engelhardt <jengelh@inai.de>
- Update to release 7.6.12
* Declare argument of AO_load_next with const in
atomic_ops_stack.
* Fix gcc/sunc x86 AO_compare_double_and_swap_double
missing side effect.
* Fix link fail caused by missing GCC char/short atomic
primitives on riscv64.
* Turn off compare_double_and_swap_double_full PIC hack for
GCC 5+ (x86).
* Use GCC atomic intrinsics for s390x (clang 8.0+ and gcc 5.4+).
-------------------------------------------------------------------
Fri Aug 2 07:04:12 UTC 2019 - Martin Liška <mliska@suse.cz>
- Use FAT LTO objects in order to provide proper static library.
-------------------------------------------------------------------
Fri Mar 15 09:40:59 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
- Update to new upstream release 7.6.10
* Fix compiler warnings
-------------------------------------------------------------------
Tue Jan 8 02:26:25 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
- Update to new upstream release 7.6.8
* Support aarch64-ilp32 (GCC) target
-------------------------------------------------------------------
Wed Oct 24 05:09:08 UTC 2018 - sean@suspend.net
- Update to new upstream release 7.6.6
* Fix undefined reference to __atomic_load/store/cas_16
* Fix a typo in the overview section of README
* Fix comments style in configure.ac and Makefile.am
* Update copyright information in README and some header files
- Remove patch libatomic_ops-ppc64.patch, looks merged
-------------------------------------------------------------------
Mon Jan 29 11:04:41 UTC 2018 - jengelh@inai.de
- Update to new upstream release 7.6.2
* Fix GCC 5.x compatibility for AArch64 double-wide primitives
* Implement fetch-CAS for s390[x] (gcc)
* Support n32 ABI for mips64
* Use LLD and SCD instructions on mips64
* Use generalized double-wide load/store if
AO_PREFER_GENERALIZED (gcc/x86)
* Use GCC atomic intrinsics for PowerPC 32/64 (GCC 4.8+ and
clang 3.8+)
* Use GCC atomic intrinsics for x86, x64, ARM, MIPS (gcc 4.9+,
clang 3.5+)
* Relax shareability domain for dmb st in AO_nop_write
(ARM/AArch64)
* Implement AO_CLEAR using C11 atomic intrinsic (GCC)
* Implement CAS_acquire/release/full using
__atomic_compare_exchange_n (gcc)
* Implement compiler_barrier using C11 __atomic_signal_fence
(GCC)
* Add initial nios2 architecture support
* Add asm-based and/or/xor implementation for char/short/int
(gcc/x86)
* Add asm-based char/short/int CAS implementation for
gcc/x86[_64]
- Remove aarch64-gcc5.patch (no longer applies)
-------------------------------------------------------------------
Thu Apr 7 12:26:58 UTC 2016 - schwab@suse.de
- aarch64-gcc5.patch: fix build with gcc >= 5
-------------------------------------------------------------------
Thu Mar 5 09:41:01 UTC 2015 - jengelh@inai.de
- Update homepage URLs
-------------------------------------------------------------------
Mon Jul 21 08:44:50 UTC 2014 - jengelh@inai.de
- Update to new upstream release 7.4.2
* Add and/or/xor entries to list_atomic (tests).
* Add char/short/int/AO_double_t and dd_acquire cases to list_atomic (tests).
* Add double_store pthread-based implementation and tests.
* Add generalized CAS primitives of char/short/int size.
* Add generalized atomic and/or/xor operations for char/short/int types.
* Add generalized fetch_and_add_acquire/release (for ARMv6+).
* Add generic implementation of double_load primitives.
* Add load/store primitives generalization based on CAS.
* Add lock-based implementation of char/short/int_fetch_compare_and_swap.
* Add missing double_compare_and_swap to generalization.
* Add missing generalization of no-barrier CAS in template.
* Always use 'mfence' for nop_full if target CPU supports SSE2 (gcc/x86).
* Cast away volatile on dereference in CAS-based generalization primitives.
* Define AO_int_X operations for ARM and avr32.
* Define double-wide ordered loads/stores for x86.
* Define int_and/or/xor primitives in ao_t_is_int header.
* Define nop_full as compiler barrier for pre-ARMv6 single-core case.
* Do not include standard_ao_double_t.h where double-CAS is unimplemented.
* Do not report absence of meaningless nop, load and store in test_atomic.
* Eliminate 'missing initializer' warning for AO_stack_t value initializer.
* Eliminate arithmetic shifts in double-CAS (gcc/arm, msftc/x86).
* Enable generalization of all variants of CAS via fetch_compare_and_swap.
* Implement and/or/xor, AO_double_load for ARM.
* Implement atomic store using direct write by default on ARMv6+.
* Implement char/short/int-wide primitives using GCC built-in atomic/sync.
* Implement char/short_fetch_and_add, char/short_load for ARMv6+ (GCC).
* Implement char/short_store primitives at aligned addresses for ARM.
* Implement double_load/store based on guaranteed x86 access atomicity.
* Implement double_store for ARMv7 using LDREXD/STREXD.
* Implement load/store via simple LDR/STR for ARMv6+ (msftc).
* Implement nop_full/write using 'dmb' instruction if available (gcc/arm).
* Minimize gcc/generic-arithm template by factoring out barriers.
* Move 'unsigned' keyword to XCTYPE in generalize-small template.
* Move definitions of ordered loads/stores to inner separate headers.
* Move gcc-generic AO_t-wide primitives to generic-small/arithm headers.
* Move generalized arithmetical primitives to 'generalize-arithm' template.
* Optimize AO_spin manually to minimize compiler influence on its duration.
* Remove X_aligned_atomic_load_store headers and template.
* Remove duplicate AO_spin and AO_pause definition in atomic_ops_stack.
* Remove gcc/x86_64.h eliminating code duplication of gcc/x86.h.
* Remove nested AO_USE_PTHREAD_DEFS macro check in atomic_ops.h (gcc/arm).
* Remove redundant 'cc' clobber for LDREXD instruction (gcc/arm).
* Remove store_full from msftc/arm.h in favor of generalized primitive.
* Reorder AO_double_t union elements for AO_DOUBLE_T_INITIALIZER portability.
* Replace atomic_load_store.template with atomic_load and atomic_store ones.
* Support AArch64 (64-bit ARM) target (GCC).
* Support ARMv8 target (gcc/arm).
* Use __atomic GCC built-in to implement generic double-wide CAS.
* Use built-in __sync CAS for double-CAS if AO_USE_SYNC_CAS_BUILTIN for x86.
- Drop libatomic_ops-aarch64.patch (no longer needed)
-------------------------------------------------------------------
Thu May 15 14:53:31 UTC 2014 - tchvatal@suse.com
- Version bump to 7.2e:
* Various small fixes for 7.2 series.
- Cleanup with spec-cleaner.
-------------------------------------------------------------------
Mon Feb 10 18:39:57 UTC 2014 - dvaleev@suse.com
- Drop incorrect ppc64le patch
- Force AO_load() to map to AO_load_acquire() for powerpc
- added patches:
* libatomic_ops-ppc64.patch
- removed patches:
* libatomic_ops-ppc64le.patch
-------------------------------------------------------------------
Mon Dec 2 21:00:35 UTC 2013 - dvaleev@suse.com
- Fix build on ppc64le (add patch libatomic_ops-ppc64le.patch)
-------------------------------------------------------------------
Sun May 26 20:05:34 UTC 2013 - jengelh@inai.de
- Update to upstream release 7.2d
- pkgconfig support, testsuite was fixed and no longer
loops endlessy/crashes
- Transplant libatomic_ops-aarch64.patch from "gc" package
-------------------------------------------------------------------
Wed May 23 12:45:39 UTC 2012 - jengelh@inai.de
- Rename package to upstream name (libatomic-ops-devel ->
libatomic_ops)
-------------------------------------------------------------------
Wed Dec 21 10:31:39 UTC 2011 - coolo@suse.com
- remove call to suse_update_config (very old work around)
-------------------------------------------------------------------
Fri Dec 2 16:34:32 UTC 2011 - coolo@suse.com
- add automake as buildrequire to avoid implicit dependency
-------------------------------------------------------------------
Tue Oct 18 23:37:21 UTC 2011 - adrian@suse.de
- update to current 7.2alpha6 version
* fixes armv7 builds
* obsoletes all our patches
- run test cases, except when running in not thread safe qemu
- cleanup spec file
- add official URLs to home page and source
- use original upstream tar ball
- fix build for sle 11
-------------------------------------------------------------------
Fri Dec 18 13:57:19 CET 2009 - jengelh@medozas.de
- enable parallel building
-------------------------------------------------------------------
Sat Jun 20 13:14:14 CEST 2009 - coolo@novell.com
- fix build with automake 1.11
-------------------------------------------------------------------
Thu Aug 2 12:53:01 CEST 2007 - tiwai@suse.de
- fix ppc bugs in PPC assembler codes.
-------------------------------------------------------------------
Tue Jun 12 16:28:37 CEST 2007 - tiwai@suse.de
- fixed the build with s390.
-------------------------------------------------------------------
Fri Jun 8 14:40:40 CEST 2007 - tiwai@suse.de
- initial version: 1.2

78
libatomic_ops.spec Normal file
View File

@ -0,0 +1,78 @@
#
# spec file for package libatomic_ops
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: libatomic_ops
Version: 7.8.0
Release: 0
Summary: A portable library for atomic memory operations
License: GPL-2.0-or-later AND MIT
Group: Development/Languages/C and C++
URL: https://github.com/ivmai/libatomic_ops
Source: https://github.com/ivmai/libatomic_ops/releases/download/v%version/%name-%version.tar.gz
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libtool
BuildRequires: pkg-config
%description
Provides implementations for atomic memory update operations on a
number of architectures. This allows direct use of these in reasonably
portable code. Unlike earlier similar packages, this one explicitly
considers memory barrier semantics, and allows the construction of code
that involves minimum overhead across a variety of architectures.
%package devel
Summary: A portable library for atomic memory operations
Group: Development/Languages/C and C++
Obsoletes: libatomic-ops-devel < %version-%release
Provides: libatomic-ops-devel = %version-%release
%description devel
Provides implementations for atomic memory update operations on a
number of architectures. This allows direct use of these in reasonably
portable code. Unlike earlier similar packages, this one explicitly
considers memory barrier semantics, and allows the construction of code
that involves minimum overhead across a variety of architectures.
%prep
%autosetup
%build
%global _lto_cflags %_lto_cflags -ffat-lto-objects
autoreconf -fiv
%configure --docdir="%_docdir/%name"
%make_build
%install
%make_install
rm -fv "%buildroot/%_libdir"/*.la
cp -av ChangeLog "%buildroot/%_docdir/%name/"
%check
%if !0%{?qemu_user_space_build:1}
%make_build check
%endif
%files devel
%_libdir/libatomic_ops*.a
%_includedir/atomic_ops/
%_includedir/atomic_ops*.h
%_libdir/pkgconfig/atomic_ops.pc
%_docdir/%name/
%changelog