Accepting request 176639 from devel:libraries:c_c++
Make use of external libatomic_ops -- openSUSE has it in a separate source package (forwarded request 176614 from jengelh) OBS-URL: https://build.opensuse.org/request/show/176639 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gc?expand=0&rev=28
This commit is contained in:
commit
c49f004bbb
69
aarch64-support.patch
Normal file
69
aarch64-support.patch
Normal file
@ -0,0 +1,69 @@
|
||||
Index: gc-7.2/include/private/gcconfig.h
|
||||
===================================================================
|
||||
--- gc-7.2.orig/include/private/gcconfig.h
|
||||
+++ gc-7.2/include/private/gcconfig.h
|
||||
@@ -70,6 +70,13 @@
|
||||
# define I386
|
||||
# define mach_type_known
|
||||
# endif
|
||||
+# if defined(__aarch64__)
|
||||
+# define AARCH64
|
||||
+# if !defined(LINUX)
|
||||
+# define NOSYS
|
||||
+# define mach_type_known
|
||||
+# endif
|
||||
+# endif
|
||||
# if defined(__arm) || defined(__arm__) || defined(__thumb__)
|
||||
# define ARM32
|
||||
# if !defined(LINUX) && !defined(NETBSD) && !defined(OPENBSD) \
|
||||
@@ -250,6 +257,10 @@
|
||||
# define IA64
|
||||
# define mach_type_known
|
||||
# endif
|
||||
+# if defined(LINUX) && defined(__aarch64__)
|
||||
+# define AARCH64
|
||||
+# define mach_type_known
|
||||
+# endif
|
||||
# if defined(LINUX) && (defined(__arm) || defined(__arm__))
|
||||
# define ARM32
|
||||
# define mach_type_known
|
||||
@@ -537,6 +548,7 @@
|
||||
/* running Amdahl UTS4 */
|
||||
/* S390 ==> 390-like machine */
|
||||
/* running LINUX */
|
||||
+ /* AARCH64 ==> ARM AArch64 */
|
||||
/* ARM32 ==> Intel StrongARM */
|
||||
/* IA64 ==> Intel IPF */
|
||||
/* (e.g. Itanium) */
|
||||
@@ -1899,6 +1911,31 @@
|
||||
# endif
|
||||
# endif
|
||||
|
||||
+# ifdef AARCH64
|
||||
+# define CPP_WORDSZ 64
|
||||
+# define MACH_TYPE "AARCH64"
|
||||
+# define ALIGNMENT 8
|
||||
+# ifndef HBLKSIZE
|
||||
+# define HBLKSIZE 4096
|
||||
+# endif
|
||||
+# ifdef LINUX
|
||||
+# define OS_TYPE "LINUX"
|
||||
+# define LINUX_STACKBOTTOM
|
||||
+# define DYNAMIC_LOADING
|
||||
+ extern int __data_start[];
|
||||
+# define DATASTART ((ptr_t)__data_start)
|
||||
+ extern char _end[];
|
||||
+# define DATAEND ((ptr_t)(&_end))
|
||||
+# endif
|
||||
+# ifdef NOSYS
|
||||
+ /* __data_start is usually defined in the target linker script. */
|
||||
+ extern int __data_start[];
|
||||
+# define DATASTART ((ptr_t)__data_start)
|
||||
+ extern void *__stack_base__;
|
||||
+# define STACKBOTTOM ((ptr_t)__stack_base__)
|
||||
+# endif
|
||||
+# endif
|
||||
+
|
||||
# ifdef ARM32
|
||||
# define CPP_WORDSZ 32
|
||||
# define MACH_TYPE "ARM32"
|
22
gc.changes
22
gc.changes
@ -1,3 +1,25 @@
|
||||
-------------------------------------------------------------------
|
||||
Sun May 26 20:09:26 UTC 2013 - jengelh@inai.de
|
||||
|
||||
- Make use of external libatomic_ops --
|
||||
openSUSE has it in a separate source package
|
||||
- Fix version: 7.2d is not a prerelease, so there is no need to
|
||||
call it 7.1*
|
||||
- More portable make install call; more robust file list
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat May 25 19:16:48 UTC 2013 - root@localhost
|
||||
|
||||
- libatomic_ops-aarch64.patch: update makefile to install missing headers,
|
||||
don't use AO_EXPECT_FALSE.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat May 18 08:10:09 UTC 2013 - schwab@suse.de
|
||||
|
||||
- aarch64-support.patch: aarch64 support for gc from upstream
|
||||
- libatomic_ops-aarch64.patch: aarch64 support for libatomic_ops from
|
||||
upstream add-aarch64-support branch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 25 14:50:51 UTC 2013 - dmueller@suse.com
|
||||
|
||||
|
66
gc.spec
66
gc.spec
@ -17,19 +17,21 @@
|
||||
|
||||
|
||||
Name: gc
|
||||
Version: 7.1.9.6
|
||||
Version: 7.2d
|
||||
Release: 0
|
||||
%define src_ver 7.2d
|
||||
Url: http://www.hpl.hp.com/personal/Hans_Boehm/gc/
|
||||
Summary: A garbage collector for C and C++
|
||||
License: BSD-3-Clause
|
||||
Group: Development/Libraries/C and C++
|
||||
Source: http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/%{name}-%{src_ver}.tar.gz
|
||||
|
||||
Source: http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/%name-%version.tar.gz
|
||||
Patch1: aarch64-support.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
BuildRequires: autoconf >= 2.64
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: libtool
|
||||
BuildRequires: pkg-config
|
||||
BuildRequires: pkgconfig(atomic_ops)
|
||||
|
||||
%description
|
||||
The Boehm-Demers-Weiser conservative garbage collector can be used as a
|
||||
@ -71,22 +73,9 @@ deallocating memory that is no longer useful. The collector
|
||||
automatically recycles memory when it determines that it can no longer
|
||||
be otherwise accessed.
|
||||
|
||||
%package -n libatomic_ops-devel
|
||||
Summary: Atomic memory update operations
|
||||
Group: Development/Libraries/C and C++
|
||||
Provides: libatomic_ops-static = %{version}-%{release}
|
||||
Obsoletes: libatomic-ops-devel <= 1.2
|
||||
Provides: libatomic-ops-devel = %{version}
|
||||
|
||||
%description -n libatomic_ops-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
|
||||
%setup -q -n %{name}-7.2
|
||||
%patch1 -p1
|
||||
|
||||
%build
|
||||
# refresh auto*/libtool to purge rpaths
|
||||
@ -103,25 +92,18 @@ CPPFLAGS="-DUSE_GET_STACKBASE_FOR_MAIN"; export CPPFLAGS
|
||||
--enable-large-config \
|
||||
--enable-threads=posix \
|
||||
--enable-parallel-mark \
|
||||
--with-libatomic-ops=no
|
||||
--with-libatomic-ops=yes
|
||||
# --with-libatomic-ops=yes means to use the system library
|
||||
|
||||
make %{?_smp_mflags}
|
||||
make %{?_smp_mflags} -C libatomic_ops
|
||||
|
||||
%install
|
||||
|
||||
%makeinstall
|
||||
%makeinstall -C libatomic_ops
|
||||
|
||||
rm -rf $RPM_BUILD_ROOT/usr/share/gc # docs
|
||||
rm -rf %{buildroot}%{_datadir}/libatomic_ops/{COPYING,*.txt}
|
||||
rm -f %{buildroot}%{_libdir}/*.la
|
||||
make install DESTDIR="%buildroot"
|
||||
rm -Rf "%buildroot/%_datadir/gc" "%buildroot/%_libdir"/*.la
|
||||
|
||||
%check
|
||||
%if ! 0%{?qemu_user_space_build}
|
||||
%if !0%{?qemu_user_space_build}
|
||||
make check
|
||||
# fails on i586
|
||||
make check -C libatomic_ops ||:
|
||||
%endif
|
||||
|
||||
%post -n libgc1 -p /sbin/ldconfig
|
||||
@ -131,27 +113,17 @@ make check -C libatomic_ops ||:
|
||||
%files -n libgc1
|
||||
%defattr(-, root, root)
|
||||
%doc README.QUICK doc/README.*
|
||||
%{_libdir}/lib*.so.*
|
||||
%_libdir/libcord.so.1*
|
||||
%_libdir/libgc*.so.1*
|
||||
|
||||
%files devel
|
||||
%defattr(-, root, root)
|
||||
%doc doc/[a-z]*
|
||||
%{_libdir}/lib*.so
|
||||
%{_libdir}/pkgconfig/bdw-gc.pc
|
||||
%{_includedir}/gc.h
|
||||
%{_includedir}/gc_cpp.h
|
||||
%{_includedir}/gc
|
||||
|
||||
%files -n libatomic_ops-devel
|
||||
%defattr(-,root,root,-)
|
||||
%doc libatomic_ops/AUTHORS libatomic_ops/ChangeLog libatomic_ops/COPYING libatomic_ops/NEWS libatomic_ops/README
|
||||
%doc libatomic_ops/doc/*.txt
|
||||
%{_libdir}/pkgconfig/atomic_ops.pc
|
||||
%{_includedir}/atomic_ops.h
|
||||
%{_includedir}/atomic_ops_malloc.h
|
||||
%{_includedir}/atomic_ops_stack.h
|
||||
%{_includedir}/atomic_ops/
|
||||
%{_libdir}/libatomic_ops.a
|
||||
%{_libdir}/libatomic_ops_gpl.a
|
||||
%_libdir/libcord.so
|
||||
%_libdir/libgc*.so
|
||||
%_libdir/pkgconfig/bdw-gc.pc
|
||||
%_includedir/gc.h
|
||||
%_includedir/gc_cpp.h
|
||||
%_includedir/gc/
|
||||
|
||||
%changelog
|
||||
|
Loading…
Reference in New Issue
Block a user