Bug#958674: glibc: refactor generation of multilib include symlinks
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 # -#mk
Bug#958674: glibc: refactor generation of multilib include symlinks
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
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 -Nru