Re: Bug#773300: Improve glibc bootstrap
Thank you for pointing them out.
On Wed, Dec 17, 2014 at 3:10 AM, Helmut Grohne <helmut@subdivi.de> wrote:
> On Tue, Dec 16, 2014 at 11:39:40PM +0800, YunQiang Su wrote:
>> Hi, the attached patch can improve bootstrapping of glibc.
>
> Partially, this seems to be a duplicate of #766877. Maybe these should
> be merged?
>
>> It produces the similiar stage1 glibc
>> (libc6/libc6-dev and multilib version of them),
>> at the same time, the dependencies of them are also correct.
>
> The documentation and rationale of this patch are scarce. I have a few
> comments on individual hunks though.
>
> diff -Nru glibc-2.19/debian/rules glibc-2.19/debian/rules
> --- glibc-2.19/debian/rules 2014-10-17 07:43:19.000000000 +0000
> +++ glibc-2.19/debian/rules 2014-12-10 23:16:28.000000000 +0000
> @@ -143,8 +143,12 @@
> endif
> endif
>
> +ifeq ($(DEB_STAGE),stage2)
> + DEB_BUILD_PROFILES+=stage2
> +endif
> +
> ifneq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
> - DEB_ARCH_REGULAR_PACKAGES = $(libc)-dev
> + DEB_ARCH_REGULAR_PACKAGES = $(libc)-dev $(libc)
> DEB_INDEP_REGULAR_PACKAGES =
> DEB_UDEB_PACKAGES =
> else
>
> I have no clue how one would build the libc in stage1. The gcc stage1
> does not provide the means for doing so. If anything those packages
> would be empty. I.e. this seems rather wrong to me.
Yes, it is a empty package and are used only for meeting dependency.
It is only for stage1, and it can make things simple.
I don't treat it as a problem.
>
> diff -Nru glibc-2.19/debian/sysdeps/linux.mk glibc-2.19/debian/sysdeps/linux.mk
> --- glibc-2.19/debian/sysdeps/linux.mk 2014-07-16 18:43:31.000000000 +0000
> +++ glibc-2.19/debian/sysdeps/linux.mk 2014-12-10 23:11:05.000000000 +0000
> @@ -16,11 +16,7 @@
> endif
>
> ifndef LINUX_SOURCE
> - ifeq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
> - LINUX_HEADERS := /usr/include
> - else
> - LINUX_HEADERS := /usr/$(DEB_HOST_GNU_TYPE)/include
> - endif
> + LINUX_HEADERS := /usr/include
> LINUX_ARCH_HEADERS := /usr/include/$(DEB_HOST_MULTIARCH)
> else
> LINUX_HEADERS := $(LINUX_SOURCE)/include
>
> This breaks the supported cross build method.
- ifeq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
+ ifeq ($(shell dpkg-query --status
linux-libc-dev-$(DEB_HOST_ARCH)-cross 2>/dev/null),)
LINUX_HEADERS := /usr/include
else
LINUX_HEADERS := /usr/$(DEB_HOST_GNU_TYPE)/include
endif
+ LINUX_HEADERS := /usr/include
LINUX_ARCH_HEADERS := /usr/include/$(DEB_HOST_MULTIARCH)
else
LINUX_HEADERS := $(LINUX_SOURCE)/include
Will it be ok? I am not very sure whether linux-libc-dev-$(DEB_HOST_ARCH)-cross
will be installed in the "support method scheme".
>
> diff -Nru glibc-2.19/debian/sysdeps/mips64.mk glibc-2.19/debian/sysdeps/mips64.mk
> --- glibc-2.19/debian/sysdeps/mips64.mk 2014-10-17 07:43:19.000000000 +0000
> +++ glibc-2.19/debian/sysdeps/mips64.mk 2014-12-11 03:50:09.000000000 +0000
> @@ -59,5 +59,5 @@
> # create a symlink for the 32 bit dynamic linker in /lib
> define libc6-mips32_extra_pkg_install
> mkdir -p debian/libc6-mips32/lib
> -ln -sf /libo32/ld.so.1 debian/libc6-mips32/lib
> +ln -sf ../libo32/ld.so.1 debian/libc6-mips32/lib
> endef
>
> This violates a should in Debian policy section 10.5.
Will mv OK?
mv -f debian/libc6-mips32/libo32/{ld.so.1,ld-*.so} debian/libc6-mips32/lib
I tested it. It works on mips64el.
>
> Helmut
--
YunQiang Su
Reply to: