diff --git a/0001-Add-initial-RISC-V-support.patch b/0001-Add-initial-RISC-V-support.patch deleted file mode 100644 index 798bba46f8c3363795c6cc6ba012fed30c46e856..0000000000000000000000000000000000000000 --- a/0001-Add-initial-RISC-V-support.patch +++ /dev/null @@ -1,52 +0,0 @@ -diff -ur gc-7.6.4.old/include/private/gcconfig.h gc-7.6.4.new/include/private/gcconfig.h ---- gc-7.6.4.old/include/private/gcconfig.h 2018-01-26 13:16:17.000000000 +0000 -+++ gc-7.6.4.new/include/private/gcconfig.h 2018-02-27 09:33:05.840680540 +0000 -@@ -602,6 +602,15 @@ - # define I386 - # define mach_type_known - # endif -+# if defined(__riscv) && defined(LINUX) -+# if __riscv_xlen == 32 -+# define RISCV32 -+# define mach_type_known -+# elif __riscv_xlen == 64 -+# define RISCV64 -+# define mach_type_known -+# endif -+# endif - - /* Feel free to add more clauses here */ - -@@ -2650,6 +2659,32 @@ - # endif - # endif - -+# ifdef RISCV32 -+# define CPP_WORDSZ 32 -+# define MACH_TYPE "RISC-V32" -+# define ALIGNMENT 4 -+# ifdef LINUX -+# define OS_TYPE "LINUX" -+ extern int __data_start[]; -+# define DATASTART ((ptr_t)__data_start) -+# define LINUX_STACKBOTTOM -+# define DYNAMIC_LOADING -+# endif -+# endif /* RISCV32 */ -+ -+# ifdef RISCV64 -+# define CPP_WORDSZ 64 -+# define MACH_TYPE "RISC-V64" -+# define ALIGNMENT 8 -+# ifdef LINUX -+# define OS_TYPE "LINUX" -+ extern int __data_start[]; -+# define DATASTART ((ptr_t)__data_start) -+# define LINUX_STACKBOTTOM -+# define DYNAMIC_LOADING -+# endif -+# endif /* RISCV64 */ -+ - #if defined(__GLIBC__) && !defined(DONT_USE_LIBC_PRIVATES) - /* Use glibc's stack-end marker. */ - # define USE_LIBC_PRIVATES diff --git a/0001-Merge-RISCV-32-64-bit-configurations-definition.patch b/0001-Merge-RISCV-32-64-bit-configurations-definition.patch deleted file mode 100644 index 22368722baacfc0e7b5e15f218a19c39646634f9..0000000000000000000000000000000000000000 --- a/0001-Merge-RISCV-32-64-bit-configurations-definition.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff -ur gc-7.6.4.old/include/private/gcconfig.h gc-7.6.4/include/private/gcconfig.h ---- gc-7.6.4.old/include/private/gcconfig.h 2018-02-27 09:35:01.074561443 +0000 -+++ gc-7.6.4/include/private/gcconfig.h 2018-02-27 09:35:38.571522689 +0000 -@@ -603,13 +603,8 @@ - # define mach_type_known - # endif - # if defined(__riscv) && defined(LINUX) --# if __riscv_xlen == 32 --# define RISCV32 --# define mach_type_known --# elif __riscv_xlen == 64 --# define RISCV64 --# define mach_type_known --# endif -+# define RISCV -+# define mach_type_known - # endif - - /* Feel free to add more clauses here */ -@@ -2659,23 +2654,10 @@ - # endif - # endif - --# ifdef RISCV32 --# define CPP_WORDSZ 32 --# define MACH_TYPE "RISC-V32" --# define ALIGNMENT 4 --# ifdef LINUX --# define OS_TYPE "LINUX" -- extern int __data_start[]; --# define DATASTART ((ptr_t)__data_start) --# define LINUX_STACKBOTTOM --# define DYNAMIC_LOADING --# endif --# endif /* RISCV32 */ -- --# ifdef RISCV64 --# define CPP_WORDSZ 64 --# define MACH_TYPE "RISC-V64" --# define ALIGNMENT 8 -+# ifdef RISCV -+# define MACH_TYPE "RISC-V" -+# define CPP_WORDSZ __riscv_xlen /* 32 or 64 */ -+# define ALIGNMENT (CPP_WORDSZ/8) - # ifdef LINUX - # define OS_TYPE "LINUX" - extern int __data_start[]; -@@ -2683,7 +2665,7 @@ - # define LINUX_STACKBOTTOM - # define DYNAMIC_LOADING - # endif --# endif /* RISCV64 */ -+# endif /* RISCV */ - - #if defined(__GLIBC__) && !defined(DONT_USE_LIBC_PRIVATES) - /* Use glibc's stack-end marker. */ diff --git a/0001-arch-support-loongarch64.patch b/0001-arch-support-loongarch64.patch new file mode 100644 index 0000000000000000000000000000000000000000..f1f854fdc4ddc3b30bc5fb758c5e50152f943dc5 --- /dev/null +++ b/0001-arch-support-loongarch64.patch @@ -0,0 +1,48 @@ +From ffc4cdf5acf8cb83f4bc7b75dcc26fcb96b491bd Mon Sep 17 00:00:00 2001 +From: Liwei Ge +Date: Sun, 18 Dec 2022 23:55:40 +0800 +Subject: [PATCH] arch: support loongarch64 + +--- + include/private/gcconfig.h | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +diff --git a/include/private/gcconfig.h b/include/private/gcconfig.h +index 348255d..a8befa8 100644 +--- a/include/private/gcconfig.h ++++ b/include/private/gcconfig.h +@@ -371,6 +371,10 @@ EXTERN_C_BEGIN + # define AARCH64 + # define mach_type_known + # endif ++# if defined(LINUX) && defined(__loongarch__) ++# define LOONGARCH64 ++# define mach_type_known ++# endif + # if defined(LINUX) && (defined(__arm) || defined(__arm__)) + # define ARM32 + # define mach_type_known +@@ -2354,6 +2358,20 @@ EXTERN_C_BEGIN + # endif + # endif + ++# ifdef LOONGARCH64 ++# define MACH_TYPE "LOONGARCH64" ++# define CPP_WORDSZ 64 ++# define ALIGNMENT 8 ++# ifdef LINUX ++# define OS_TYPE "LINUX" ++# define LINUX_STACKBOTTOM ++# define DYNAMIC_LOADING ++# define SEARCH_FOR_DATA_START ++ extern int _end[]; ++# define DATAEND ((ptr_t)(&_end)) ++# endif ++# endif ++ + # ifdef ARM32 + # if defined(NACL) + # define MACH_TYPE "NACL" +-- +2.27.0 + diff --git a/1000-anolis-gc-7.6.4-add-loongarch.patch b/1000-anolis-gc-7.6.4-add-loongarch.patch deleted file mode 100644 index 26270fc37d1cf9786825bf0ecaee15ef9337bc05..0000000000000000000000000000000000000000 --- a/1000-anolis-gc-7.6.4-add-loongarch.patch +++ /dev/null @@ -1,76 +0,0 @@ -diff -Nurp gc-7.6.4.orig/configure.ac gc-7.6.4/configure.ac ---- gc-7.6.4.orig/configure.ac 2018-01-26 13:16:17.000000000 +0000 -+++ gc-7.6.4/configure.ac 2021-01-19 02:48:12.066406250 +0000 -@@ -184,7 +184,7 @@ case "$THREADS" in - AC_CHECK_LIB(pthread, pthread_self, THREADDLLIBS="-lpthread",,) - case "$host" in - x86-*-linux* | ia64-*-linux* | i586-*-linux* | i686-*-linux* \ -- | x86_64-*-linux* | alpha-*-linux* | powerpc*-*-linux* | sparc*-*-linux*) -+ | x86_64-*-linux* | alpha-*-linux* | powerpc*-*-linux* | sparc*-*-linux* | loongarch*) - AC_DEFINE(GC_LINUX_THREADS) - AC_DEFINE(_REENTRANT) - if test "${enable_parallel_mark}" != no; then -diff -Nurp gc-7.6.4.orig/include/private/gcconfig.h gc-7.6.4/include/private/gcconfig.h ---- gc-7.6.4.orig/include/private/gcconfig.h 2021-01-08 06:32:07.746093750 +0000 -+++ gc-7.6.4/include/private/gcconfig.h 2021-01-19 02:47:16.933593750 +0000 -@@ -182,6 +182,10 @@ - # define VAX - # define mach_type_known - # endif -+# if defined(__loongarch64) -+# define LOONGARCH64 -+# define mach_type_known -+# endif - # if defined(mips) || defined(__mips) || defined(_mips) - # define MIPS - # if defined(nec_ews) || defined(_nec_ews) -@@ -450,6 +454,10 @@ - # define AARCH64 - # define mach_type_known - # endif -+# if defined(FREEBSD) && (defined(__loongarch64) ) -+# define LOONGARCH64 -+# define mach_type_known -+# endif - # if defined(FREEBSD) && (defined(mips) || defined(__mips) || defined(_mips)) - # define MIPS - # define mach_type_known -@@ -1624,6 +1632,26 @@ - # define STACKBOTTOM ((ptr_t)0xfffff000) /* for Encore */ - # endif - -+# ifdef LOONGARCH64 -+# define MACH_TYPE "LOONGARCH64" -+# ifdef LINUX -+# define OS_TYPE "LINUX" -+# define DYNAMIC_LOADING -+ extern int _end[]; -+# pragma weak __data_start -+ extern int __data_start[]; -+# define DATASTART ((ptr_t)(__data_start)) -+# define DATAEND ((ptr_t)(_end)) -+# define CPP_WORDSZ 64 -+# define ALIGNMENT (64/8) -+# ifndef HBLKSIZE -+# define HBLKSIZE 4096 -+# endif -+# define LINUX_STACKBOTTOM -+# endif -+# endif -+ -+ - # ifdef MIPS - # define MACH_TYPE "MIPS" - # ifdef LINUX -diff -Nurp gc-7.6.4.orig/os_dep.c gc-7.6.4/os_dep.c ---- gc-7.6.4.orig/os_dep.c 2018-01-26 13:16:17.000000000 +0000 -+++ gc-7.6.4/os_dep.c 2021-01-19 02:47:16.937500000 +0000 -@@ -3166,7 +3166,7 @@ GC_API GC_push_other_roots_proc GC_CALL - # ifndef SEGV_ACCERR - # define SEGV_ACCERR 2 - # endif --# if defined(AARCH64) || defined(ARM32) || defined(MIPS) -+# if defined(AARCH64) || defined(ARM32) || defined(MIPS) || defined(LOONGARCH64) - # define CODE_OK (si -> si_code == SEGV_ACCERR) - # elif defined(POWERPC) - # define AIM /* Pretend that we're AIM. */ diff --git a/download b/download new file mode 100644 index 0000000000000000000000000000000000000000..16190d2e5472cb160710142c2cee3499d910fbf3 --- /dev/null +++ b/download @@ -0,0 +1 @@ +67a5093e2f9f381bd550aa891d00b54b gc-8.0.4.tar.gz diff --git a/gc-7.6.4.tar.gz b/gc-7.6.4.tar.gz deleted file mode 100644 index 0db65fa729a68bc2b13907a360cbb004f7519a1c..0000000000000000000000000000000000000000 Binary files a/gc-7.6.4.tar.gz and /dev/null differ diff --git a/gc.spec b/gc.spec index bf14c09677c0d1d5a88cf59bd091201b7c35a0ed..28f7826fb86090fe71a38841eb05f2d6bbc6d2ca 100644 --- a/gc.spec +++ b/gc.spec @@ -1,8 +1,8 @@ -%define anolis_release .0.2 +%define anolis_release .0.1 Summary: A garbage collector for C and C++ Name: gc -Version: 7.6.4 -Release: 3%{anolis_release}%{?dist} +Version: 8.0.4 +Release: 7%{anolis_release}%{?dist} License: BSD Url: http://www.hboehm.info/gc/ @@ -11,24 +11,21 @@ Source0: http://www.hboehm.info/gc/gc_source/gc-%{version}%{?pre}.tar.gz ## upstreamable patches ## upstream patches -# Upstream commit 4f7f0eebd24dcde9f2b3ec2cb98913fc39bbdda3. -Patch1: 0001-Add-initial-RISC-V-support.patch -# Upstream commit 3b008f79ee29dbd0d61cf163d20eee21412df95b. -Patch2: 0001-Merge-RISCV-32-64-bit-configurations-definition.patch ## downstream patches # https://bugzilla.redhat.com/show_bug.cgi?id=1551671 Patch100: gc-7.6.4-dont_disable_exceptions.patch -Patch1000: 1000-anolis-gc-7.6.4-add-loongarch.patch +Patch1000: 0001-arch-support-loongarch64.patch BuildRequires: automake libtool BuildRequires: gcc-c++ -BuildRequires: pkgconfig(atomic_ops) >= 7.4 +## https://www.hboehm.info/gc/ says: "Starting with 8.0, libatomic_ops is only required if the compiler does not understand C atomics." +#BuildRequires: pkgconfig(atomic_ops) >= 7.4 BuildRequires: pkgconfig +BuildRequires: make # rpmforge compatibility -Requires: glibc Obsoletes: libgc < %{version}-%{release} Provides: libgc = %{version}-%{release} @@ -36,13 +33,6 @@ Provides: libgc = %{version}-%{release} The Boehm-Demers-Weiser conservative garbage collector can be used as a garbage collecting replacement for C malloc or C++ new. -%package doc -Summary: Documents for %{name} -BuildArch: noarch -Requires: %{name} = %{version}-%{release} -%description doc -Doc pages for %{name}. - %package devel Summary: Libraries and header files for %{name} development Requires: %{name}%{?_isa} = %{version}-%{release} @@ -61,7 +51,7 @@ Provides: libgc-devel = %{version}-%{release} rm -f libtool libtool.m4 autoreconf -i -f -# see bugzilla.redhat.com/689877 +# see https://bugzilla.redhat.com/689877 CPPFLAGS="-DUSE_GET_STACKBASE_FOR_MAIN"; export CPPFLAGS %configure \ @@ -74,11 +64,11 @@ CPPFLAGS="-DUSE_GET_STACKBASE_FOR_MAIN"; export CPPFLAGS %endif --enable-threads=posix -%{make_build} +%make_build %install -%{make_install} +%make_install install -p -D -m644 doc/gc.man %{buildroot}%{_mandir}/man3/gc.3 @@ -106,11 +96,9 @@ make check %{?arch_ignore} %{_libdir}/libgc.so.1* %{_libdir}/libgccpp.so.1* -%files doc -%doc doc/README.environment doc/README.linux -%doc doc/*.html - %files devel +%doc doc/README.environment doc/README.linux +%doc doc/*.md %{_includedir}/gc.h %{_includedir}/gc_cpp.h %{_includedir}/gc/ @@ -122,11 +110,40 @@ make check %{?arch_ignore} %changelog -* Sun Jul 17 2022 DengXiewei - 7.6.4-3.0.2 -- Add doc sub package +* Sun Dec 18 2022 Liwei Ge - 8.0.4-7.0.1 +- Support loongarch64 + +* Mon Aug 09 2021 Mohan Boddu - 8.0.4-7 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Thu Apr 15 2021 Mohan Boddu - 8.0.4-6 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Tue Jan 26 2021 Fedora Release Engineering - 8.0.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 8.0.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jan 28 2020 Fedora Release Engineering - 8.0.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jan 15 2020 Rex Dieter - 8.0.4-2 +- drop libatomic_ops dep + +* Wed Jan 15 2020 Rex Dieter - 8.0.4-1 +- 8.0.4 +- %%build: --with-libatomic-ops=yes + +* Thu Jul 25 2019 Fedora Release Engineering - 7.6.4-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Jan 31 2019 Fedora Release Engineering - 7.6.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild -* Wed Nov 17 2021 Liwei Ge - 7.6.4-3.0.1 -- Support loongarch64 platform +* Fri Jul 13 2018 Fedora Release Engineering - 7.6.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Wed Mar 14 2018 Rex Dieter - 7.6.4-3 - gc: Effectively overrides -fexceptions flag (#1551671)