Source: gcc-8 Tags: patch User: helm...@debian.org Usertags: rebootstrap Control: affetcs -1 + src:gcc-8-cross src:gcc-8-cross-ports
gfortran-8-<anytriplet> presently Provides: gfortran-mod-15 and given that gfortran-8-<anytriplet> is Multi-Arch: foreign, this is provided for any architecture. libopenmpi-dev Depends: gfortran-8 | gfortran-mod-15. Therefore gfortran-8-<anytriplet> satisfies libopenmpi-dev's dependency. That's not what we want here though. The dependency should only be satisfied by a compiler that matches libopenmpi-dev's architecture. Therefore these provides are bad. They result in strange solutions which are found by dose-builddebcheck, but are not by apt. I propose simply removing these provides for the cross tools. The attached patch implements that. Helmut
diff -u gcc-8-8.2.0/debian/control.m4 gcc-8-8.2.0/debian/control.m4 --- gcc-8-8.2.0/debian/control.m4 +++ gcc-8-8.2.0/debian/control.m4 @@ -3565,7 +3565,8 @@ ')dnl Priority: optional Depends: BASEDEP, gcc`'PV`'TS (= ${gcc:Version}), libidevdep(gfortran`'PV-dev,,=), ${dep:libcdev}, ${shlibs:Depends}, ${misc:Depends} -Provides: fortran95-compiler, ${fortran:mod-version} +ifdef(`TARGET',`',`Provides: fortran95-compiler, ${fortran:mod-version} +')dnl Suggests: ${gfortran:multilib}, gfortran`'PV-doc, libdbgdep(gfortran`'FORTRAN_SO-dbg,), libcoarrays-dev @@ -3900,7 +3901,8 @@ ')dnl Priority: optional Depends: BASEDEP, ifdef(`STANDALONEGO',`${dep:libcc1}, ',`gcc`'PV`'TS (= ${gcc:Version}), ')libidevdep(go`'GO_SO,,>=), ${dep:libcdev}, ${shlibs:Depends}, ${misc:Depends} -Provides: go-compiler +ifdef(`TARGET',`',`Provides: go-compiler +')dnl Suggests: ${go:multilib}, gccgo`'PV-doc, libdbgdep(go`'GO_SO-dbg,) Conflicts: ${golang:Conflicts} Breaks: libgo12`'LS (<< 8-20171209-2) @@ -4858,7 +4860,8 @@ ')dnl Priority: optional Depends: SOFTBASEDEP, g++`'PV`'TS (>= ${gcc:SoftVersion}), ${dep:gdccross}, ${dep:phobosdev}, ${shlibs:Depends}, ${misc:Depends} -Provides: gdc, d-compiler, d-v2-compiler +ifdef(`TARGET',`',`Provides: gdc, d-compiler, d-v2-compiler +')dnl Replaces: gdc (<< 4.4.6-5) BUILT_USING`'dnl Description: GNU D compiler (version 2)`'ifdef(`TARGET)',` (cross compiler for TARGET architecture)', `')