[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