[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#773300: Improve glibc bootstrap



Sorry, forgot to attach the new patch.

On Thu, Dec 18, 2014 at 11:44 PM, YunQiang Su <wzssyqa@gmail.com> wrote:
> 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



-- 
YunQiang Su

Attachment: glibc.debdiff
Description: Binary data


Reply to: