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 |