Bug#958674: glibc: refactor generation of multilib include symlinks

2020-05-03 Thread Helmut Grohne
Hi Aurelien,

On Sun, May 03, 2020 at 11:32:41PM +0200, Aurelien Jarno wrote:
> On the principle I am fine with it, it's a nice cleanup. Now I still
> have one comment about it, see below.

Thank you for taking the time to review the patch.

> > --- glibc-2.30/debian/rules.d/build.mk  2020-03-25 13:36:06.0 
> > +0100
> > +++ glibc-2.30/debian/rules.d/build.mk  2020-04-24 08:02:08.0 
> > +0200
> > @@ -2,6 +2,16 @@
> >  # PASS_VAR, we need to call all variables as $(call xx,VAR)
> >  # This little bit of magic makes it possible:
> >  xx=$(if $($(curpass)_$(1)),$($(curpass)_$(1)),$($(1)))
> > +define generic_multilib_extra_pkg_install
> > +set -e; \
> > +mkdir -p debian/$(1)/usr/include/sys; \
> > +ln -sf $(DEB_HOST_GNU_TYPE)/bits debian/$(1)/usr/include/; \
> > +ln -sf $(DEB_HOST_GNU_TYPE)/gnu debian/$(1)/usr/include/; \
> > +ln -sf $(DEB_HOST_GNU_TYPE)/fpu_control.h debian/$(1)/usr/include/; \
> > +for i in `ls debian/tmp-libc/usr/include/$(DEB_HOST_GNU_TYPE)/sys`; do \
> > +   ln -sf ../$(DEB_HOST_GNU_TYPE)/sys/$$i debian/$(1)/usr/include/sys/$$i; 
> > \
> 
> DEB_HOST_GNU_TYPE doesn't look correct here. What we want here is the
> multiarch path, not the gnu triplet. They are similar on most
> architectures, but differ at least on i386.

You're right. This should be DEB_HOST_MULTIARCH of course. It's a little
embarrassing as I should know better. I've attached a revised version.

Is there anything else you object to?

Helmut
diff --minimal -Nru glibc-2.30/debian/changelog glibc-2.30/debian/changelog
--- glibc-2.30/debian/changelog 2020-03-25 13:56:56.0 +0100
+++ glibc-2.30/debian/changelog 2020-04-24 08:02:13.0 +0200
@@ -1,3 +1,10 @@
+glibc (2.30-4.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Refactor generation of multilib include symlinks. (Closes: #-1)
+
+ -- Helmut Grohne   Fri, 24 Apr 2020 08:02:13 +0200
+
 glibc (2.30-4) unstable; urgency=medium
 
   [ Aurelien Jarno ]
diff --minimal -Nru glibc-2.30/debian/rules.d/build.mk 
glibc-2.30/debian/rules.d/build.mk
--- glibc-2.30/debian/rules.d/build.mk  2020-03-25 13:36:06.0 +0100
+++ glibc-2.30/debian/rules.d/build.mk  2020-04-24 08:02:08.0 +0200
@@ -2,6 +2,16 @@
 # PASS_VAR, we need to call all variables as $(call xx,VAR)
 # This little bit of magic makes it possible:
 xx=$(if $($(curpass)_$(1)),$($(curpass)_$(1)),$($(1)))
+define generic_multilib_extra_pkg_install
+set -e; \
+mkdir -p debian/$(1)/usr/include/sys; \
+ln -sf $(DEB_HOST_MULTIARCH)/bits debian/$(1)/usr/include/; \
+ln -sf $(DEB_HOST_MULTIARCH)/gnu debian/$(1)/usr/include/; \
+ln -sf $(DEB_HOST_MULTIARCH)/fpu_control.h debian/$(1)/usr/include/; \
+for i in `ls debian/tmp-libc/usr/include/$(DEB_HOST_MULTIARCH)/sys`; do \
+   ln -sf ../$(DEB_HOST_MULTIARCH)/sys/$$i 
debian/$(1)/usr/include/sys/$$i; \
+done
+endef
 
 ifneq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
 libc_extra_config_options = $(extra_config_options) 
--disable-sanity-checks \
diff --minimal -Nru glibc-2.30/debian/sysdeps/amd64.mk 
glibc-2.30/debian/sysdeps/amd64.mk
--- glibc-2.30/debian/sysdeps/amd64.mk  2020-03-25 13:36:06.0 +0100
+++ glibc-2.30/debian/sysdeps/amd64.mk  2020-04-24 08:02:08.0 +0200
@@ -20,21 +20,13 @@
 
 define libc6-dev-i386_extra_pkg_install
 
-mkdir -p debian/libc6-dev-i386/usr/include
-ln -sf x86_64-linux-gnu/bits debian/libc6-dev-i386/usr/include/
-ln -sf x86_64-linux-gnu/gnu debian/libc6-dev-i386/usr/include/
-ln -sf x86_64-linux-gnu/fpu_control.h debian/libc6-dev-i386/usr/include/
+$(call generic_multilib_extra_pkg_install,libc6-dev-i386)
 
 mkdir -p debian/libc6-dev-i386/usr/include/x86_64-linux-gnu/gnu
 cp -a debian/tmp-i386/usr/include/gnu/lib-names-32.h \
debian/tmp-i386/usr/include/gnu/stubs-32.h \
debian/libc6-dev-i386/usr/include/x86_64-linux-gnu/gnu
 
-mkdir -p debian/libc6-dev-i386/usr/include/sys
-for i in `ls debian/tmp-libc/usr/include/x86_64-linux-gnu/sys` ; do \
-ln -sf ../x86_64-linux-gnu/sys/$$i 
debian/libc6-dev-i386/usr/include/sys/$$i ; \
-done
-
 endef
 
 define libc6-i386_extra_pkg_install
diff --minimal -Nru glibc-2.30/debian/sysdeps/armel.mk 
glibc-2.30/debian/sysdeps/armel.mk
--- glibc-2.30/debian/sysdeps/armel.mk  2020-03-11 22:13:40.0 +0100
+++ glibc-2.30/debian/sysdeps/armel.mk  2020-04-24 08:02:08.0 +0200
@@ -15,21 +15,13 @@
 #
 #define libc6-dev-armhf_extra_pkg_install
 #
-#mkdir -p debian/libc6-dev-armhf/usr/include
-#ln -sf arm-linux-gnueabi/bits debian/libc6-dev-armhf/usr/include/
-#ln -sf arm-linux-gnueabi/gnu debian/libc6-dev-armhf/usr/include/
-#ln -sf arm-linux-gnueabi/fpu_control.h debian/libc6-dev-armhf/usr/include/
+#$(call generic_multilib_extra_pkg_install,libc6-dev-armhf)
 #
 #mkdir -p debian/libc6-dev-armhf/usr/include/arm-linux-gnueabi/gnu
 #cp -a debian/tmp-armhf/usr/include/gnu/lib-names-hard.h \
 #  debian/tmp-armhf/usr/include/gnu/stubs-hard.h \
 #  debian/libc6-dev-armhf/usr/include/arm-linux-gnueabi/gnu
 #

Bug#958674: glibc: refactor generation of multilib include symlinks

2020-05-03 Thread Aurelien Jarno
Hi,

On 2020-04-24 11:24, Helmut Grohne wrote:
> Source: glibc
> Version: 2.30-4
> Severity: wishlist
> Tags: patch
> Control: block 798955 by -1
> 
> Hi Aurelien,
> 
> as you might have noticed, I resumed work on the long-standing multiarch
> glibc headers issue. It seems that we're mostly done with prerequisites
> now. Most patches with the exception of a qmake one have been filed a
> while ago, so it seems like time to move forward a little.
> 
> The resulting patch to glibc is not entirely trivial, so I've tried to
> split it into more manageable pieces:
> 
>  * This bug: Refactor generation of multilib include symlinks. It is
>essentially pulling a pile of duplicated code into a make define. As
>such it can be considered a cleanup patch (net -160 lines) and does
>not affect resulting packages in an observable way. It is readily
>applicable.
> 
>  * #798955 will receive an updated patch after applying this one. The
>updated patch is much smaller, which makes it easier to review.
> 
> Please don't let this patch sit in the bts for long. Either you like my
> approach of splitting the diff and can apply it. Fine. Or you disagree
> with it on some level. In that case, I'd like to learn your reason and
> have this bug closed and tagged wontfix.

On the principle I am fine with it, it's a nice cleanup. Now I still
have one comment about it, see below.

> diff --minimal -Nru glibc-2.30/debian/changelog glibc-2.30/debian/changelog
> --- glibc-2.30/debian/changelog   2020-03-25 13:56:56.0 +0100
> +++ glibc-2.30/debian/changelog   2020-04-24 08:02:13.0 +0200
> @@ -1,3 +1,10 @@
> +glibc (2.30-4.1) UNRELEASED; urgency=medium
> +
> +  * Non-maintainer upload.
> +  * Refactor generation of multilib include symlinks. (Closes: #-1)
> +
> + -- Helmut Grohne   Fri, 24 Apr 2020 08:02:13 +0200
> +
>  glibc (2.30-4) unstable; urgency=medium
>  
>[ Aurelien Jarno ]
> diff --minimal -Nru glibc-2.30/debian/rules.d/build.mk 
> glibc-2.30/debian/rules.d/build.mk
> --- glibc-2.30/debian/rules.d/build.mk2020-03-25 13:36:06.0 
> +0100
> +++ glibc-2.30/debian/rules.d/build.mk2020-04-24 08:02:08.0 
> +0200
> @@ -2,6 +2,16 @@
>  # PASS_VAR, we need to call all variables as $(call xx,VAR)
>  # This little bit of magic makes it possible:
>  xx=$(if $($(curpass)_$(1)),$($(curpass)_$(1)),$($(1)))
> +define generic_multilib_extra_pkg_install
> +set -e; \
> +mkdir -p debian/$(1)/usr/include/sys; \
> +ln -sf $(DEB_HOST_GNU_TYPE)/bits debian/$(1)/usr/include/; \
> +ln -sf $(DEB_HOST_GNU_TYPE)/gnu debian/$(1)/usr/include/; \
> +ln -sf $(DEB_HOST_GNU_TYPE)/fpu_control.h debian/$(1)/usr/include/; \
> +for i in `ls debian/tmp-libc/usr/include/$(DEB_HOST_GNU_TYPE)/sys`; do \
> + ln -sf ../$(DEB_HOST_GNU_TYPE)/sys/$$i debian/$(1)/usr/include/sys/$$i; 
> \

DEB_HOST_GNU_TYPE doesn't look correct here. What we want here is the
multiarch path, not the gnu triplet. They are similar on most
architectures, but differ at least on i386.

Aurelien

-- 
Aurelien Jarno  GPG: 4096R/1DDD8C9B
aurel...@aurel32.net http://www.aurel32.net



Bug#958674: glibc: refactor generation of multilib include symlinks

2020-04-24 Thread Helmut Grohne
Source: glibc
Version: 2.30-4
Severity: wishlist
Tags: patch
Control: block 798955 by -1

Hi Aurelien,

as you might have noticed, I resumed work on the long-standing multiarch
glibc headers issue. It seems that we're mostly done with prerequisites
now. Most patches with the exception of a qmake one have been filed a
while ago, so it seems like time to move forward a little.

The resulting patch to glibc is not entirely trivial, so I've tried to
split it into more manageable pieces:

 * This bug: Refactor generation of multilib include symlinks. It is
   essentially pulling a pile of duplicated code into a make define. As
   such it can be considered a cleanup patch (net -160 lines) and does
   not affect resulting packages in an observable way. It is readily
   applicable.

 * #798955 will receive an updated patch after applying this one. The
   updated patch is much smaller, which makes it easier to review.

Please don't let this patch sit in the bts for long. Either you like my
approach of splitting the diff and can apply it. Fine. Or you disagree
with it on some level. In that case, I'd like to learn your reason and
have this bug closed and tagged wontfix.

Helmut
diff --minimal -Nru glibc-2.30/debian/changelog glibc-2.30/debian/changelog
--- glibc-2.30/debian/changelog 2020-03-25 13:56:56.0 +0100
+++ glibc-2.30/debian/changelog 2020-04-24 08:02:13.0 +0200
@@ -1,3 +1,10 @@
+glibc (2.30-4.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Refactor generation of multilib include symlinks. (Closes: #-1)
+
+ -- Helmut Grohne   Fri, 24 Apr 2020 08:02:13 +0200
+
 glibc (2.30-4) unstable; urgency=medium
 
   [ Aurelien Jarno ]
diff --minimal -Nru glibc-2.30/debian/rules.d/build.mk 
glibc-2.30/debian/rules.d/build.mk
--- glibc-2.30/debian/rules.d/build.mk  2020-03-25 13:36:06.0 +0100
+++ glibc-2.30/debian/rules.d/build.mk  2020-04-24 08:02:08.0 +0200
@@ -2,6 +2,16 @@
 # PASS_VAR, we need to call all variables as $(call xx,VAR)
 # This little bit of magic makes it possible:
 xx=$(if $($(curpass)_$(1)),$($(curpass)_$(1)),$($(1)))
+define generic_multilib_extra_pkg_install
+set -e; \
+mkdir -p debian/$(1)/usr/include/sys; \
+ln -sf $(DEB_HOST_GNU_TYPE)/bits debian/$(1)/usr/include/; \
+ln -sf $(DEB_HOST_GNU_TYPE)/gnu debian/$(1)/usr/include/; \
+ln -sf $(DEB_HOST_GNU_TYPE)/fpu_control.h debian/$(1)/usr/include/; \
+for i in `ls debian/tmp-libc/usr/include/$(DEB_HOST_GNU_TYPE)/sys`; do \
+   ln -sf ../$(DEB_HOST_GNU_TYPE)/sys/$$i debian/$(1)/usr/include/sys/$$i; 
\
+done
+endef
 
 ifneq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
 libc_extra_config_options = $(extra_config_options) 
--disable-sanity-checks \
diff --minimal -Nru glibc-2.30/debian/sysdeps/amd64.mk 
glibc-2.30/debian/sysdeps/amd64.mk
--- glibc-2.30/debian/sysdeps/amd64.mk  2020-03-25 13:36:06.0 +0100
+++ glibc-2.30/debian/sysdeps/amd64.mk  2020-04-24 08:02:08.0 +0200
@@ -20,21 +20,13 @@
 
 define libc6-dev-i386_extra_pkg_install
 
-mkdir -p debian/libc6-dev-i386/usr/include
-ln -sf x86_64-linux-gnu/bits debian/libc6-dev-i386/usr/include/
-ln -sf x86_64-linux-gnu/gnu debian/libc6-dev-i386/usr/include/
-ln -sf x86_64-linux-gnu/fpu_control.h debian/libc6-dev-i386/usr/include/
+$(call generic_multilib_extra_pkg_install,libc6-dev-i386)
 
 mkdir -p debian/libc6-dev-i386/usr/include/x86_64-linux-gnu/gnu
 cp -a debian/tmp-i386/usr/include/gnu/lib-names-32.h \
debian/tmp-i386/usr/include/gnu/stubs-32.h \
debian/libc6-dev-i386/usr/include/x86_64-linux-gnu/gnu
 
-mkdir -p debian/libc6-dev-i386/usr/include/sys
-for i in `ls debian/tmp-libc/usr/include/x86_64-linux-gnu/sys` ; do \
-ln -sf ../x86_64-linux-gnu/sys/$$i 
debian/libc6-dev-i386/usr/include/sys/$$i ; \
-done
-
 endef
 
 define libc6-i386_extra_pkg_install
diff --minimal -Nru glibc-2.30/debian/sysdeps/armel.mk 
glibc-2.30/debian/sysdeps/armel.mk
--- glibc-2.30/debian/sysdeps/armel.mk  2020-03-11 22:13:40.0 +0100
+++ glibc-2.30/debian/sysdeps/armel.mk  2020-04-24 08:02:08.0 +0200
@@ -15,21 +15,13 @@
 #
 #define libc6-dev-armhf_extra_pkg_install
 #
-#mkdir -p debian/libc6-dev-armhf/usr/include
-#ln -sf arm-linux-gnueabi/bits debian/libc6-dev-armhf/usr/include/
-#ln -sf arm-linux-gnueabi/gnu debian/libc6-dev-armhf/usr/include/
-#ln -sf arm-linux-gnueabi/fpu_control.h debian/libc6-dev-armhf/usr/include/
+#$(call generic_multilib_extra_pkg_install,libc6-dev-armhf)
 #
 #mkdir -p debian/libc6-dev-armhf/usr/include/arm-linux-gnueabi/gnu
 #cp -a debian/tmp-armhf/usr/include/gnu/lib-names-hard.h \
 #  debian/tmp-armhf/usr/include/gnu/stubs-hard.h \
 #  debian/libc6-dev-armhf/usr/include/arm-linux-gnueabi/gnu
 #
-#mkdir -p debian/libc6-dev-armhf/usr/include/sys
-#for i in `ls debian/tmp-libc/usr/include/arm-linux-gnueabi/sys` ; do \
-#  ln -sf ../arm-linux-gnueabi/sys/$$i 
debian/libc6-dev-armhf/usr/include/sys/$$i ; \
-#done
-#
 #endef
 #
 #define libc6-armhf_extra_pkg_install
diff --minimal