input/gc.spec
raw · 4.7 KiB
Name: gc
Version: 8.2.12
Release: 1%{?dist}
Summary: Garbage collector for C and C++
Summary(ru): Сборщик мусора для C и C++
License: MIT
URL: https://www.hboehm.info/gc/
Source0: https://github.com/ivmai/bdwgc/releases/download/v%{version}/gc-%{version}.tar.gz
Packager: NICE SOFT GROUP LLC (ООО "НАЙС СОФТ ГРУПП") 5024245440 <niceos@ncsgp.ru>
Vendor: NiceSOFT
Distribution: NiceOS.Core
BugURL: https://bugs.niceos.ru/
VCS: https://specs.niceos.ru/rmps/%{name}
BuildRequires: automake
BuildRequires: gcc-c++
BuildRequires: libtool
BuildRequires: make
BuildRequires: pkgconfig
BuildRequires: libstdc++-devel
Obsoletes: libgc < %{version}-%{release}
Provides: libgc = %{version}-%{release}
%description
The Boehm-Demers-Weiser conservative garbage collector (BDWGC) is a C/C++
library that can replace malloc/free or C++ new/delete with automatic memory
reclamation. It can also be used as a leak detector for C/C++ programs.
%description -l ru
Boehm-Demers-Weiser (BDWGC) — это библиотека сборщика мусора для C/C++, которая
может использоваться как замена malloc/free или C++ new/delete с автоматическим
освобождением памяти. Также может применяться как детектор утечек для программ
на C/C++.
%package devel
Summary: Development files for the BDWGC memory management library
Summary(ru): Файлы разработки для библиотеки управления памятью BDWGC
Requires: %{name}%{?_isa} = %{version}-%{release}
Obsoletes: libgc-devel < %{version}-%{release}
Provides: libgc-devel = %{version}-%{release}
%description devel
Header files, pkg-config metadata, and symlinks required to build applications
against the BDWGC (libgc) libraries.
%description -l ru devel
Заголовочные файлы, метаданные pkg-config и симлинки, необходимые для сборки
приложений, использующих библиотеки BDWGC (libgc).
%prep
%autosetup -n gc-%{version} -p1
%build
# RU: Обновление autotools для предотвращения rpath.
# EN: Regenerate autotools to avoid rpath usage.
rm -f libtool libtool.m4
autoreconf -i -f
CPPFLAGS="-DUSE_GET_STACKBASE_FOR_MAIN -DDONT_UNDEF_EXCEPTIONS $CPPFLAGS"
export CPPFLAGS
%configure \
--disable-docs \
--enable-cplusplus \
--enable-large-config \
--enable-threads=posix
%make_build
%install
%make_install
# RU: Установка man-страницы вручную (оставляем как в исходном spec).
# EN: Install the man page manually (kept as in the original spec).
install -D -p -m 0644 doc/gc.man %{buildroot}%{_mandir}/man3/gc.3
# RU: Очистка ненужных файлов.
# EN: Remove unneeded files.
rm -rf %{buildroot}%{_datadir}/gc/
rm -f %{buildroot}%{_libdir}/lib*.la
%check
%ifnarch %{arm} aarch64 %{ix86} ppc64le
make check
%endif
%ldconfig_scriptlets
%files
%defattr(-,root,root)
# %license COPYING
%attr(0755,root,root) %{_libdir}/libcord.so.1*
%attr(0755,root,root) %{_libdir}/libgc.so.1*
%attr(0755,root,root) %{_libdir}/libgccpp.so.1*
%attr(0755,root,root) %{_libdir}/libgctba.so.1*
%files devel
%defattr(-,root,root)
%doc doc/README.environment doc/README.linux
%doc doc/*.md
%{_includedir}/gc.h
%{_includedir}/gc_cpp.h
%{_includedir}/gc/
%{_libdir}/libcord.so
%{_libdir}/libgc.so
%{_libdir}/libgccpp.so
%{_libdir}/libgctba.so
%{_libdir}/pkgconfig/bdw-gc.pc
%{_mandir}/man3/gc.3*
%changelog
* Sat May 09 2026 NiceOS Team <support@niceos.ru> - 8.2.12-1
- EN: Update gc to 8.2.12. Upstream release notes describe a patch release with bug fixes and portability/runtime improvements, including fixes for thread lifecycle handling, fork() from unregistered threads, malloc redirection edge cases, sanitizer-related fake stack behavior, and several platform-specific build/runtime issues.
- RU: Обновление gc до 8.2.12. По заметкам upstream это патч-релиз с исправлениями ошибок и улучшениями совместимости/runtime, включая исправления для обработки потоков, fork() из не зарегистрированного потока, edge-case’ов перенаправления malloc, поведения fake stacks для sanitizer-сборок и ряда платформенных проблем сборки/выполнения.
* Wed Jan 07 2026 NiceOS Team <niceos@ncsgp.ru> - 8.2.8-1
- Initial build for NiceOS (Первая сборка для НАЙС.ОС)