On Mon, Aug 21, 2017 at 04:02:03PM +0200, Matthias Klose wrote: > On 10.08.2017 08:15, Adrian Bunk wrote: > > Source: gcc-defaults > > Severity: important > > Tags: patch > > > > https://buildd.debian.org/status/fetch.php?pkg=lorene&arch=ppc64el&ver=0.0.0~cvs20161116%2Bdfsg-1%2Bb1&stamp=1502276276&raw=0 > > https://buildd.debian.org/status/fetch.php?pkg=dynare&arch=ppc64el&ver=4.5.1-1%2Bb1&stamp=1502287921&raw=0 > > https://buildd.debian.org/status/fetch.php?pkg=gyoto&arch=ppc64el&ver=1.2.0-2%2Bb2&stamp=1502307571&raw=0 > > > > The root cause of these build failures is: > > - buildd chroot contained the old (gcc 6) packages of cpp, gcc and g++ > > - installing the build dependency gfortran upgraded cpp and gcc but not g++, > > resulting in errors due to: > > - cpp (7) not finding cc1plus, and > > - g++ (6) as linker not finding -lfortran - and if gfortran-6 would > > have been installed, it would have linked with the wrong library > > > > In this case regenerating chroots was not working once resulting in > > old chroots still being used, but that's a general problem for new > > major releases of gcc since the buildd chroots are only regenerated > > twice a week and not dist-upgraded prior to a build. > > > > The attached patch addresses this problem by changing the dependencies > > between the packages from >= to = > > I don't like that patch too much. We now have gij/gcj building from gcc-6, > and > we may have gccgo or gdc building from gcc-8, mismatching the defaults. So > probably it's ok to tighten the dependencies for packages up to g++, maybe > gfortran, but not more. I think that would address most use cases.
The problems during the gcc 6 -> 7 change were due to gnat and gfortran. gnat doesn't seem to be easily fixable right now (and wasn't fixed in my earlier patch). The attached updated patch does the change up to g++ and gfortran, which should fix the problems for gfortran. cu Adrian -- "Is there not promise of rain?" Ling Tan asked suddenly out of the darkness. There had been need of rain for many days. "Only a promise," Lao Er said. Pearl S. Buck - Dragon Seed
--- debian/control.native.in.old 2017-08-09 21:50:57.000000000 +0000 +++ debian/control.native.in 2017-08-09 22:22:09.000000000 +0000 @@ -19,7 +19,7 @@ Package: gcc Priority: optional Architecture: any -Depends: cpp (>= ${version:cpp}), gcc-${pv:gcc} ${reqv:gcc}, ${misc:Depends} +Depends: cpp (= ${version:cpp}), gcc-${pv:gcc} ${reqv:gcc}, ${misc:Depends} Recommends: libc6-dev | libc-dev Suggests: gcc-multilib, make, manpages-dev, autoconf, automake, libtool, flex, bison, gdb, gcc-doc Provides: c-compiler @@ -32,7 +32,7 @@ Package: gcc-multilib Priority: optional Architecture: @multilib_archs@ -Depends: cpp (>= ${version:cpp}), gcc (>= ${version:gcc}), gcc-${pv:gcc}-multilib ${reqv:gcc}, ${misc:Depends}, linux-libc-dev (>= 3.0.0-2) [linux-any] +Depends: cpp (= ${version:cpp}), gcc (= ${version:gcc}), gcc-${pv:gcc}-multilib ${reqv:gcc}, ${misc:Depends}, linux-libc-dev (>= 3.0.0-2) [linux-any] Conflicts: gcc-4.9-alpha-linux-gnu, gcc-4.9-aarch64-linux-gnu, gcc-4.9-arm-linux-gnueabi, @@ -132,7 +132,7 @@ Package: g++ Priority: optional Architecture: any -Depends: cpp (>= ${version:cpp}), gcc (>= ${version:cpp}), g++-${pv:gpp} ${reqv:gpp}, gcc-${pv:gpp} ${reqv:gpp}, ${misc:Depends} +Depends: cpp (= ${version:cpp}), gcc (= ${version:cpp}), g++-${pv:gpp} ${reqv:gpp}, gcc-${pv:gpp} ${reqv:gpp}, ${misc:Depends} Suggests: ${pkgmulti:gpp} Provides: c++-compiler Description: GNU C++ compiler @@ -143,7 +143,7 @@ Package: g++-multilib Priority: optional Architecture: @multilib_archs@ -Depends: cpp (>= ${version:cpp}), gcc-multilib (>= ${version:cpp}), g++ (>= ${version:cpp}), g++-${pv:gpp}-multilib ${reqv:gpp}, ${misc:Depends} +Depends: cpp (= ${version:cpp}), gcc-multilib (= ${version:cpp}), g++ (= ${version:cpp}), g++-${pv:gpp}-multilib ${reqv:gpp}, ${misc:Depends} Description: GNU C++ compiler (multilib files) This is the GNU C++ compiler, a fairly portable optimizing compiler for C++. . @@ -202,7 +202,7 @@ Package: gfortran Priority: optional Architecture: any -Depends: cpp (>= ${version:cpp}), gcc (>= ${version:gcc}), gfortran-${pv:gfort} ${reqv:gfort}, ${misc:Depends} +Depends: cpp (= ${version:cpp}), gcc (= ${version:gcc}), gfortran-${pv:gfort} ${reqv:gfort}, ${misc:Depends} Suggests: ${pkgmulti:gfort}, gfortran-doc Provides: fortran-compiler, ${fortran:mod-version} Description: GNU Fortran 95 compiler @@ -215,7 +215,7 @@ Package: gfortran-multilib Priority: optional Architecture: @multilib_archs@ -Depends: cpp (>= ${version:cpp}), gcc-multilib (>= ${version:cpp}), gfortran (>= ${version:gcc}), gfortran-${pv:gfort}-multilib ${reqv:gfort}, ${misc:Depends} +Depends: cpp (= ${version:cpp}), gcc-multilib (= ${version:cpp}), gfortran (= ${version:gcc}), gfortran-${pv:gfort}-multilib ${reqv:gfort}, ${misc:Depends} Description: GNU Fortran 95 compiler (multilib files) This is the GNU Fortran compiler, which compiles Fortran 95 on platforms supported by the gcc compiler. --- debian/control.cross.in.old 2017-08-09 22:23:33.000000000 +0000 +++ debian/control.cross.in 2017-08-09 22:23:41.000000000 +0000 @@ -20,7 +20,7 @@ Priority: optional Architecture: @host_archs@ Multi-Arch: foreign -Depends: cpp-CROSS_GNU_TYPE (>= ${version:cpp}), +Depends: cpp-CROSS_GNU_TYPE (= ${version:cpp}), gcc-${pv:gcc}-CROSS_GNU_TYPE ${reqv:gcc}, ${misc:Depends} Recommends: libc6-dev-CROSS_ARCH-cross | libc-dev-CROSS_ARCH-cross @@ -35,8 +35,8 @@ Priority: optional Architecture: @host_archs@ Multi-Arch: foreign -Depends: cpp-CROSS_GNU_TYPE (>= ${version:cpp}), - gcc-CROSS_GNU_TYPE (>= ${version:cpp}), +Depends: cpp-CROSS_GNU_TYPE (= ${version:cpp}), + gcc-CROSS_GNU_TYPE (= ${version:cpp}), g++-${pv:gpp}-CROSS_GNU_TYPE ${reqv:gpp}, ${misc:Depends} Description: GNU C++ compiler for the CROSS_ARCH architecture @@ -82,8 +82,8 @@ Priority: optional Architecture: @host_archs@ Multi-Arch: foreign -Depends: cpp-CROSS_GNU_TYPE (>= ${version:cpp}), - gcc-CROSS_GNU_TYPE (>= ${version:gcc}), +Depends: cpp-CROSS_GNU_TYPE (= ${version:cpp}), + gcc-CROSS_GNU_TYPE (= ${version:gcc}), gfortran-${pv:gfort}-CROSS_GNU_TYPE ${reqv:gfort}, ${misc:Depends} Suggests: gfortran-doc --- debian/control.cross-ml.in.old 2017-08-09 22:47:27.000000000 +0000 +++ debian/control.cross-ml.in 2017-08-09 22:47:33.000000000 +0000 @@ -2,8 +2,8 @@ Package: gcc-multilib-CROSS_GNU_TYPE Priority: optional Architecture: @host_archs@ -Depends: cpp-CROSS_GNU_TYPE (>= ${version:cpp}), - gcc-CROSS_GNU_TYPE (>= ${version:gcc}), +Depends: cpp-CROSS_GNU_TYPE (= ${version:cpp}), + gcc-CROSS_GNU_TYPE (= ${version:gcc}), gcc-${pv:gcc}-multilib-CROSS_GNU_TYPE ${reqv:gcc}, ${misc:Depends} Recommends: libc6-dev-CROSS_ARCH-cross | libc-dev-CROSS_ARCH-cross @@ -17,9 +17,9 @@ Package: g++-multilib-CROSS_GNU_TYPE Priority: optional Architecture: @host_archs@ -Depends: cpp-CROSS_GNU_TYPE (>= ${version:cpp}), - g++-CROSS_GNU_TYPE (>= ${version:gpp}), - gcc-multilib-CROSS_GNU_TYPE (>= ${version:gcc}), +Depends: cpp-CROSS_GNU_TYPE (= ${version:cpp}), + g++-CROSS_GNU_TYPE (= ${version:gpp}), + gcc-multilib-CROSS_GNU_TYPE (= ${version:gcc}), g++-${pv:gpp}-multilib-CROSS_GNU_TYPE ${reqv:gpp}, ${misc:Depends} Description: GNU C++ compiler for the CROSS_ARCH architecture @@ -65,9 +65,9 @@ Package: gfortran-multilib-CROSS_GNU_TYPE Priority: optional Architecture: @host_archs@ -Depends: cpp-CROSS_GNU_TYPE (>= ${version:cpp}), - gcc-multilib-CROSS_GNU_TYPE (>= ${version:gcc}), - gfortran-CROSS_GNU_TYPE (>= ${version:gfort}), +Depends: cpp-CROSS_GNU_TYPE (= ${version:cpp}), + gcc-multilib-CROSS_GNU_TYPE (= ${version:gcc}), + gfortran-CROSS_GNU_TYPE (= ${version:gfort}), gfortran-${pv:gfort}-multilib-CROSS_GNU_TYPE ${reqv:gfort}, ${misc:Depends} Suggests: gfortran-doc --- debian/control.hppa64.in.old 2017-08-09 22:49:57.000000000 +0000 +++ debian/control.hppa64.in 2017-08-09 22:50:05.000000000 +0000 @@ -2,7 +2,7 @@ Package: gcc-hppa64-linux-gnu Priority: optional Architecture: @hppa64_archs@ -Depends: gcc (>= ${version:gcc}), gcc-${pv:gcc}-hppa64-linux-gnu ${reqv:gcc}, +Depends: gcc (= ${version:gcc}), gcc-${pv:gcc}-hppa64-linux-gnu ${reqv:gcc}, ${misc:Depends} Conflicts: gcc-5-hppa64-linux-gnu (<< 5.2.1-26), gcc-5-hppa64 (<< 5.2.1-26),