From 2b34eecbe7229ff199abafe995418a765c646cd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Mon, 14 Oct 2024 14:48:52 +0200 Subject: [PATCH] Sync from SUSE:ALP:Source:Standard:1.0 libatomic_ops revision 3e4e56015d683797faf1f1256677792c --- .gitattributes | 23 ++++ libatomic_ops-7.8.0.tar.gz | 3 + libatomic_ops.changes | 234 +++++++++++++++++++++++++++++++++++++ libatomic_ops.spec | 78 +++++++++++++ 4 files changed, 338 insertions(+) create mode 100644 .gitattributes create mode 100644 libatomic_ops-7.8.0.tar.gz create mode 100644 libatomic_ops.changes create mode 100644 libatomic_ops.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fecc750 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/libatomic_ops-7.8.0.tar.gz b/libatomic_ops-7.8.0.tar.gz new file mode 100644 index 0000000..c6506e0 --- /dev/null +++ b/libatomic_ops-7.8.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15676e7674e11bda5a7e50a73f4d9e7d60452271b8acf6fd39a71fefdf89fa31 +size 526300 diff --git a/libatomic_ops.changes b/libatomic_ops.changes new file mode 100644 index 0000000..e6a1c40 --- /dev/null +++ b/libatomic_ops.changes @@ -0,0 +1,234 @@ +------------------------------------------------------------------- +Tue Mar 28 08:09:48 UTC 2023 - Jan Engelhardt + +- 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 + +- 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 + +- 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 + +- Use FAT LTO objects in order to provide proper static library. + +------------------------------------------------------------------- +Fri Mar 15 09:40:59 UTC 2019 - Jan Engelhardt + +- Update to new upstream release 7.6.10 + * Fix compiler warnings + +------------------------------------------------------------------- +Tue Jan 8 02:26:25 UTC 2019 - Jan Engelhardt + +- 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 + diff --git a/libatomic_ops.spec b/libatomic_ops.spec new file mode 100644 index 0000000..e41ff6a --- /dev/null +++ b/libatomic_ops.spec @@ -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