Aaron Durbin (adurbin@google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/6737
-gerrit
commit bace5ce9dde795af541e46198d2ea358cc74b5ee Author: Aaron Durbin adurbin@chromium.org Date: Fri Aug 22 14:05:00 2014 -0500
elfheaders: fix 64-bit ELF writing
The sh_flags for a 64-bit section header entry are 64-bit in size. Correct this.
Change-Id: I2fa79d9a0fb46cc1dfa97c172357bbd2394843e0 Signed-off-by: Aaron Durbin adurbin@chromium.org --- util/cbfstool/elfheaders.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/util/cbfstool/elfheaders.c b/util/cbfstool/elfheaders.c index 71d34a9..fdd1599 100644 --- a/util/cbfstool/elfheaders.c +++ b/util/cbfstool/elfheaders.c @@ -781,8 +781,8 @@ static void shdr_write(struct elf_writer *ew, size_t n, struct buffer *m)
xdr->put32(m, shdr->sh_name); xdr->put32(m, shdr->sh_type); - xdr->put32(m, shdr->sh_flags); if (bit64) { + xdr->put64(m, shdr->sh_flags); xdr->put64(m, shdr->sh_addr); xdr->put64(m, shdr->sh_offset); xdr->put64(m, shdr->sh_size); @@ -791,6 +791,7 @@ static void shdr_write(struct elf_writer *ew, size_t n, struct buffer *m) xdr->put64(m, shdr->sh_addralign); xdr->put64(m, shdr->sh_entsize); } else { + xdr->put32(m, shdr->sh_flags); xdr->put32(m, shdr->sh_addr); xdr->put32(m, shdr->sh_offset); xdr->put32(m, shdr->sh_size);