On 12/02/18 10:55, John Paul Adrian Glaubitz wrote:
On 02/12/2018 11:52 AM, Mathieu Malaterre wrote:
From the look at the error message, I thought this was the hack
[email protected] used with:
https://packages.debian.org/sid/e2fslibs1.41-dev
Again, we're talking about booting the CD, not the installed system.
There is no ext2/3/4 involved here. The bug you mentioned exists
because Yaboot doesn't handle ext4.
The above package provided the key: the link error I was seeing was
because the default e2fslibs package only provides .so libraries.
Extracting the static library from the above package was enough to get
my compile to succeed.
Anyhow I can confirm that the bug I see is present in 1.3.17 and not
1.3.16, and with the magic of git bisect I managed to isolate it down to
this commit:
http://git.ozlabs.org/?p=yaboot.git;a=commitdiff;h=b5f28817d6d68c2cb2a3e5eaefe4633b085557b6
The first thing to notice is that prom_claim_chunk_top() introduced in
the previous commit has an obvious mistake which means it allocates
memory outside the top of its region. This is easily fixed, but doesn't
appear to solve my problem.
Building a full debug version and stepping through with gdb shows that
the problem is the failure of strdup() to copy the incoming
configuration here:
http://git.ozlabs.org/?p=yaboot.git;a=blob;f=second/file.c;h=fd081a3010d3ba4710349144da54ac73fe23cb3f;hb=0e48da7ef41c6fc36f80f44e5e4a329000412f88#l485.
From what I can tell the malloc() succeeds, however the memory being
returned doesn't appear to be writeable(!). That's about as far as I
managed to get last night, but it might be that this particular bug is
related to something in the OpenBIOS memory layout.
ATB,
Mark.