View Single Post
Old 04-11-2016, 12:23 PM   #168
NiLuJe
BLAM!
NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.NiLuJe ought to be getting tired of karma fortunes by now.
 
NiLuJe's Avatar
 
Posts: 13,506
Karma: 26047202
Join Date: Jun 2010
Location: Paris, France
Device: Kindle 2i, 3g, 4, 5w, PW, PW2, PW5; Kobo H2O, Forma, Elipsa, Sage, C2E
... Okay, I'm going nuts over here.

So, I spent the weekend wondering why my GCC 5.3-based ToolChains were completely b0rked. Since it's been a few months, and I couldn't find any real complaints, I decided to try to build one 'the Linaro way' (i.e., using Linaro's ABE tool, and not crosstool-ng).

After battling half-implemented features and outdated documentation, I got it to build me something useful. But, key factor: given the fact that you cannot apply patches to any of the components involved in the build (you instead have to feed it a local git repo, or setup a whole tarball fileserver), I only got it to build against Glibc 2.20...
And, surprise, that one generated *working* binaries.
(For those not following at home, the Kindles moved to Glibc 2.19 with FW 5.6.5, so I wasn't that cocnerned about the glibc bump yet).

Cue a moment of headscratching, followed by a series of regression testing with crosstool-ng... After 9 rebuilds of a PW2 TC (good thing that only takes 9 minutes on my beastly desktop...), I finally got to the root issue: building the TC against anything < glibc 2.19 results in broken code.

That's unfortunate, and weird as hell, since GCC is supposed to support glibc > 2.4. But, hey, whatever, I'll deal with that, I'm used to it with the K3 TC by now...

But it's not over yet... For a while now, my KOReader builds have produced a broken CRe library... With a hard-to-pinpoint segfault reminiscent of the behavior I experienced with the broken 5.3 TC.
So, since I was now using an apparently 'fixed' GCC 5.3 TC built against Glibc 2.19, and that my Kindle is up to date, I said, what the hell, let's try this...

And, yeeeeep, got something that worked perfectly well.

So I said, heh, cool, let's try to make that backwards compatible with Glibc 2.12... A few CFLAGS tweaks later, mission accomplished!
... except in that one, CRe crashes again.

ARRRRRRRGH.
NiLuJe is offline   Reply With Quote