Source: gcc-14
Severity: wishlist
Tags: patch
User: helm...@debian.org
Usertags rebootstrap

Hi Matthias,

thanks for merging my -for-host work. I'm looking into making practical
use of it and a major issue is the following dependency:

$FRONTEND-$VERSION-for-host:$DEB_HOST_ARCH -> 
$FRONTEND-$VERSION-$DEB_HOST_GNU_TYPE (= ${gcc:Version})

While this works nicely for native compilers, trying to use the
-for-host package with a cross toolchain is doomed to fail, because it
always has different version. The equal constraint is too strict to make
practical use of these -for-host packages. I think we should change (=
${gcc:Version}) to (>= ${gcc:SoftVersion}) as is done elsewhere. Do you
agree?

I'm attaching the obvious patch.

Helmut
commit 843e8ae7602a0ec16c67d7064396fa2acd1182cd
Author: Helmut Grohne <hel...@subdivi.de>
Date:   Fri Mar 22 09:35:04 2024 +0100

    use gcc:SoftVersion for -for-host dependencies

diff --git a/debian/control.m4 b/debian/control.m4
index 4b6c61b8..61a4d3a8 100644
--- a/debian/control.m4
+++ b/debian/control.m4
@@ -804,7 +804,7 @@ Package: gcc`'PV`'-for-host
 Architecture: ifdef(`TARGET',`TARGET',`any')
 TARGET_PACKAGE`'dnl
 Multi-Arch: same
-Depends: BASEDEP, gcc`'PV`'${target:suffix} (= ${gcc:Version}),
+Depends: BASEDEP, gcc`'PV`'${target:suffix} (>= ${gcc:SoftVersion}),
   cpp`'PV`'-for-host (= ${gcc:Version}), ${misc:Depends}
 BUILT_USING`'dnl
 Description: GNU C compiler for the host architecture
@@ -929,7 +929,7 @@ Architecture: ifdef(`TARGET',`TARGET',`any')
 TARGET_PACKAGE`'dnl
 Multi-Arch: same
 Section: ifdef(`TARGET',`devel',`interpreters')
-Depends: BASEDEP, cpp`'PV`'${target:suffix} (= ${gcc:Version}), ${misc:Depends}
+Depends: BASEDEP, cpp`'PV`'${target:suffix} (>= ${gcc:SoftVersion}), ${misc:Depends}
 BUILT_USING`'dnl
 Description: GNU C preprocessor for the host architecture
  A macro processor that is used automatically by the GNU C compiler
@@ -1019,7 +1019,7 @@ Package: g++`'PV`'-for-host
 Architecture: ifdef(`TARGET',`TARGET',`any')
 TARGET_PACKAGE`'dnl
 Multi-Arch: same
-Depends: BASEDEP, g++`'PV`'${target:suffix} (= ${gcc:Version}),
+Depends: BASEDEP, g++`'PV`'${target:suffix} (>= ${gcc:SoftVersion}),
   gcc`'PV`'-for-host (= ${gcc:Version}), ${misc:Depends}
 BUILT_USING`'dnl
 Description: GNU C++ compiler for the host architecture
@@ -2522,7 +2522,7 @@ Package: gobjc++`'PV`'-for-host
 Architecture: ifdef(`TARGET',`TARGET',`any')
 TARGET_PACKAGE`'dnl
 Multi-Arch: same
-Depends: BASEDEP, gobjc++`'PV`'${target:suffix} (= ${gcc:Version}),
+Depends: BASEDEP, gobjc++`'PV`'${target:suffix} (>= ${gcc:SoftVersion}),
   gobjc`'PV`'-for-host (= ${gcc:Version}), g++`'PV`'-for-host (= ${gcc:Version}),
   ${misc:Depends}
 BUILT_USING`'dnl
@@ -2599,7 +2599,7 @@ Package: gobjc`'PV`'-for-host
 Architecture: ifdef(`TARGET',`TARGET',`any')
 TARGET_PACKAGE`'dnl
 Multi-Arch: same
-Depends: BASEDEP, gobjc`'PV`'${target:suffix} (= ${gcc:Version}),
+Depends: BASEDEP, gobjc`'PV`'${target:suffix} (>= ${gcc:SoftVersion}),
   gobjc`'PV`'-for-host (= ${gcc:Version}), ${misc:Depends}
 BUILT_USING`'dnl
 Description: GNU Objective-C compiler for the host architecture
@@ -2844,7 +2844,7 @@ Package: gfortran`'PV`'-for-host
 Architecture: ifdef(`TARGET',`TARGET',`any')
 TARGET_PACKAGE`'dnl
 Multi-Arch: same
-Depends: BASEDEP, gfortran`'PV`'${target:suffix} (= ${gcc:Version}),
+Depends: BASEDEP, gfortran`'PV`'${target:suffix} (>= ${gcc:SoftVersion}),
   gcc`'PV`'-for-host (= ${gcc:Version}), ${misc:Depends}
 BUILT_USING`'dnl
 Description: GNU Fortran compiler for the host architecture
@@ -3111,7 +3111,7 @@ Package: gccgo`'PV`'-for-host
 Architecture: ifdef(`TARGET',`TARGET',`any')
 TARGET_PACKAGE`'dnl
 Multi-Arch: same
-Depends: BASEDEP, gccgo`'PV`'${target:suffix} (= ${gcc:Version}),
+Depends: BASEDEP, gccgo`'PV`'${target:suffix} (>= ${gcc:SoftVersion}),
   gcc`'PV`'-for-host (= ${gcc:Version}), ${misc:Depends}
 BUILT_USING`'dnl
 Description: GNU Go compiler for the host architecture
@@ -3821,7 +3821,7 @@ Package: gnat`'PV`'-for-host
 Architecture: ifdef(`TARGET',`TARGET',`any')
 TARGET_PACKAGE`'dnl
 Multi-Arch: same
-Depends: BASEDEP, gnat`'PV`'${target:suffix} (= ${gcc:Version}),
+Depends: BASEDEP, gnat`'PV`'${target:suffix} (>= ${gcc:SoftVersion}),
   gcc`'PV`'-for-host (= ${gcc:Version}), ${misc:Depends}
 BUILT_USING`'dnl
 Description: GNU Ada compiler for the host architecture
@@ -3981,7 +3981,7 @@ Package: gdc`'PV`'-for-host
 Architecture: ifdef(`TARGET',`TARGET',`any')
 TARGET_PACKAGE`'dnl
 Multi-Arch: same
-Depends: BASEDEP, gdc`'PV`'${target:suffix} (= ${gcc:Version}),
+Depends: BASEDEP, gdc`'PV`'${target:suffix} (>= ${gcc:SoftVersion}),
   gcc`'PV`'-for-host (= ${gcc:Version}), ${misc:Depends}
 BUILT_USING`'dnl
 Description: GNU D compiler (version 2) for the host architecture
@@ -4268,7 +4268,7 @@ Package: gm2`'PV`'-for-host
 Architecture: ifdef(`TARGET',`TARGET',`any')
 TARGET_PACKAGE`'dnl
 Multi-Arch: same
-Depends: BASEDEP, gm2`'PV`'${target:suffix} (= ${gcc:Version}),
+Depends: BASEDEP, gm2`'PV`'${target:suffix} (>= ${gcc:SoftVersion}),
   gcc`'PV`'-for-host (= ${gcc:Version}), ${misc:Depends}
 BUILT_USING`'dnl
 Description: GNU Modula-2 compiler for the host architecture
@@ -4528,7 +4528,7 @@ Package: gccrs`'PV`'-for-host
 Architecture: ifdef(`TARGET',`TARGET',`any')
 TARGET_PACKAGE`'dnl
 Multi-Arch: same
-Depends: BASEDEP, gccrs`'PV`'${target:suffix} (= ${gcc:Version}),
+Depends: BASEDEP, gccrs`'PV`'${target:suffix} (>= ${gcc:SoftVersion}),
   gcc`'PV`'-for-host (= ${gcc:Version}), ${misc:Depends}
 BUILT_USING`'dnl
 Description: GNU Rust compiler for the host architecture

Reply via email to