Gentoo Archives: gentoo-dev

From: Joshua Kinard <kumba@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] RFC: dropping support for uclibc-ng
Date: Wed, 06 Jan 2021 07:17:38
Message-Id: 8cec57ad-57ad-87cc-61cc-91d1f288f858@gentoo.org
1 On 1/6/2021 01:08, Thomas Mueller wrote:
2 >> I was using uclibc-ng builds for MIPS to build netboot images between 2017
3 >> and 2019 to refine my build processes. uclibc-ng still produces smaller
4 >> overall binaries and libs for the netboot than musl does (usually ~1MB
5 >> smaller, which is actually significant, especially on SGI IP22 systems).
6 >
7 >> Unfortunately for uclibc-ng, it stopped working for me in ~2019. I have no
8 >> clue why, either. The March 2019 uclibc-ng MIPS stage3 I built internally
9 >> works perfectly fine when you unpack it and leave it alone, but as soon as
10 >> you compile *anything* more recent with the compiler that's when the
11 >> breaking begins.
12 >
13 >> Rebuilding ncurses in this stage3 will break Python, which breaks emerge.
14 >> Never figured it out. I can trace the failure using GDB to a point in
15 >> Python, but not much farther beyond that. I assume the true cause is
16 >> something in uclibc-ng itself. Upstream seems to like to borrow chunks of
17 >> glibc for things, and I wonder if that may be partly to blame.
18 >
19 >> I eventually gave up and went to musl for MIPS/o32. musl quite literally
20 >> JustWorks(). It's great. Even with that tiny bit of bloat in the netboot
21 >> build (workable, cause I needed to make NFS Root an option anyways).
22 >
23 >> So long story short, I won't shed any tears if uclibc-ng goes away.
24 >
25 >> Joshua Kinard
26 >
27 > I wonder if uclibc-ng people fixed the bugs since your ill fortune, or if uclibc-ng development has fallen off.
28 >
29 > Since musl works so much better for you, you will probably not want to go back.
30 >
31 > How did you build your March 2019 stage3, or where would I go on Gentoo website?
32 >
33 > I would naturally seek something more current, glibc or musl probably preferable to uclibc-ng.
34 >
35 > Tom
36
37 I tried a more recent uclibc-ng earlier in 2020 and it still broke as soon
38 as it compiled ncurses. I'm sure there's probably a compile path where if
39 the right libraries are rebuilt in the right order, I can get it working
40 again, but it's not worth the time spent. The machine I am working on is
41 not a hyper-fast x86/x64 system, but rather a ~15-year old MIPS-based SGI
42 Octane. gcc-10.2.0 takes ~15hrs to compile, among other things.
43
44 If I cared enough, I could probably try starting a new root image from
45 scratch by piecing packages together from crossdev, or find another base to
46 morph into a Gentoo image. Maybe one day.
47
48 The stage3 I refer to isn't available publicly. It was a test build I did
49 and never released. Current mips stages are available on the mirrors in the
50 'experimental' folder. They're primarily targeted at older big-endian
51 MIPS-III and MIPS-IV platforms. As for how I built it, that's done through
52 our 'catalyst' tool for stage-building. You can check the Wiki for more
53 info on how that works.
54
55 --
56 Joshua Kinard
57 Gentoo/MIPS
58 kumba@g.o
59 rsa6144/5C63F4E3F5C6C943 2015-04-27
60 177C 1972 1FB8 F254 BAD0 3E72 5C63 F4E3 F5C6 C943
61
62 "The past tempts us, the present confuses us, the future frightens us. And
63 our lives slip away, moment by moment, lost in that vast, terrible in-between."
64
65 --Emperor Turhan, Centauri Republic