Bug#797831: glibc: further problems with stage1
Source: glibc
Version: 2.21-0experimental1
Tags: patch
User: helmutg@debian.org
Usertags: rebootstrap
Hi Aurelien,
thank you very much for applying #766877 and uploading to experimental.
This has moved us a big step closer to a working stage1. We are not
quite there yet. At this point I estimate a remaining patch stack for
the following problems:
* stage1 fails to build for various reasons
* stage1 libc6-dev not installable due to dependency on libc6
* wrong set of packages being built for stage1
* dh_shlibdeps fails
* linux headers cannot be found
* various hurd things
Even though I still carry patches for these, it is not clear that all of
these problems are still reproducible. The above list is meant as an
outlook, not a cumulative bug report.
This particular bug shall address only the first of those problems
above, because I have a good understanding and can answer your
questions. I am attaching a patch and also explain the individual hunks
in what follows. All of them apply to stage1-specific code.
- *:/lib32 | *:/lib64 | *:/libx32 | *:/lib/arm-linux-gnueabi*) \
+ *:/lib32 | *:/lib64 | *:/libo32 | *:/libx32 | *:/lib/arm-linux-gnueabi*) \
The code fails to identify a certain mips architecture multilib build
and thus places the multilib build into the main package.
+ *:* ) \
+ templates="" \
+ ;; \
This extra case ensures that no templates are interpolated for optimized
builds (e.g. libc6-i686). These do not generate development packages
anyway, so dropping them (for stage1) is the right thing to do. Failing
to do so again overwrites the main package.
- -e "/$$libdir.*.a /d" \
+ -e "/LIBDIR.*\.a /d" \
The immediate error resulting from this sed invocation is that the
command "u" is not understood by sed. $libdir becomes
"/usr/lib/triplet". Thus the resulting sed command starts with "//u"
which sed does not like. Fixing the escaping is not enough however,
since LIBDIR is not yet interpolated. That only happens a few lines
later. So instead, the match needs to target non-interpolated filenames
and thus match LIBDIR.
I hope that the level of detail given is sufficient. If not, please ask.
Otherwise, please consider applying the patch. I would appreciate
another experimental upload that also includes the hurd changes staged
to SVN by Samuel Thibault already within a month from now. Thank you for
your support.
Helmut
diff -Nru glibc-2.19/debian/rules.d/debhelper.mk glibc-2.19/debian/rules.d/debhelper.mk
--- glibc-2.19/debian/rules.d/debhelper.mk
+++ glibc-2.19/debian/rules.d/debhelper.mk
@@ -197,10 +197,13 @@
case "$$curpass:$$slibdir" in \
libc:*) \
;; \
- *:/lib32 | *:/lib64 | *:/libx32 | *:/lib/arm-linux-gnueabi*) \
+ *:/lib32 | *:/lib64 | *:/libo32 | *:/libx32 | *:/lib/arm-linux-gnueabi*) \
pass="-alt" \
suffix="-$(curpass)" \
;; \
+ *:* ) \
+ templates="" \
+ ;; \
esac ; \
for t in $$templates ; do \
for s in debian/$$t$$pass.* ; do \
@@ -219,7 +219,7 @@
cp $$s $$t ; \
fi ; \
sed -i \
- -e "/$$libdir.*.a /d" \
+ -e "/LIBDIR.*\.a /d" \
-e "s#TMPDIR#debian/tmp-$$curpass#g" \
-e "s#RTLDDIR#$$rtlddir#g" \
-e "s#SLIBDIR#$$slibdir#g" \
Reply to: