Bug#1029958: cross-gcc-dev: gcc-13: update hunk context

2023-01-29 Thread Helmut Grohne
Source: cross-gcc
Version: 247
Tags: patch
User: helm...@debian.org
Usertags: rebootstrap

Patch application started failing for gcc-13. It's a trivial hunk context 
update.

Helmut
diff --minimal -Nru cross-gcc-247/debian/changelog 
cross-gcc-247+nmu1/debian/changelog
--- cross-gcc-247/debian/changelog  2023-01-26 08:32:03.0 +0100
+++ cross-gcc-247+nmu1/debian/changelog 2023-01-28 20:11:48.0 +0100
@@ -1,3 +1,10 @@
+cross-gcc (247+nmu1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Update hunk context for gcc-13 patches. (Closes: #-1)
+
+ -- Helmut Grohne   Sat, 28 Jan 2023 20:11:48 +0100
+
 cross-gcc (247) unstable; urgency=medium
 
   * rebuild for 13-20230114-1
diff --minimal -Nru 
cross-gcc-247/patches/gcc-13/0004-added-multi-arch-specific-install-location-patch.patch
 
cross-gcc-247+nmu1/patches/gcc-13/0004-added-multi-arch-specific-install-location-patch.patch
--- 
cross-gcc-247/patches/gcc-13/0004-added-multi-arch-specific-install-location-patch.patch
2023-01-26 08:32:03.0 +0100
+++ 
cross-gcc-247+nmu1/patches/gcc-13/0004-added-multi-arch-specific-install-location-patch.patch
   2023-01-28 20:11:36.0 +0100
@@ -480,9 +480,9 @@
 +  else
 +debian_patches += cross-install-location
 +  endif
-   ifeq ($(with_m2),yes)
- debian_patches += cross-install-location-gm2
-   endif
+ endif
+
+ ifeq ($(DEB_TARGET_ARCH_OS),hurd)
 -- 
 2.31.1
 


Bug#1028094: support gcc-13

2023-01-06 Thread Helmut Grohne
Package: cross-gcc-dev

Hi,

gcc-13 has entered experimental. Please copy over the gcc-12 patches for
gcc-13. It would be nice if you could rebase them to be applicable, but
as usual, I don't expect them to work in any way and will file patches.

Helmut



Bug#977944: add support for gcc-11

2020-12-22 Thread Helmut Grohne
Package: cross-gcc-dev
User: helm...@debian.org
Usertags: rebootstrap

Initial please add support for gcc-11. As usual, I don't expect it to
work. Just make it apply (on the outer level), I'll send fixes for
further issues.

Helmut



Bug#956855: consider reducing toolchain bootstrap stages

2020-04-15 Thread Helmut Grohne
Source: cross-toolchain-base
Version: 45
Severity: wishlist
Tags: patch moreinfo

I'm not sure anymore who told me, but glibc has a build_many_glibcs.py
script and it does the toolchain bootstrap dance with fewer stages than
Debian (i.e. cross-toolchain-base and rebootstrap) does. The current
Debian toolchain bootstrap looks like this:

 * binutils
 * linux-libc-dev
 * gcc stage1 (bare metal)
 * glibc stage1 (headers + stub libc.so)
 * gcc stage2
 * glibc stage2 (libc without systemtap and other optional features)
 * gcc stage3 (libc-integrated cross compiler)
 * gcc rtlibs (runtime libraries for the cross compiler)

The assertion is that we can skip glibc stage1 and gcc stage2 and go
directly from gcc stage1 to glibc stage2.

I've implemented this in rebootstrap and it seems to work reasonably
well for a number of architectures. I've not run it on the full test
matrix yet. Some observations on rebootstrap:
 * musl-linux-any already works like this since a while.
 * hurd-any formerly needed libihash-dev for libpthread, but no longer
   does. This sequence also works on hurd-i386.
 * I've had success with arm64, armel, armhf, m68k, mips (nobiarch),
   mipsel (nobiarch) and ppc64el thus far. Notably, these all lack
   multilibs and I'm still sorting out multilib issues.
 * I cannot tell about kfreebsd-any, since they didn't manage to get the
   relevant kernel header source package back into unstable yet.

I've implemented this for cross-toolchain-base (patch attached) and a
performed a successful testbuild. Using diffoscope to compare the
resulting packages with the ones from the archive was not a useful thing
to do as the build-ids changed.

So what do you think about going to fewer stages? I'd like to solicit
explicit feedback from the involved parties:

gcc maintainers / Matthias:
 * Do you have any objections to reducing stages?
 * Should we delete gcc stage2?
 * Should we rename gcc stage3 to gcc stage2?

glibc maintainers / Aurelien:
 * Do you have any objections to reducing stages?
 * Should we delete glibc stage1?
 * Should we rename glibc stage2 to glibc stage1?
 * Should we maybe split stage2 into a number of profiles
   pkg.glibc.noselinux, pkg.glibc.noxen, pkg.glibc.noalphaev,
   pkg.glibc.noxcryptdep?

Due to these open questions, I've tagged the bug moreinfo.

Helmut
diff --minimal -Nru cross-toolchain-base-45/debian/changelog 
cross-toolchain-base-45+nmu1/debian/changelog
--- cross-toolchain-base-45/debian/changelog2020-03-22 14:02:54.0 
+0100
+++ cross-toolchain-base-45+nmu1/debian/changelog   2020-04-15 
11:35:18.0 +0200
@@ -1,3 +1,10 @@
+cross-toolchain-base (45+nmu1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Bootstrap with fewer stages. (Closes: #-1)
+
+ -- Helmut Grohne   Wed, 15 Apr 2020 11:35:18 +0200
+
 cross-toolchain-base (45) unstable; urgency=medium
 
   * Build using glibc 2.30-2.
diff --minimal -Nru cross-toolchain-base-45/debian/rules 
cross-toolchain-base-45+nmu1/debian/rules
--- cross-toolchain-base-45/debian/rules2020-03-22 14:02:01.0 
+0100
+++ cross-toolchain-base-45+nmu1/debian/rules   2020-04-15 11:35:18.0 
+0200
@@ -343,96 +344,6 @@
  ln -sf ${CROSS_GNU_TYPE}-gcov-${VER_GCC_BASE} ${CROSS_GNU_TYPE}-gcov
 endef
 
-$(stamp)build-gcc2.%: $(stamp)init-gcc $(stamp)install-glibc1.%
-   @echo START $@
-   cd debian/tmp.${CROSS_ARCH}/$(PF)/bin/ && \
- rm -f ${CROSS_GNU_TYPE}-gcc-${VER_GCC_BASE} ${CROSS_GNU_TYPE}-gcc && \
- rm -f ${CROSS_GNU_TYPE}-cpp-${VER_GCC_BASE} ${CROSS_GNU_TYPE}-cpp && \
- rm -f ${CROSS_GNU_TYPE}-gcov-${VER_GCC_BASE} ${CROSS_GNU_TYPE}-gcov
-   cd gcc && \
- PATH=${CURDIR}/debian/tmp.${CROSS_ARCH}/$(PF)/bin:${PATH} \
- LD_LIBRARY_PATH=$(call 
binutils_ldpath,$*):${CURDIR}/debian/tmp.${CROSS_ARCH}/usr/lib:${CURDIR}/debian/tmp.${CROSS_ARCH}/lib
 \
- DH_VERBOSE=1 \
- WITH_SYSROOT=/ \
- WITH_BUILD_SYSROOT=${CURDIR}/debian/tmp.${CROSS_ARCH} \
- DEB_STAGE=stage2 \
- PKG_IGNORE_CURRENTLY_BUILDING=1 \
- BACKPORT=false \
- DEB_BUILD_OPTIONS="$(DEB_BUILD_OPTIONS) nocheck nopgo nolto nohppa64 
nojit nonvptx" \
- WITHOUT_LANG="hppa64 jit nvptx" \
- $(if $(filter $(HOST_ARCH),$(CROSS_ARCH)),FORCE_CROSS_LAYOUT=yes 
WITH_BOOTSTRAP=off) \
- dpkg-buildpackage -b -uc -us -d
-   touch $@
-
-$(stamp)install-gcc2.%: $(stamp)build-gcc2.%
-   @echo START $@
-   $(call install_gcc)
-   dpkg-deb -x libgcc[124]-${CROSS_ARCH}-cross_${DEB_VER_GCC}_all.deb \
-   debian/tmp.${CROSS_ARCH}
-ifneq (,$(ARM32_MULTILIBS))
-   $(if $(filter $(CROSS_ARCH),armhf), \
- dpkg-deb -x libsfgcc1-${CROSS_ARCH}-cross_${DEB_VER_GCC}_all.deb \
-   debian/tmp.${CROSS_ARCH}; \
- dpkg-deb -x 
libsfgcc-${VER_GCC_BASE}-dev-${CROSS_ARCH}-cross_${DEB_VER_GCC}_all.deb \
-   debian

Bug#951470: cross-ma-install-location.diff no longer applies to gcc-10

2020-02-16 Thread Helmut Grohne
Package: cross-gcc-dev
Version: 242
Severity: important
Tags: patch
User: helm...@debian.org
Usertags: rebootstrap

Hi Dima,

cross-ma-install-location.diff no longer applies during gcc-10. I'm
attaching an updated version that applies cleanly to gcc-10. I'm not
entirely sure that it is fully correct, because the build fails with a
symbols error in the end. However, the supported cross compiler build
fails in the same way. Can you replace the existing
cross-ma-install-location.diff with the attached version for gcc-10?

Helmut
Index: b/src/libada/configure.ac
===
--- a/src/libada/configure.ac
+++ b/src/libada/configure.ac
@@ -65,22 +65,8 @@
 toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
 ;;
   no)
-if test -n "$with_cross_host" &&
-   test x"$with_cross_host" != x"no"; then
-  # Install a library built with a cross compiler in tooldir, not libdir.
-  toolexecdir='$(exec_prefix)/$(target_alias)'
-  case ${with_toolexeclibdir} in
-	no)
-	  toolexeclibdir='$(toolexecdir)/lib'
-	  ;;
-	*)
-	  toolexeclibdir=${with_toolexeclibdir}
-	  ;;
-  esac
-else
-  toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
-  toolexeclibdir='$(libdir)'
-fi
+toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
+toolexeclibdir='$(libdir)'
 multi_os_directory=`$CC -print-multi-os-directory`
 case $multi_os_directory in
   .) ;; # Avoid trailing /.
Index: b/src/libffi/configure.ac
===
--- a/src/libffi/configure.ac
+++ b/src/libffi/configure.ac
@@ -497,21 +497,9 @@
 AC_DEFINE(USING_PURIFY, 1, [Define this if you are using Purify and want to suppress spurious messages.])
   fi)
 
-if test -n "$with_cross_host" &&
-   test x"$with_cross_host" != x"no"; then
-  toolexecdir='$(exec_prefix)/$(target_alias)'
-  case ${with_toolexeclibdir} in
-no)
-  toolexeclibdir='$(toolexecdir)/lib'
-  ;;
-*)
-  toolexeclibdir=${with_toolexeclibdir}
-  ;;
-  esac
-else
-  toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
-  toolexeclibdir='$(libdir)'
-fi
+toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
+toolexeclibdir='$(libdir)'
+
 multi_os_directory=`$CC -print-multi-os-directory`
 case $multi_os_directory in
   .) ;; # Avoid trailing /.
Index: b/src/libgcc/configure.ac
===
--- a/src/libgcc/configure.ac
+++ b/src/libgcc/configure.ac
@@ -95,15 +95,6 @@
 slibdir="$with_slibdir",
 if test "${version_specific_libs}" = yes; then
   slibdir='$(libsubdir)'
-elif test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then
-  case ${with_toolexeclibdir} in
-no)
-  slibdir='$(exec_prefix)/$(host_noncanonical)/lib'
-  ;;
-*)
-  slibdir=${with_toolexeclibdir}
-  ;;
-  esac
 else
   slibdir='$(libdir)'
 fi)
@@ -141,22 +132,8 @@
 toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
 ;;
   no)
-if test -n "$with_cross_host" &&
-   test x"$with_cross_host" != x"no"; then
-  # Install a library built with a cross compiler in tooldir, not libdir.
-  toolexecdir='$(exec_prefix)/$(target_noncanonical)'
-  case ${with_toolexeclibdir} in
-	no)
-	  toolexeclibdir='$(toolexecdir)/lib'
-	  ;;
-	*)
-	  toolexeclibdir=${with_toolexeclibdir}
-	  ;;
-  esac
-else
-  toolexecdir='$(libdir)/gcc-lib/$(target_noncanonical)'
-  toolexeclibdir='$(libdir)'
-fi
+toolexecdir='$(libdir)/gcc-lib/$(target_noncanonical)'
+toolexeclibdir='$(libdir)'
 multi_os_directory=`$CC -print-multi-os-directory`
 case $multi_os_directory in
   .) ;; # Avoid trailing /.
Index: b/src/libgfortran/configure.ac
===
--- a/src/libgfortran/configure.ac
+++ b/src/libgfortran/configure.ac
@@ -98,22 +98,8 @@
 toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
 ;;
   no)
-if test -n "$with_cross_host" &&
-   test x"$with_cross_host" != x"no"; then
-  # Install a library built with a cross compiler in tooldir, not libdir.
-  toolexecdir='$(exec_prefix)/$(target_alias)'
-  case ${with_toolexeclibdir} in
-	no)
-	  toolexeclibdir='$(toolexecdir)/lib'
-	  ;;
-	*)
-	  toolexeclibdir=${with_toolexeclibdir}
-	  ;;
-  esac
-else
-  toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
-  toolexeclibdir='$(libdir)'
-fi
+toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
+toolexeclibdir='$(libdir)'
 multi_os_directory=`$CC -print-multi-os-directory`
 case $multi_os_directory in
   .) ;; # Avoid trailing /.
Index: b/src/libgo/configure.ac
===
--- a/src/libgo/configure.ac
+++ b/src/libgo/configure.ac
@@ -80,21 +80,8 @@
 
 # Calculate glibgo_toolexecdir, glibgo_toolexeclibdir
 # Install a library built with a cross compiler in tooldir, not 

Bug#947235: port patches to gcc-10

2019-12-23 Thread Helmut Grohne
Package: cross-gcc-dev
Severity: important
User: helm...@debian.org
Usertags: rebootstrap

Please add an initial patch stack for gcc-10 from experimental. If it
doesn't work, I'll send patches to make it work. Just make it available
soon please. If you also check that the patches apply, that could save a
few round trips. Thank you.

Helmut



Re: state of mipsen cross toolchains

2019-10-28 Thread Helmut Grohne
Hi Matthias,

On Mon, Oct 28, 2019 at 09:28:14PM +0100, Matthias Klose wrote:
> If you think, there is coordination needed, then you were probably not aware
> of dropping mips as a release architecture and not adding it as a port.

I'm sorry, my previous mail contained a very misleading typo. Where I
wrote "crossbuild-essential-mips", I actually meant
"crossbuild-essential-mipsel". No, I'm not trying to get "mips" back.

Due to this typo, your answer does not answer any of my questions. I'm
actually interested in the fate of the remaining release mipsen
architectures. Or maybe I'm missing plans to remove all mipsen as
release architectures?

> The move of the remaining two mips* targets to -cross-mipsen were
> coordinated with YunQiang Su, however I didn't expect him adding back mips.

It's great that you coordinated it with YunQiang Su. However
coordinating the development of cross toolchains with debian-cross would
seem to be a fairly obvious thing to do, no? Especially if your changes
render cross toolchains unusable for months.

Helmut



state of mipsen cross toolchains

2019-10-27 Thread Helmut Grohne
Hi,

around September 13th, support for cross building packages for mipsen
(i.e. crossbuild-essential-*) was removed from unstable without any
coordination with debian-cr...@lists.debian.org. Since then, I inquired
multiple times on the state of these cross toolchains without any useful
replies.

I see that we now have binutils-mipsen, gcc-9-cross-mipsen,
gcc-defaults-mipsen, but no build-essential-mipsen.

What is the plan for crossbuild-essential-mips and
crossbuild-essential-mips64el? Are these supposed to come back
eventually? If so, when?

In the absence of these packages, should I remove support for mipsen
from crossqa.debian.net?

Helmut



Bug#936092: gcc-9 patches apply even less

2019-08-29 Thread Helmut Grohne
Source: cross-gcc
Version: 231
Severity: serious
Tags: patch
Control: block -1 by 928035

On top of #928035, there is another change in gcc-9 that makes the gcc-9
patches no longer apply. The attached patch resolves the relevant hunk.
Please consider uploading a new version that works with the current
gcc-9.

Helmut
--- a/gcc-9/0004-added-multi-arch-specific-install-location-patch.patch
+++ b/gcc-9/0004-added-multi-arch-specific-install-location-patch.patch
@@ -368,9 +388,9 @@
 +  else
 +debian_patches += cross-install-location
 +  endif
- endif
- 
- ifeq ($(DEB_TARGET_ARCH_OS),hurd)
+   ifeq ($(with_m2),yes)
+ debian_patches += cross-install-location-gm2
+   endif
 -- 
 2.17.1



Bug#932762: fakeroot file somefile: Bad system call

2019-07-22 Thread Helmut Grohne
Package: file
Version: 1:5.37-3
Severity: serious
Control: affects -1 + src:unbound

file no longer works under fakeroot. For example:

$ fakeroot file /bin/true
Bad system call
$ echo $?
159
$

This is relevant when packages that still require root for building use
fakeroot and then call file. autoconf tends to use file and such use
breaks cross building unbound for mips64el as it detects LD="ld -m elf"
instead of LD="ld -m elf64smip". I suspect that this is also what breaks
building binutils and causes the autopkgtest regression.

Can we please disable seccomp until a solution for fakeroot is found?

Helmut



Bug#928035: gcc-9 patches no longer applies

2019-04-26 Thread Helmut Grohne
Package: cross-gcc-dev
Version: 226
Severity: important
Tags: patch
User: helm...@debian.org
Usertags: rebootstrap

This bug is the second half of #925950. The bug was fixed for gcc-8, but
not for gcc-9. Filing a new one at non-rc severity now. The fix is:

sed -i -e 's/\(`TARGET\))/\1/' patches/gcc-9/*-now-depend-on-cpp-*

Helmut



Bug#927230: cross-gcc-dev: gcc-9 patch application failure

2019-04-16 Thread Helmut Grohne
Package: cross-gcc-dev
Version: 230
Tags: patch bullseye sid
Control: fixed 925950 230

When trying to apply the patched gcc-9 patches during a gcc-9 build, one
gets a patch application failure during cross-ma-install-location.diff.
It turns out that libmpx got removed in gcc-9, so it needs to be dropped
from cross-ma-install-location.diff as well. The attached patch does
just that.

It also seems like the fixed version in #925950 is not properly
recorded[1]. Using the opportunity to record the correct one.

Helmut

[1] Niels Thykier suggested that it was wrong when he closed the
relevant unblock. One can use "fixed 925950 230" or "fixed 925950
cross-gcc/230", but "fixed 925950 cross-gcc-dev/230" does not work.
You cannot fix something in a binary package.
--- a/patches/gcc-9/0004-added-multi-arch-specific-install-location-patch.patch
+++ b/patches/gcc-9/0004-added-multi-arch-specific-install-location-patch.patch
@@ -16,7 +16,7 @@
 index 000..7dd01d0
 --- /dev/null
 +++ b/debian/patches/cross-ma-install-location.diff
-@@ -0,0 +1,357 @@
+@@ -0,0 +1,337 @@
 +Index: b/src/libada/configure.ac
 +===
 +--- a/src/libada/configure.ac
@@ -340,26 +340,6 @@
 + toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
 + ;;
 +   no)
-+-if test -n "$with_cross_host" &&
-+-   test x"$with_cross_host" != x"no"; then
-+-  # Install a library built with a cross compiler in tooldir, not libdir.
-+-  toolexecdir='$(exec_prefix)/$(target_alias)'
-+-  toolexeclibdir='$(toolexecdir)/lib'
-+-else
-+-  toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
-+-  toolexeclibdir='$(libdir)'
-+-fi
-++toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
-++toolexeclibdir='$(libdir)'
-+ multi_os_directory=`$CC -print-multi-os-directory`
-+ case $multi_os_directory in
-+   .) ;; # Avoid trailing /.
-+--- a/src/libmpx/configure.ac
- b/src/libmpx/configure.ac
-+@@ -70,15 +70,8 @@
-+ toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
-+ ;;
-+   no)
 +-if test -n "$with_cross_host" &&
 +-   test x"$with_cross_host" != x"no"; then
 +-  # Install a library built with a cross compiler in tooldir, not libdir.


Bug#925950: patches no longer apply for gcc-8 and gcc-9

2019-03-30 Thread Helmut Grohne
Control: fixed -1 cross-gcc-dev/230

Hi Dima,

Great to see that you've already taken care. Much appreciated.

On Fri, Mar 29, 2019 at 02:07:11PM -0700, Dima Kogan wrote:
> My key situation should be resolved with the next keyring update, but
> this will take a few weeks probably. If it's useful to you, you should
> push the new package into the archive.

I've worked around this locally now, so there is no urgency from my
side.

However, getting this into buster in a timely manner could be useful.

If your key update takes longer, I can sponsor the upload.

Helmut



Bug#925950: patches no longer apply for gcc-8 and gcc-9

2019-03-28 Thread Helmut Grohne
Package: cross-gcc-dev
Version: 226
Severity: serious
Tags: patch

The patches for gcc-8 and gcc-9 no longer apply to unstable. Around two
weeks ago that used to work. Apparently, Matthias fixed a typo in
debian/control.m4 and that happens to break the hunk context of one
patch. The following sed expression fixes the patches:


sed -i -e 's/\(`TARGET\))/\1/' patches/gcc-[89]/*-now-depend-on-cpp-*

Helmut



Bug#918397: cross-gcc-dev should support gcc-9

2019-01-05 Thread Helmut Grohne
Package: cross-gcc-dev
Version: 217
Severity: important
User: helm...@debian.org
Usertags: rebootstrap

Please rebase the patch series for gcc-9, which is available in
experimental since today.

Helmut



Bug#894745: cross-gcc-dev patches misapply for recent gcc-7 and gcc-8

2018-04-03 Thread Helmut Grohne
Package: cross-gcc-dev
Version: 184
Severity: important
Tags: patch
User: helm...@debian.org
Usertags: rebootstrap

The recent gcc-7 and gcc-8 uploads add a feature called
FORCE_CROSS_LAYOUT. After these uploads, the cross-gcc-dev patches still
apply, but they apply in a useless way. Part of their effect is moved
from the cross compiler branch to the new FORCE_CROSS_LAYOUT branch and
thus rendered ineffective. The attached patch fixes that.

Helmut
--- cross-gcc-184/debian/changelog
+++ cross-gcc-184+nmu1/debian/changelog
@@ -1,3 +1,10 @@
+cross-gcc (184+nmu1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Update for FORCE_CROSS_LAYOUT. (Closes: #-1)
+
+ -- Helmut Grohne <hel...@subdivi.de>  Tue, 03 Apr 2018 21:34:54 +0200
+
 cross-gcc (184) unstable; urgency=medium
 
   * rebuild for 8-20180331-1
--- 
cross-gcc-184/patches/gcc-7/0005-setting-all-the-various-paths-options-for-with_deps_.patch
+++ 
cross-gcc-184+nmu1/patches/gcc-7/0005-setting-all-the-various-paths-options-for-with_deps_.patch
@@ -83,11 +83,18 @@
 index caa8b5e..e9eaf0f 100644
 --- a/debian/rules.defs
 +++ b/debian/rules.defs
-@@ -209,6 +209,9 @@ else
+@@ -209,10 +209,16 @@ else
  # cross compiler, sets WITH_SYSROOT on it's own
  DEB_CROSS = yes
  build_type = build-cross
 +ifeq ($(with_deps_on_target_arch_pkgs),yes)
++  with_sysroot = /
++endif
+   else ifeq ($(FORCE_CROSS_LAYOUT),yes)
+ # a native build with a cross layout
+ DEB_CROSS = yes
+ build_type = build-cross
++ifeq ($(with_deps_on_target_arch_pkgs),yes)
 +  with_sysroot = /
 +endif
else
--- 
cross-gcc-184/patches/gcc-8/0005-setting-all-the-various-paths-options-for-with_deps_.patch
+++ 
cross-gcc-184+nmu1/patches/gcc-8/0005-setting-all-the-various-paths-options-for-with_deps_.patch
@@ -83,11 +83,18 @@
 index c63af56..3690f1b 100644
 --- a/debian/rules.defs
 +++ b/debian/rules.defs
-@@ -209,6 +209,9 @@ else
+@@ -209,10 +209,16 @@ else
  # cross compiler, sets WITH_SYSROOT on it's own
  DEB_CROSS = yes
  build_type = build-cross
 +ifeq ($(with_deps_on_target_arch_pkgs),yes)
++  with_sysroot = /
++endif
+   else ifeq ($(FORCE_CROSS_LAYOUT),yes)
+ # a native build with a cross layout
+ DEB_CROSS = yes
+ build_type = build-cross
++ifeq ($(with_deps_on_target_arch_pkgs),yes)
 +  with_sysroot = /
 +endif
else


Bug#884051: cross-gcc-dev needs an update for the gcc-8 cilkrts removal

2017-12-10 Thread Helmut Grohne
Source: cross-gcc
Version: 163
Tags: patch
User: helm...@debian.org
Usertags: rebootstrap

cilkrts got removed from gcc-8, so cross-ma-install-location.diff needs
to stop patching it.

Helmut
--- 0004-added-multi-arch-specific-install-location-patch.patch
+++ 0004-added-multi-arch-specific-install-location-patch.patch
@@ -16,7 +16,7 @@
 index 000..97117d6
 --- /dev/null
 +++ b/debian/patches/cross-ma-install-location.diff
-@@ -0,0 +1,379 @@
+@@ -0,0 +1,357 @@
 +Index: b/src/libada/configure.ac
 +===
 +--- a/src/libada/configure.ac
@@ -340,28 +340,6 @@
 + toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
 + ;;
 +   no)
-+-if test -n "$with_cross_host" &&
-+-   test x"$with_cross_host" != x"no"; then
-+-  # Install a library built with a cross compiler in tooldir, not libdir.
-+-  toolexecdir='$(exec_prefix)/$(target_alias)'
-+-  toolexeclibdir='$(toolexecdir)/lib'
-+-else
-+-  toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
-+-  toolexeclibdir='$(libdir)'
-+-fi
-++toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
-++toolexeclibdir='$(libdir)'
-+ multi_os_directory=`$CC -print-multi-os-directory`
-+ case $multi_os_directory in
-+   .) ;; # Avoid trailing /.
-+Index: b/src/libcilkrts/configure.ac
-+===
-+--- a/src/libcilkrts/configure.ac
- b/src/libcilkrts/configure.ac
-+@@ -103,15 +103,8 @@
-+ toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
-+ ;;
-+   no)
 +-if test -n "$with_cross_host" &&
 +-   test x"$with_cross_host" != x"no"; then
 +-  # Install a library built with a cross compiler in tooldir, not libdir.


Bug#880917: cross-gcc-dev: gcc-8/0008-g-include-directories-functional-again.patch: broken patch

2017-11-05 Thread Helmut Grohne
Package: cross-gcc-dev
Version: 154
Tags: patch
User: helm...@debian.org
Usertags: rebootstrap

Hi Dima and Wookey,

thanks for maintaining cross-gcc-dev. I noticed while the present gcc-8
patches do apply against gcc-8, they end up breaking
g++-multiarch-incdir.diff.
gcc-8/0008-g-include-directories-functional-again.patch has two hunks.
The first of the modifies a hunk header of g++-multiarch-incdir.diff.
That modification turns g++-multiarch-incdir.diff into a broken patch.
The first hunk should be removed. The following command nullifies it:

sed -i -e '/^+@@ -223,7 +235,45 @@/s/45/16/' 
patches/gcc-8/0008-g-include-directories-functional-again.patch

After doing so, I can bootstrap gcc-8 for some architectures.

Helmut



Bug#879774: cross-gcc-dev patches no longer apply to gcc-7 nor gcc-8

2017-10-25 Thread Helmut Grohne
Package: cross-gcc-dev
Version: 149
Severity: serious

The patches no longer apply to gcc-7 nor gcc-8. Most likely this is due
to the Priority change. Please rebase.

Helmut



Bug#878356: cross-gcc-dev should support gcc-8

2017-10-13 Thread Helmut Grohne
Package: cross-gcc-dev
Severity: important
User: helm...@debian.org
Usertags: rebootstrap

Please add support for gcc-8. That can have multiple forms, each of
which has its own benefit:

a) Just copy the gcc-7 patches to gcc-8 and hope for the best.
b) Make the patches apply to the gcc-8 source package.
c) Verify that a cross compiler can be built.

a) has close to zero effort, b) likely takes an hour or so and c)
longer. If you can do b), that'd be very useful already, but even a)
helps. I'm happy to file followup bug reports with patches. The earlier
we start, the less work we'll have. Go go.

Helmut



Bug#783731: patch application fails for gcc-5

2015-04-29 Thread Helmut Grohne
Package: cross-gcc-dev
Version: 17
Tags: patch
User: helm...@debian.org
Usertags: rebootstrap

Patch application fails with gcc-5. The attached patch fixes that. No
provisions are made as to whether the resulting source tree can be
built.

Helmut
diff -Nru cross-gcc-17/debian/changelog cross-gcc-17+nmu1/debian/changelog
--- cross-gcc-17/debian/changelog   2015-04-26 05:17:35.0 +0200
+++ cross-gcc-17+nmu1/debian/changelog  2015-04-29 16:58:26.0 +0200
@@ -1,3 +1,10 @@
+cross-gcc (17+nmu1) UNRELEASED; urgency=low
+
+  * Non-maintainer upload.
+  * Fix patch application for gcc-5. (Closes: #-1)
+
+ -- Helmut Grohne hel...@subdivi.de  Wed, 29 Apr 2015 16:58:16 +0200
+
 cross-gcc (17) experimental; urgency=medium
 
   * rules.generic now specifies bash as the SHELL (Closes: #780583)
diff -Nru 
cross-gcc-17/patches/gcc-5/0004-reverted-removal-of-with_deps_on_target_arch_pkgs-in.patch
 
cross-gcc-17+nmu1/patches/gcc-5/0004-reverted-removal-of-with_deps_on_target_arch_pkgs-in.patch
--- 
cross-gcc-17/patches/gcc-5/0004-reverted-removal-of-with_deps_on_target_arch_pkgs-in.patch
  2015-04-26 02:54:06.0 +0200
+++ 
cross-gcc-17+nmu1/patches/gcc-5/0004-reverted-removal-of-with_deps_on_target_arch_pkgs-in.patch
 2015-04-29 16:58:03.0 +0200
@@ -511,9 +511,9 @@
 --- a/debian/rules.defs
 +++ b/debian/rules.defs
 @@ -177,6 +177,9 @@ else
-   ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_TARGET_GNU_TYPE))
  # cross compiler, sets WITH_SYSROOT on it's own
  DEB_CROSS = yes
+ build_type = build-cross
 +ifeq ($(with_deps_on_target_arch_pkgs),yes)
 +  with_sysroot = /
 +endif


Bug#782071: gcc-5 patches no longer apply at all

2015-04-07 Thread Helmut Grohne
Package: cross-gcc-dev
Version: 13
Tags: patch
User: helm...@debian.org
Usertags: rebootstrap

The gcc-5 patch set no longer applies at all. The cxx_inc_dir make
variable was removed entirely, thus hunk that changes it no longer
applies. It can simply be dropped.

Helmut
diff -Nru cross-gcc-13/debian/changelog cross-gcc-13+nmu1/debian/changelog
--- cross-gcc-13/debian/changelog   2015-01-28 07:18:12.0 +0100
+++ cross-gcc-13+nmu1/debian/changelog  2015-04-07 13:12:26.0 +0200
@@ -1,3 +1,10 @@
+cross-gcc (13+nmu1) UNRELEASED; urgency=low
+
+  * Non-maintainer upload.
+  * Fix gcc-5 patches to apply against 5-20150404. (Closes: #-1)
+
+ -- Helmut Grohne hel...@subdivi.de  Tue, 07 Apr 2015 13:11:36 +0200
+
 cross-gcc (13) unstable; urgency=medium
 
   * Supporting multiple gcc trees at the same time. Currently 4.9 and 5
diff -Nru 
cross-gcc-13/patches/gcc-5/0004-reverted-removal-of-with_deps_on_target_arch_pkgs-in.patch
 
cross-gcc-13+nmu1/patches/gcc-5/0004-reverted-removal-of-with_deps_on_target_arch_pkgs-in.patch
--- 
cross-gcc-13/patches/gcc-5/0004-reverted-removal-of-with_deps_on_target_arch_pkgs-in.patch
  2015-01-28 07:18:12.0 +0100
+++ 
cross-gcc-13+nmu1/patches/gcc-5/0004-reverted-removal-of-with_deps_on_target_arch_pkgs-in.patch
 2015-04-07 13:11:17.0 +0200
@@ -712,19 +712,6 @@
endif
  else
usr_lib = $(PFL)/$(libdir)
-@@ -921,7 +942,11 @@ ifneq ($(DEB_CROSS),yes)
- cxx_inc_dir   = $(PF)/include/c++/$(GCC_VERSION)
-   endif
- else
--  cxx_inc_dir = $(PF)/$(TARGET_ALIAS)/include/c++/$(GCC_VERSION)
-+  ifeq ($(with_deps_on_target_arch_pkgs),yes)
-+cxx_inc_dir   = $(PF)/include/c++/$(BASE_VERSION)
-+  else
-+cxx_inc_dir   = $(PF)/$(TARGET_ALIAS)/include/c++/$(GCC_VERSION)
-+  endif
- endif
- 
- # FIXME: MULTIARCH_DIRNAME needed for g++-multiarch-incdir.diff
 @@ -1750,8 +1775,13 @@ ifneq ($(DEB_CROSS),yes)
p_lgcc = libgcc$(GCC_SONAME)
  else


Bug#776509: building gcc-5 cross toolchains fails at applying cross-ma-install-location.diff

2015-01-28 Thread Helmut Grohne
Package: cross-gcc-dev
Version: 13
Tags: patch
User: helm...@debian.org
Usertags: rebootstrap

Steps to reproduce:
$ apt-get source gcc-5
...
$ cd gcc-5-*
$ QUILT_PATCHES=/usr/share/cross-gcc/patches/gcc-5 quilt push -a
...
$ echo arm64  debian/target
$ ./debian/rules patch
...

The last step fails at applying cross-ma-install-location.diff. The
attached patch updates src:cross-gcc to update the patch that adds
cross-ma-install-location.diff to the gcc source (i.e. it is a diff of a
diff of a diff %-). All that changed (in the innermost diff) is hunk
context.

Helmut
diff -Nru cross-gcc-13/debian/changelog cross-gcc-13+nmu1/debian/changelog
--- cross-gcc-13/debian/changelog
+++ cross-gcc-13+nmu1/debian/changelog
@@ -1,3 +1,10 @@
+cross-gcc (13+nmu1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix cross-ma-install-location.diff for gcc-5. (Closes: #-1)
+
+ -- Helmut Grohne hel...@subdivi.de  Wed, 28 Jan 2015 21:26:38 +
+
 cross-gcc (13) unstable; urgency=medium
 
   * Supporting multiple gcc trees at the same time. Currently 4.9 and 5
diff -Nru 
cross-gcc-13/patches/gcc-5/0004-reverted-removal-of-with_deps_on_target_arch_pkgs-in.patch
 
cross-gcc-13+nmu1/patches/gcc-5/0004-reverted-removal-of-with_deps_on_target_arch_pkgs-in.patch
--- 
cross-gcc-13/patches/gcc-5/0004-reverted-removal-of-with_deps_on_target_arch_pkgs-in.patch
+++ 
cross-gcc-13+nmu1/patches/gcc-5/0004-reverted-removal-of-with_deps_on_target_arch_pkgs-in.patch
@@ -171,7 +171,7 @@
 +-fi
 ++nover_glibgo_toolexecdir='${libdir}/gcc/${host_alias}'
 ++nover_glibgo_toolexeclibdir='${libdir}'
-+ multi_os_directory=`$CC -print-multi-os-directory`
++ multi_os_directory=`$GOC -print-multi-os-directory`
 + case $multi_os_directory in
 +   .) ;; # Avoid trailing /.
 +Index: b/src/libgomp/configure.ac


Re: Bug#774719: missing Build-Depends: gcc-4.9-base

2015-01-07 Thread Helmut Grohne
clone 774719 -1
reassign -1 src:gcc-cross-support
retitle -1 dependencies on cross-gcc-defaults must be versioned
thanks

On Wed, Jan 07, 2015 at 06:30:41PM +, Wookey wrote:
 But I see that the actual point here (which you didn't make clear
 above) is that currently it fails if gcc-4.9-base is not installed
 because it uses it to derive the current version number of gcc.

I'll try to be more explicit next time. Thanks for seeking
clarification.

 gcc-4.9-base is not actually essential, it's build-essential, which I
 presume is what you meant.

gcc-4.9-base is actually pseudo-essential in sid as essential packages
(transitively) depend on it.

 I'm not convinced that we should add a
 build-dep on a build-essential thing, just to make sure that it will
 fail marginally faster on a suite for which it is not available. The
 best reason for listing such build-deps is to help bootstrapping, and
 this one is MA:same, so maybe that makes sense?

You do mean MA:foreign, no?

 Thats only useful if a new cross-gcc-defaults is uploaded (or a binnmu
 requested) everytime a new cross-gcc-ver-arch is uploaded (and
 this does mean that the version number match up for users so they
 don't get confused what version of the compiler is installed).
 
 But gcc-native is not doing this:
 apt-cache show g++
  4:4.9.2-1   
 apt-cache show g++-4.9
  4.9.2-10
 
 And neither are we currently. It would probably be easy to arrange to
 binnmu this for every new cross-toolchain upload and make sure they
 _do_ match up.

Arguably, it may be useful if these version bumps are done occasionally
and on request (i.e. if a major gcc bug is fixed). Having this bumping
semi-automatically may help or may not depending on the color of your
bike shed.

 If the versioned-cross-compiler and cross-compiler package version
 numbers don't match up then maybe the unversionned (gcc-triplet)
 packages should just use the source version, and stop pretending to
 match. If we did that then the build-dep on gcc-x.y-base would go away.

Please don't. We have quite a number of packages that currently
Build-Depends: gcc (= ...) (and surprisingly many forget the epoch
;-). Assuming that we will use the gcc-cross-support approach for
translating build-depends, this will become Build-Depends: gcc-for-host
(= ...).  Thus gcc-for-host must use the same versioning as gcc. It
can only do so if it can pass on version constraints to
cross-gcc-defaults.

Note: gcc-cross-support currently gets this wrong. It doesn't have a
versioned dep, but needs to do so. Bug added above.

 Similarly the Depends: = 'build time gcc base ver' isn't useful so
 far as I can see. It should either be a fixed value that changes when
 there is some actual change in the package sets provided -
 e.g. front-ends added/removed, or architectures added/removed. (I
 think this is what the native gcc-defaults package is doing.) But of
 course that does require someone to remember to update it.

We should certainly do something that is close to what the native
gcc-defaults does as this works in the native case. Possibly the easiest
way to do so is picking the value from gcc rather than gcc-X.Y-base.

 Or there shouldn't be a versionned dep at all. After all this is just
 a link. Any available, installable, cross-toolchain package will
 satisfy and work, so I'm not convinced that we need anything more
 explicit. Can anyone come up with reasons why that won't work?

If it isn't versioned, it'll break lots of Build-Depends (after
cross translation).

 The longer-term plan is (was?) for this package to merge into the main
 gcc-defaults so maybe it's not worth worrying about much.

Seems reasonable. Also for cross-gcc-support.

 So, for now I propose not to add the build-dep, and not to change the
 version-number logic, and try the binNMU-on-upload idea. If that's not a
 faff then I think it'll be nicest for users.

What do you think about using the version of the gcc binary package
instead? It should update less often and is good enough for the native
case.

Helmut


-- 
To UNSUBSCRIBE, email to debian-toolchain-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20150107192059.gb16...@alf.mars



Bug#774719: missing Build-Depends: gcc-4.9-base

2015-01-06 Thread Helmut Grohne
Package: src:cross-gcc-defaults
Version: 0.4
User: helm...@debian.org
Usertags: rebootstrap

While gcc-4.9-base is essential in unstable and jessie, it is
unavailable in wheezy. Therefore it would be good to mark
cross-gcc-defaults as not being buildable there by Build-Depending on
gcc-4.9-base.

Helmut


-- 
To UNSUBSCRIBE, email to debian-toolchain-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20150106191926.ga13...@alf.mars



Bug#774739: triplet-gcc-ar missing in package gcc-triplet

2015-01-06 Thread Helmut Grohne
Package: src:cross-gcc-defaults
Version: 0.4
Tags: patch
User: helm...@debian.org
Usertags: rebootstrap

The regular src:gcc-defaults package adds a gcc-ar - gcc-ar-X.Y symlink
to the gcc binary package. At least the python2.7 build expects a
triplet prefixed version of this link, but it is not found in the
gcc-triplet packages. I am proposing the attached patch to address
this issue.

Helmut
diff -Nru cross-gcc-defaults-0.4/debian/changelog 
cross-gcc-defaults-0.4+nmu1/debian/changelog
--- cross-gcc-defaults-0.4/debian/changelog 2014-11-04 06:19:52.0 
+0100
+++ cross-gcc-defaults-0.4+nmu1/debian/changelog2015-01-06 
20:15:13.0 +0100
@@ -1,3 +1,10 @@
+cross-gcc-defaults (0.4+nmu1) UNRELEASED; urgency=low
+
+  * Non-maintainer upload.
+  * Add a gcc-ar symlink to the gcc-* packages. (Closes: #-1)
+
+ -- Helmut Grohne hel...@subdivi.de  Tue, 06 Jan 2015 20:14:55 +0100
+
 cross-gcc-defaults (0.4) unstable; urgency=low
 
   * Added gobjc and gccgo to the default set of cross-toolchains built
diff -Nru cross-gcc-defaults-0.4/debian/defaults 
cross-gcc-defaults-0.4+nmu1/debian/defaults
--- cross-gcc-defaults-0.4/debian/defaults  2014-11-04 06:18:13.0 
+0100
+++ cross-gcc-defaults-0.4+nmu1/debian/defaults 2015-01-06 20:13:17.0 
+0100
@@ -1,6 +1,7 @@
-cpp 4.9
-gcc 4.9
-g++ 4.9
-gfortran 4.9
-gobjc 4.9
-gccgo 4.9
\ No newline at end of file
+cpp cpp 4.9
+gcc gcc 4.9
+gcc gcc-ar 4.9
+g++ g++ 4.9
+gfortran gfortran 4.9
+gobjc gobjc 4.9
+gccgo gccgo 4.9
diff -Nru cross-gcc-defaults-0.4/debian/rules 
cross-gcc-defaults-0.4+nmu1/debian/rules
--- cross-gcc-defaults-0.4/debian/rules 2014-11-21 20:10:49.0 +0100
+++ cross-gcc-defaults-0.4+nmu1/debian/rules2015-01-06 20:14:41.0 
+0100
@@ -38,8 +38,8 @@
 
 override_dh_auto_install:
for arch in $(ARCHES_GNU_TYPE); do  
\
-   while read prog ver; do 
\
-   dh_link -p$$prog-$$arch usr/bin/$$arch-$$prog-$$ver 
usr/bin/$$arch-$$prog;  \
+   while read pkg prog ver; do 
\
+   dh_link -p$$pkg-$$arch usr/bin/$$arch-$$prog-$$ver 
usr/bin/$$arch-$$prog;   \
 done  debian/defaults;
\
done
 


Bug#774356: stage2 powerpc multilib wdotap build fails

2015-01-01 Thread Helmut Grohne
Package: cross-gcc-dev
Version: 11
User: helm...@debian.org
Usertags: rebootstrap

A wdotap stage2 cross build from amd64 targeting powerpc with multilib
fails. The tail of the log[1] is:

| : # ppc 64bit build slaps libgcc and libstdc++ to powerpc64-linux-gnu
| mkdir -p debian/tmp/usr/powerpc-linux-gnu/lib64
| cp -a debian/tmp/usr/powerpc64-linux-gnu/lib64/* 
debian/tmp/usr/powerpc-linux-gnu/lib64/
| cp: cannot stat 'debian/tmp/usr/powerpc64-linux-gnu/lib64/*': No such file or 
directory
| debian/rules2:2060: recipe for target 'stamps/07-install-stamp' failed
| make[1]: *** [stamps/07-install-stamp] Error 1
| make[1]: Leaving directory '/tmp/buildd/gcc2/gcc-4.9-4.9.2'
| debian/rules:80: recipe for target 'stamps/07-install-stamp' failed

The remainder of the build log tells that this is the first mention of
powerpc64-linux-gnu/lib64. Instead the files mentioned are installed
in the intended location (where they would be copied to).

So I attempted a build with the same configuration except for disabling
wdotap (i.e. using the supported method) and indeed the supported method
does not fail here. This is why I am filing the bug against
cross-gcc-dev.

The relevant code can be found in gcc-4.9's debian/rules2[2] (search for
slaps). It is conditional to:
 * DEB_CROSS = yes
 * multilib = yes
 * DEB_STAGE != stage1
 * DEB_TARGET_ARCH = powerpc
 * biarch64 = yes

Likely, this should also become conditional to
with_deps_on_target_arch_pkgs != yes. The interesting bit here is that
there is similar fix above this fix for DEB_TARGET_ARCH=s390. It is not
clear whether it should also be disabled for wdotap. In particular, this
cannot be tested, because glibc no longer builds for s390, so we cannot
satisfy Build-Depends.

What do you think? Opportunistically disable both or just the one we
know to be unneeded for wdotap? (Based on this description either patch
should be trivial.)

Helmut

[1] https://jenkins.debian.net/job/rebootstrap_powerpc_gcc49/96/console
[2] http://sources.debian.net/src/gcc-4.9/4.9.2-10/debian/rules2/#L2184


-- 
To UNSUBSCRIBE, email to debian-toolchain-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/20150101133615.ga28...@alf.mars