This commit is contained in:
Ertuğrul Erata
2015-05-17 20:32:22 +03:00
parent f42f3a5eeb
commit 6de9e785aa
12 changed files with 566 additions and 33 deletions
+28 -31
View File
@@ -1,34 +1,31 @@
(0001/188) Calculating build dep of busybox
(0002/188) Calculating build dep of libuser
(0003/188) Calculating build dep of less
(0004/188) Calculating build dep of libpipeline
(0005/188) Calculating build dep of liblogging
(0006/188) Calculating build dep of alternatives
(0007/188) Calculating build dep of kbd
(0008/188) Calculating build dep of spidermonkey ---> borks in 'check-devel'
(0009/188) Calculating build dep of sysvinit
(0010/188) Calculating build dep of findutils
(0011/188) Calculating build dep of rsyslog ---> borks in 'libX11-devel'
(0012/188) Calculating build dep of popt
(0013/188) Calculating build dep of gdbm
(0014/188) Calculating build dep of python-pyliblzma
(0015/188) Calculating build dep of pisilinux-python
(0016/188) Calculating build dep of mingetty
(0017/188) Calculating build dep of scons
(0018/188) Calculating build dep of grub2
(0019/188) Calculating build dep of snappy
(0020/188) Calculating build dep of gnuconfig
(0021/188) Calculating build dep of dejavu-fonts ---> borks in 'fontforge'
(0022/188) Calculating build dep of os-prober
(0023/188) Calculating build dep of gmp ---> borks in 'gc-devel'
(0024/188) Calculating build dep of baselayout
(0025/188) Calculating build dep of swig
(0026/188) Calculating build dep of flex ---> borks in 'libX11-devel'
(0001/190) Calculating build dep of busybox
(0002/190) Calculating build dep of libuser
(0003/190) Calculating build dep of less
(0004/190) Calculating build dep of libpipeline
(0005/190) Calculating build dep of liblogging
(0006/190) Calculating build dep of alternatives
(0007/190) Calculating build dep of kbd
(0008/190) Calculating build dep of spidermonkey ---> borks in 'check-devel'
(0009/190) Calculating build dep of sysvinit
(0010/190) Calculating build dep of gc
(0011/190) Calculating build dep of findutils ---> borks in 'libX11-devel'
(0012/190) Calculating build dep of rsyslog
(0013/190) Calculating build dep of popt
(0014/190) Calculating build dep of gdbm
(0015/190) Calculating build dep of python-pyliblzma
(0016/190) Calculating build dep of pisilinux-python
(0017/190) Calculating build dep of mingetty
(0018/190) Calculating build dep of scons
(0019/190) Calculating build dep of grub2
(0020/190) Calculating build dep of snappy
(0021/190) Calculating build dep of gnuconfig
(0022/190) Calculating build dep of dejavu-fonts ---> borks in 'fontforge'
(0023/190) Calculating build dep of os-prober
(0024/190) Calculating build dep of gmp ---> borks in 'fontforge'
(0025/190) Calculating build dep of baselayout
(0026/190) Calculating build dep of swig
+161
View File
@@ -16772,6 +16772,82 @@
</Update>
</History>
</SpecFile>
<SpecFile>
<Source>
<Name>libatomic_ops</Name>
<Homepage>https://github.com/ivmai/libatomic_ops/</Homepage>
<Packager>
<Name>Pisi Linux Admins</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>GPLv2</License>
<License>MIT</License>
<IsA>library</IsA>
<PartOf>system.devel</PartOf>
<Summary xml:lang="en">Atomic memory update operations library</Summary>
<Summary xml:lang="tr">Atomik bellek işlemleri kütüphanesi</Summary>
<Description xml:lang="en">libatomic_ops provides implementations for atomic memory update operations on a number of architectures. This allows direct use of these in reasonably portable code.</Description>
<Description xml:lang="tr">libatomic_ops, çeşitli mimarilerde atomik bellek işlemleri yapılmasını sağlayarak taşınabilir kod yazma olanağı veren bir kütüphanedir.</Description>
<Archive type="targz" sha1sum="9ffb32cbcfc6bb455a5b6ed8f0e1f2a0618db192">https://github.com/ivmai/libatomic_ops/archive/libatomic_ops-7_4_2.tar.gz</Archive>
<SourceURI>system/devel/libatomic_ops/pspec.xml</SourceURI>
</Source>
<Package>
<Name>libatomic_ops</Name>
<Files>
<Path fileType="library">/usr/lib</Path>
<Path fileType="doc">/usr/share/doc</Path>
</Files>
</Package>
<Package>
<Name>libatomic_ops-devel</Name>
<Summary xml:lang="en">libatomic_ops için geliştirme dosyaları</Summary>
<Summary>libatomic_ops için geliştirme dosyaları</Summary>
<RuntimeDependencies>
<Dependency release="5">libatomic_ops</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="header">/usr/include</Path>
<Path fileType="data">/usr/lib/pkgconfig</Path>
</Files>
</Package>
<History>
<Update release="5">
<Date>2014-12-01</Date>
<Version>7.4.2</Version>
<Comment>Version bump.</Comment>
<Name>Yusuf Aydemir</Name>
<Email>yusuf.aydemir@pisilinux.org</Email>
</Update>
<Update release="4">
<Date>2014-01-02</Date>
<Version>7.2d</Version>
<Comment>Bump to usable version.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2014-01-01</Date>
<Version>1.2</Version>
<Comment>Rebuild for conflicting files.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2013-10-28</Date>
<Version>1.2</Version>
<Comment>Rebuild.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2012-10-13</Date>
<Version>1.2</Version>
<Comment>First release</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
</History>
</SpecFile>
<SpecFile>
<Source>
<Name>btyacc</Name>
@@ -17729,6 +17805,91 @@
</Update>
</History>
</SpecFile>
<SpecFile>
<Source>
<Name>gc</Name>
<Homepage>http://www.hpl.hp.com/personal/Hans_Boehm/gc</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>BSD</License>
<License>GPLv2</License>
<IsA>library</IsA>
<PartOf>system.devel</PartOf>
<Summary xml:lang="en">A garbage collector for C and C++</Summary>
<Summary xml:lang="tr">C ve C++ için bir çöp toplama kitaplığı</Summary>
<Summary xml:lang="pl">Ostrożny odśmiecacz dla C i C++</Summary>
<Description xml:lang="en">The Boehm-Demers-Weiser conservative garbage collector can be used as a garbage collecting replacement for C malloc or C++ new.</Description>
<Description xml:lang="tr">gc, C malloc veya C++ new yerine kullanılabilecek, Boehm-Demers-Weiser çöp toplayıcısı kitaplığıdır.</Description>
<Description xml:lang="pl">Boehm&apos;s GC jest odśmiecającym alokatorem pamięci, który został zaprojektowany z zamiarem używania jako zastępcza wtyczka dla funkcji C malloc.</Description>
<Archive type="targz" sha1sum="cd4a54620c38a2c361b3ee99dd134dbffb57c313">http://www.hboehm.info/gc/gc_source/gc-7.4.2.tar.gz</Archive>
<BuildDependencies>
<Dependency>libatomic_ops-devel</Dependency>
</BuildDependencies>
<Patches>
<Patch level="1">noelision.patch</Patch>
</Patches>
<SourceURI>system/devel/gc/pspec.xml</SourceURI>
</Source>
<Package>
<Name>gc</Name>
<Files>
<Path fileType="library">/usr/lib</Path>
<Path fileType="doc">/usr/share/doc</Path>
</Files>
</Package>
<Package>
<Name>gc-devel</Name>
<Summary xml:lang="en">Development files for gc</Summary>
<Summary xml:lang="tr">gc için geliştirme dosyaları</Summary>
<Summary xml:lang="pl">Pliki nagłówkowe gc</Summary>
<RuntimeDependencies>
<Dependency release="5">gc</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="header">/usr/include/</Path>
<Path fileType="data">/usr/lib/pkgconfig</Path>
</Files>
</Package>
<History>
<Update release="5">
<Date>2014-12-01</Date>
<Version>7.4.2</Version>
<Comment>Version bump.</Comment>
<Name>Yusuf Aydemir</Name>
<Email>yusuf.aydemir@pisilinux.org</Email>
</Update>
<Update release="4">
<Date>2014-05-24</Date>
<Version>7.2d</Version>
<Comment>Rebuild for gcc.</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2014-01-02</Date>
<Version>7.2d</Version>
<Comment>Remove libatomic_ops-devel package, we have standalone one.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2013-08-27</Date>
<Version>7.2d</Version>
<Comment>Clean gc.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2012-11-02</Date>
<Version>7.2d</Version>
<Comment>First release</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
</History>
</SpecFile>
<SpecFile>
<Source>
<Name>chrpath</Name>
+1 -1
View File
@@ -1 +1 @@
0ca4cdfea36b833daddaf6a74b9135fd328e375e
105044ac56664b653d160aff349df8f570ffd888
BIN
View File
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
d28c2f9f323d2b5367fc765dde97642215a3384f
721ba29f63b8b92536452b91b72c75324de5f6b6
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools
from pisi.actionsapi import get
def setup():
pisitools.flags.add("-DUSE_GET_STACKBASE_FOR_MAIN")
shelltools.system ("rm -rf libtool libtool.m4")
autotools.autoreconf("-fi")
autotools.configure("--disable-static \
--enable-cplusplus \
--enable-large-config \
--enable-threads=posix")
def build():
autotools.make()
def check():
autotools.make("check")
def install():
autotools.rawInstall("DESTDIR=%s" % get.installDIR())
pisitools.dodoc("ChangeLog", "doc/README.linux", "doc/*.html")
pisitools.removeDir("/usr/share/gc")
+127
View File
@@ -0,0 +1,127 @@
diff --git c/include/private/gc_priv.h w/include/private/gc_priv.h
index 0ad92fc..b877fac 100644
--- c/include/private/gc_priv.h
+++ w/include/private/gc_priv.h
@@ -2368,6 +2368,7 @@ GC_INNER ptr_t GC_store_debug_info(ptr_t p, word sz, const char *str,
/* GC_notify_all_builder() is called when GC_fl_builder_count */
/* reaches 0. */
+ GC_INNER void GC_setup_mark_lock(void);
GC_INNER void GC_acquire_mark_lock(void);
GC_INNER void GC_release_mark_lock(void);
GC_INNER void GC_notify_all_builder(void);
diff --git c/include/private/gcconfig.h w/include/private/gcconfig.h
index c753cc2..b5ed075 100644
--- c/include/private/gcconfig.h
+++ w/include/private/gcconfig.h
@@ -1357,6 +1357,11 @@
# define PREFETCH_FOR_WRITE(x) \
__asm__ __volatile__ ("prefetchw %0" : : "m"(*(char *)(x)))
# endif
+# if defined(__GLIBC__)
+ /* Workaround lock elision implementation for some glibc. */
+# define GLIBC_2_19_TSX_BUG
+# include <gnu/libc-version.h> /* for gnu_get_libc_version() */
+# endif
# endif
# ifdef CYGWIN32
# define OS_TYPE "CYGWIN32"
@@ -2257,6 +2262,11 @@
/* FIXME: This seems to be fixed in GLibc v2.14. */
# define GETCONTEXT_FPU_EXCMASK_BUG
# endif
+# if defined(__GLIBC__)
+ /* Workaround lock elision implementation for some glibc. */
+# define GLIBC_2_19_TSX_BUG
+# include <gnu/libc-version.h> /* for gnu_get_libc_version() */
+# endif
# endif
# ifdef DARWIN
# define OS_TYPE "DARWIN"
diff --git c/include/private/pthread_support.h w/include/private/pthread_support.h
index 525a9aa..017f194 100644
--- c/include/private/pthread_support.h
+++ w/include/private/pthread_support.h
@@ -148,6 +148,8 @@ GC_INNER_PTHRSTART GC_thread GC_start_rtn_prepare_thread(
struct GC_stack_base *sb, void *arg);
GC_INNER_PTHRSTART void GC_thread_exit_proc(void *);
+GC_INNER void GC_setup_mark_lock(void);
+
#endif /* GC_PTHREADS && !GC_WIN32_THREADS */
#endif /* GC_PTHREAD_SUPPORT_H */
diff --git c/misc.c w/misc.c
index df434a1..3aca41d 100644
--- c/misc.c
+++ w/misc.c
@@ -875,6 +875,9 @@ GC_API void GC_CALL GC_init(void)
/* else */ InitializeCriticalSection (&GC_allocate_ml);
}
# endif /* GC_WIN32_THREADS */
+# if defined(GC_PTHREADS) && !defined(GC_WIN32_THREADS)
+ GC_setup_mark_lock();
+# endif /* GC_PTHREADS */
# if (defined(MSWIN32) || defined(MSWINCE)) && defined(THREADS)
InitializeCriticalSection(&GC_write_cs);
# endif
diff --git c/pthread_support.c w/pthread_support.c
index c00b93d..8a7c50b 100644
--- c/pthread_support.c
+++ w/pthread_support.c
@@ -1979,6 +1979,55 @@ GC_INNER void GC_lock(void)
static pthread_cond_t builder_cv = PTHREAD_COND_INITIALIZER;
+#ifdef GLIBC_2_19_TSX_BUG
+ /* Parse string like <major>[.<minor>[<tail>]] and return major value. */
+ static int parse_version(int *pminor, const char *pverstr) {
+ char *endp;
+ unsigned long value = strtoul(pverstr, &endp, 10);
+ int major = (int)value;
+
+ if (major < 0 || (char *)pverstr == endp || (unsigned)major != value) {
+ /* Parse error */
+ return -1;
+ }
+ if (*endp != '.') {
+ /* No minor part. */
+ *pminor = -1;
+ } else {
+ value = strtoul(endp + 1, &endp, 10);
+ *pminor = (int)value;
+ if (*pminor < 0 || (unsigned)(*pminor) != value) {
+ return -1;
+ }
+ }
+ return major;
+ }
+#endif /* GLIBC_2_19_TSX_BUG */
+
+GC_INNER void GC_setup_mark_lock(void)
+{
+# ifdef GLIBC_2_19_TSX_BUG
+ pthread_mutexattr_t mattr;
+ int glibc_minor = -1;
+ int glibc_major = parse_version(&glibc_minor, gnu_get_libc_version());
+
+ if (glibc_major > 2 || (glibc_major == 2 && glibc_minor >= 19)) {
+ /* TODO: disable this workaround for glibc with fixed TSX */
+ /* This disables lock elision to workaround a bug in glibc 2.19+ */
+ if (0 != pthread_mutexattr_init(&mattr)) {
+ ABORT("pthread_mutexattr_init failed");
+ }
+ if (0 != pthread_mutexattr_settype(&mattr, PTHREAD_MUTEX_NORMAL)) {
+ ABORT("pthread_mutexattr_settype failed");
+ }
+ if (0 != pthread_mutex_init(&mark_mutex, &mattr)) {
+ ABORT("pthread_mutex_init failed");
+ }
+ pthread_mutexattr_destroy(&mattr);
+ }
+# endif
+}
+
GC_INNER void GC_acquire_mark_lock(void)
{
GC_ASSERT(GC_mark_lock_holder != NUMERIC_THREAD_ID(pthread_self()));
+82
View File
@@ -0,0 +1,82 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>gc</Name>
<Homepage>http://www.hpl.hp.com/personal/Hans_Boehm/gc</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>BSD</License>
<License>GPLv2</License>
<IsA>library</IsA>
<Summary>A garbage collector for C and C++</Summary>
<Description>The Boehm-Demers-Weiser conservative garbage collector can be used as a garbage collecting replacement for C malloc or C++ new.</Description>
<Archive sha1sum="cd4a54620c38a2c361b3ee99dd134dbffb57c313" type="targz">http://www.hboehm.info/gc/gc_source/gc-7.4.2.tar.gz</Archive>
<BuildDependencies>
<Dependency>libatomic_ops-devel</Dependency>
</BuildDependencies>
<Patches>
<Patch level="1">noelision.patch</Patch>
</Patches>
</Source>
<Package>
<Name>gc</Name>
<Files>
<Path fileType="library">/usr/lib</Path>
<Path fileType="doc">/usr/share/doc</Path>
</Files>
</Package>
<Package>
<Name>gc-devel</Name>
<Summary>Development files for gc</Summary>
<RuntimeDependencies>
<Dependency release="current">gc</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="header">/usr/include/</Path>
<Path fileType="data">/usr/lib/pkgconfig</Path>
</Files>
</Package>
<History>
<Update release="5">
<Date>2014-12-01</Date>
<Version>7.4.2</Version>
<Comment>Version bump.</Comment>
<Name>Yusuf Aydemir</Name>
<Email>yusuf.aydemir@pisilinux.org</Email>
</Update>
<Update release="4">
<Date>2014-05-24</Date>
<Version>7.2d</Version>
<Comment>Rebuild for gcc.</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2014-01-02</Date>
<Version>7.2d</Version>
<Comment>Remove libatomic_ops-devel package, we have standalone one.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2013-08-27</Date>
<Version>7.2d</Version>
<Comment>Clean gc.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2012-11-02</Date>
<Version>7.2d</Version>
<Comment>First release</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
</History>
</PISI>
+21
View File
@@ -0,0 +1,21 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>gc</Name>
<Summary xml:lang="tr">C ve C++ için bir çöp toplama kitaplığı</Summary>
<Summary xml:lang="pl">Ostrożny odśmiecacz dla C i C++</Summary>
<Description xml:lang="tr">gc, C malloc veya C++ new yerine kullanılabilecek, Boehm-Demers-Weiser çöp toplayıcısı kitaplığıdır.</Description>
<Description xml:lang="pl">Boehm's GC jest odśmiecającym alokatorem pamięci, który został zaprojektowany z zamiarem używania jako zastępcza wtyczka dla funkcji C malloc.</Description>
</Source>
<Package>
<Name>gc-devel</Name>
<Summary xml:lang="tr">gc için geliştirme dosyaları</Summary>
<Summary xml:lang="pl">Pliki nagłówkowe gc</Summary>
</Package>
<Package>
<Name>libatomic_ops-devel</Name>
<Summary xml:lang="tr">Atomik bellek güncelleme işlemleri kitaplığı</Summary>
</Package>
</PISI>
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/copyleft/gpl.txt.
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools
from pisi.actionsapi import get
def setup():
shelltools.system("./autogen.sh")
autotools.configure("--prefix=/usr")
def build():
autotools.make()
def install():
autotools.rawInstall("DESTDIR=%s" % get.installDIR())
# move docs into proper place
pisitools.domove("/usr/share/libatomic_ops/", "/usr/share/doc/%s" % get.srcNAME())
+77
View File
@@ -0,0 +1,77 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>libatomic_ops</Name>
<Homepage>https://github.com/ivmai/libatomic_ops/</Homepage>
<Packager>
<Name>Pisi Linux Admins</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>GPLv2</License>
<License>MIT</License>
<IsA>library</IsA>
<Summary>Atomic memory update operations library</Summary>
<Description>libatomic_ops provides implementations for atomic memory update operations on a number of architectures. This allows direct use of these in reasonably portable code.</Description>
<Archive sha1sum="9ffb32cbcfc6bb455a5b6ed8f0e1f2a0618db192" type="targz">https://github.com/ivmai/libatomic_ops/archive/libatomic_ops-7_4_2.tar.gz</Archive>
<!-- look gc package version before version bump -->
</Source>
<Package>
<Name>libatomic_ops</Name>
<Files>
<Path fileType="library">/usr/lib</Path>
<Path fileType="doc">/usr/share/doc</Path>
</Files>
</Package>
<Package>
<Name>libatomic_ops-devel</Name>
<Summary>libatomic_ops için geliştirme dosyaları</Summary>
<RuntimeDependencies>
<Dependency release="current">libatomic_ops</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="header">/usr/include</Path>
<Path fileType="data">/usr/lib/pkgconfig</Path>
</Files>
</Package>
<History>
<Update release="5">
<Date>2014-12-01</Date>
<Version>7.4.2</Version>
<Comment>Version bump.</Comment>
<Name>Yusuf Aydemir</Name>
<Email>yusuf.aydemir@pisilinux.org</Email>
</Update>
<Update release="4">
<Date>2014-01-02</Date>
<Version>7.2d</Version>
<Comment>Bump to usable version.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2014-01-01</Date>
<Version>1.2</Version>
<Comment>Rebuild for conflicting files.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2013-10-28</Date>
<Version>1.2</Version>
<Comment>Rebuild.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2012-10-13</Date>
<Version>1.2</Version>
<Comment>First release</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
</History>
</PISI>
@@ -0,0 +1,13 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>libatomic_ops</Name>
<Summary xml:lang="tr">Atomik bellek işlemleri kütüphanesi</Summary>
<Description xml:lang="tr">libatomic_ops, çeşitli mimarilerde atomik bellek işlemleri yapılmasını sağlayarak taşınabilir kod yazma olanağı veren bir kütüphanedir.</Description>
</Source>
<Package>
<Name>libatomic_ops-devel</Name>
<Summary>libatomic_ops için geliştirme dosyaları</Summary>
</Package>
</PISI>