[packages/gcc/GCC_13] - build gdc (-d and libphobos* packages); in gcc 12+ it requires gdc already installed
qboosh
qboosh at pld-linux.org
Wed Apr 23 20:42:59 CEST 2025
commit 3623f929a2adfc632d40472baaa61ee0ad6bf990
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Fri Dec 13 18:26:20 2024 +0100
- build gdc (-d and libphobos* packages); in gcc 12+ it requires gdc already installed
gcc-info.patch | 14 ++++
gcc.spec | 211 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
2 files changed, 221 insertions(+), 4 deletions(-)
---
diff --git a/gcc.spec b/gcc.spec
index b676bd3..e5d4485 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,5 +1,3 @@
-# TODO: finish D (needs bootstrap from non-PLD gdc binaries)
-#
# NOTE
# - when adding new subpackages with external libraries (like libffi)
# or having own Version, do not use epoch 6 there, reset them to 0!
@@ -8,7 +6,7 @@
# - languages:
%bcond_without ada # ADA language support
%bcond_without cxx # C++ language support
-%bcond_with d # D language support [NFY, buildrequires gdc]
+%bcond_without d # D language support
%bcond_without fortran # Fortran language support
%bcond_without go # Go language support
%bcond_without modula2 # Modula2 language support
@@ -147,7 +145,8 @@ BuildRequires: gcc-ada
BuildRequires: libgnat-static
%endif
%if %{with d}
-BuildRequires: gcc-d
+BuildRequires: gcc-d >= 6:11
+BuildRequires: libgphobos-static
%endif
BuildRequires: gdb
BuildRequires: gettext-tools >= 0.14.5
@@ -969,6 +968,125 @@ API and internal documentation for C++ standard library.
%description -n libstdc++-apidocs -l pl.UTF-8
Dokumentacja API i wewnętrzna biblioteki standardowej C++.
+%package d
+Summary: D language support for GCC
+Summary(pl.UTF-8): Obsługa języka D dla GCC
+Group: Development/Languages
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: libgphobos = %{epoch}:%{version}-%{release}
+
+%description d
+This package adds support for compiling D programs with the GNU
+compiler.
+
+%description d -l pl.UTF-8
+Ten pakiet dodaje obsługę języka D do kompilatora GCC.
+
+%package d-multilib-32
+Summary: D language 32-bit binaries support for GCC
+Summary(pl.UTF-8): Obsługa binariów 32-bitowych w języku D dla GCC
+Group: Development/Languages
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: libgphobos-multilib-32 = %{epoch}:%{version}-%{release}
+
+%description d-multilib-32
+This package adds support for compiling 32-bit D programs with the GNU
+compiler.
+
+%description d-multilib-32 -l pl.UTF-8
+Ten pakiet dodaje obsługę 32-bitowych programów w języku D do
+kompilatora GCC.
+
+%package d-multilib-%{multilib2}
+Summary: D language %{m2_desc} binaries support for GCC
+Summary(pl.UTF-8): Obsługa binariów %{m2_desc} w języku D dla GCC
+Group: Development/Languages
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: libgphobos-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description d-multilib-%{multilib2}
+This package adds support for compiling D programs to %{m2_desc}
+binaries with the GNU compiler.
+
+%description d-multilib-%{multilib2} -l pl.UTF-8
+Ten pakiet dodaje obsługę binariów %{m2_desc} w języku D do
+kompilatora GCC.
+
+%package -n libgphobos
+Summary: D language runtime libraries
+Summary(pl.UTF-8): Biblioteki uruchomieniowe dla języka D
+License: Boost v1.0
+Group: Libraries
+
+%description -n libgphobos
+D language runtime libraries.
+
+%description -n libgphobos -l pl.UTF-8
+Biblioteki uruchomieniowe dla języka D.
+
+%package -n libgphobos-static
+Summary: Static D language runtime libraries
+Summary(pl.UTF-8): Statyczne biblioteki uruchomieniowe dla języka D
+License: Boost v1.0
+Group: Development/Libraries
+Requires: %{name}-d = %{epoch}:%{version}-%{release}
+
+%description -n libgphobos-static
+Static D language runtime libraries.
+
+%description -n libgphobos-static -l pl.UTF-8
+Statyczne biblioteki uruchomieniowe dla języka D.
+
+%package -n libgphobos-multilib-32
+Summary: D language runtime libraries - 32-bit version
+Summary(pl.UTF-8): Biblioteki uruchomieniowe dla języka D - wersja 32-bitowa
+License: Boost v1.0
+Group: Libraries
+
+%description -n libgphobos-multilib-32
+D language runtime libraries - 32-bit version.
+
+%description -n libgphobos-multilib-32 -l pl.UTF-8
+Biblioteki uruchomieniowe dla języka D - wersja 32-bitowa.
+
+%package -n libgphobos-multilib-32-static
+Summary: Static D language runtime libraries - 32-bit version
+Summary(pl.UTF-8): Statyczne biblioteki uruchomieniowe dla języka D - wersja 32-bitowa
+Group: Development/Libraries
+License: Boost v1.0
+Requires: %{name}-d-multilib-32 = %{epoch}:%{version}-%{release}
+
+%description -n libgphobos-multilib-32-static
+Static D language runtime libraries - 32-bit version.
+
+%description -n libgphobos-multilib-32-static -l pl.UTF-8
+Statyczne biblioteki uruchomieniowe dla języka D - wersja 32-bitowa.
+
+%package -n libgphobos-multilib-%{multilib2}
+Summary: D language runtime libraries - %{m2_desc} version
+Summary(pl.UTF-8): Biblioteki uruchomieniowe dla języka D - wersja %{m2_desc}
+License: Boost v1.0
+Group: Libraries
+
+%description -n libgphobos-multilib-%{multilib2}
+D language runtime libraries - %{m2_desc} version.
+
+%description -n libgphobos-multilib-%{multilib2} -l pl.UTF-8
+Biblioteki uruchomieniowe dla języka D - wersja 32-bitowa.
+
+%package -n libgphobos-multilib-%{multilib2}-static
+Summary: Static D language runtime libraries - %{m2_desc} version
+Summary(pl.UTF-8): Statyczne biblioteki uruchomieniowe dla języka D - wersja %{m2_desc}
+Group: Development/Libraries
+License: Boost v1.0
+Requires: %{name}-d-multilib-%{multilib2} = %{epoch}:%{version}-%{release}
+
+%description -n libgphobos-multilib-%{multilib2}-static
+Static D language runtime libraries - %{m2_desc} version.
+
+%description -n libgphobos-multilib-%{multilib2}-static -l pl.UTF-8
+Statyczne biblioteki uruchomieniowe dla języka D - wersja %{m2_desc}.
+
%package fortran
Summary: Fortran 95 language support for GCC
Summary(es.UTF-8): Soporte de Fortran 95 para GCC
@@ -3191,6 +3309,12 @@ rm -rf $RPM_BUILD_ROOT
%postun ada -p /sbin/postshell
-/usr/sbin/fix-info-dir -c %{_infodir}
+%post d -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
+%postun d -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
+
%post fortran -p /sbin/postshell
-/usr/sbin/fix-info-dir -c %{_infodir}
@@ -3245,6 +3369,8 @@ rm -rf $RPM_BUILD_ROOT
%postun -p /sbin/ldconfig -n libstdc++-multilib-32
%post -p /sbin/ldconfig -n libstdc++-multilib-%{multilib2}
%postun -p /sbin/ldconfig -n libstdc++-multilib-%{multilib2}
+%post -p /sbin/ldconfig -n libgphobos
+%postun -p /sbin/ldconfig -n libgphobos
%post -p /sbin/ldconfig -n libgfortran
%postun -p /sbin/ldconfig -n libgfortran
%post -p /sbin/ldconfig -n libgfortran-multilib-32
@@ -3913,6 +4039,83 @@ rm -rf $RPM_BUILD_ROOT
%endif
%endif
+%if %{with d}
+%files d
+%defattr(644,root,root,755)
+%doc gcc/d/{ChangeLog,README.gcc}
+%attr(755,root,root) %{_bindir}/gdc
+%attr(755,root,root) %{_bindir}/*-gdc
+%attr(755,root,root) %{gcclibdir}/d21
+%attr(755,root,root) %{_libdir}/libgdruntime.so
+%attr(755,root,root) %{_libdir}/libgphobos.so
+%{_libdir}/libgdruntime.la
+%{_libdir}/libgphobos.la
+%{_libdir}/libgphobos.spec
+%{gcclibdir}/include/d
+%{_mandir}/man1/gdc.1*
+%{_infodir}/gdc.info*
+
+%if %{with multilib}
+%files d-multilib-32
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libgdruntime.so
+%attr(755,root,root) %{_libdir32}/libgphobos.so
+%{_libdir32}/libgdruntime.la
+%{_libdir32}/libgphobos.la
+%{_libdir32}/libgphobos.spec
+%endif
+
+%if %{with multilib2}
+%files d-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libgdruntime.so
+%attr(755,root,root) %{_libdirm2}/libgphobos.so
+%{_libdirm2}/libgdruntime.la
+%{_libdirm2}/libgphobos.la
+%{_libdirm2}/libgphobos.spec
+%endif
+
+%files -n libgphobos
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libgdruntime.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libgdruntime.so.4
+%attr(755,root,root) %{_libdir}/libgphobos.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libgphobos.so.4
+
+%files -n libgphobos-static
+%defattr(644,root,root,755)
+%{_libdir}/libgdruntime.a
+%{_libdir}/libgphobos.a
+
+%if %{with multilib}
+%files -n libgphobos-multilib-32
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir32}/libgdruntime.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir32}/libgdruntime.so.4
+%attr(755,root,root) %{_libdir32}/libgphobos.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir32}/libgphobos.so.4
+
+%files -n libgphobos-multilib-32-static
+%defattr(644,root,root,755)
+%{_libdir32}/libgdruntime.a
+%{_libdir32}/libgphobos.a
+%endif
+
+%if %{with multilib2}
+%files -n libgphobos-multilib-%{multilib2}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdirm2}/libgdruntime.so.*.*.*
+%attr(755,root,root) %ghost %{_libdirm2}/libgdruntime.so.4
+%attr(755,root,root) %{_libdirm2}/libgphobos.so.*.*.*
+%attr(755,root,root) %ghost %{_libdirm2}/libgphobos.so.4
+
+%files -n libgphobos-multilib-%{multilib2}-static
+%defattr(644,root,root,755)
+%{_libdirm2}/libgdruntime.a
+%{_libdirm2}/libgphobos.a
+%endif
+%endif
+
%if %{with fortran}
%files fortran
%defattr(644,root,root,755)
diff --git a/gcc-info.patch b/gcc-info.patch
index c134a1b..7a7b249 100644
--- a/gcc-info.patch
+++ b/gcc-info.patch
@@ -235,3 +235,17 @@ diff -urNp -x '*.orig' gcc-10.2.0.org/libquadmath/libquadmath.texi gcc-10.2.0/li
@end direntry
This manual documents the GCC Quad-Precision Math Library API.
+--- gcc-11.5.0/gcc/d/gdc.texi.orig 2024-07-19 07:52:43.845493268 +0200
++++ gcc-11.5.0/gcc/d/gdc.texi 2024-12-12 22:08:23.782172397 +0100
+@@ -34,9 +34,9 @@ man page gfdl(7).
+
+ @ifinfo
+ @format
+- at dircategory Software development
++ at dircategory Programming Languages:
+ @direntry
+-* gdc: (gdc). A GCC-based compiler for the D language
++* gdc: (gdc). A GCC-based compiler for the D language
+ @end direntry
+ @end format
+
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/gcc.git/commitdiff/901917bbafdf245c721f6a91c3a7dd14336982e6
More information about the pld-cvs-commit
mailing list