Gentoo Archives: gentoo-releng

From: "Anthony G. Basile" <blueness@g.o>
To: gentoo-releng@l.g.o
Subject: Re: [gentoo-releng] Uclibc chroots and catalyst
Date: Mon, 14 Dec 2015 07:25:49
Message-Id: 566E6EF3.9010805@gentoo.org
In Reply to: [gentoo-releng] Uclibc chroots and catalyst by Joshua Kinard
1 On 12/14/15 1:56 AM, Joshua Kinard wrote:
2 > I am curious to know if anyone has had any odd issues with using Gentoo's
3 > releng tool, catalyst, to build Uclibc-based stages before.
4 >
5 > I was attempting to resurrect MIPS-III, big-endian stages once more using an
6 > old ~2012 mips3 seed stage that Anthony Basile put together a while back. I
7 > started by manually updating the seed to be current (sans ncurses-6.x), and
8 > that all worked out fine. I then fed that seed stage into Catalyst to build a
9 > new stage1, and that also worked fine.
10 >
11 > But when I went to run the stage2 spec, it failed due to bash generating a
12 > segfault via an attempted NULL pointer dereference. So I manually tested by
13 > attempting to chroot into the /tmp/stage1root directly, and that's also
14 > segfaulting. I can run other executables within the stage1root via chroot
15 > directly, but it appears that anything linked to ncurses is triggering a segfault.
16 >
17 > The original stages were built with gcc-5.3, so I fell back to gcc-4.8.5, but
18 > the segfaults are still happening. I forced the stage1root to upgrade to
19 > ncurses-6.0, but that isn't working either. I manually remerged bash by
20 > setting ROOT="/tmp/stage1root", but it's linking against /lib/libncurses.so.5
21 > from the seed root instead of /lib/libncurses.so.6 in the stage1root.
22 >
23 > Not sure how to work around this. Everything in the seed root works fine. If
24 > I manually merge select packages into a different $ROOT (uclibc, ncurses, bash,
25 > readline, libiconv), then copy libgcc_s.so into $ROOT/lib manually, I can
26 > execute bash there just fine. So part of the problem may also be in how
27 > catalyst's stage1 script is merging the packages into $ROOT.
28 >
29 > Thoughts?
30 >
31
32 because mips is ~arch we are always building the cutting edge which is
33 going to get you into trouble. without knowing what's cauing the seg
34 fault, its hard to proceed. you can `strace chroot /path <cmd>` but
35 this may bog down in some heavy debugging. i'd just start with the
36 original stage, keep updates back by masking in /etc/portage and
37 emerging that way. take a look in the releng git repo I have some
38 scripts for automating stage1-2-3 with a customized /etc/portage
39 directory. putting stuff in /etc/portage for our stage's is evil, but
40 its sometimes a necessary evil. (vapier opened a bug about it.)
41
42 --
43 Anthony G. Basile, Ph.D.
44 Gentoo Linux Developer [Hardened]
45 E-Mail : blueness@g.o
46 GnuPG FP : 1FED FAD9 D82C 52A5 3BAB DC79 9384 FA6E F52D 4BBA
47 GnuPG ID : F52D4BBA

Replies

Subject Author
Re: [gentoo-releng] Uclibc chroots and catalyst Joshua Kinard <kumba@g.o>