diff --git a/aarch64-support.patch b/aarch64-support.patch new file mode 100644 index 0000000..626f46e --- /dev/null +++ b/aarch64-support.patch @@ -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" diff --git a/gc.changes b/gc.changes index 5522490..bd51013 100644 --- a/gc.changes +++ b/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 diff --git a/gc.spec b/gc.spec index 31f77d3..2c63817 100644 --- a/gc.spec +++ b/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