public inbox for dwz@sourceware.org
 help / color / mirror / Atom feed
From: "vries at gcc dot gnu.org" <sourceware-bugzilla@sourceware.org>
To: dwz@sourceware.org
Subject: [Bug default/24249] Section offsets not monotonically increasing
Date: Tue, 01 Jan 2019 00:00:00 -0000	[thread overview]
Message-ID: <bug-24249-11298-1Gc77hlaJT@http.sourceware.org/bugzilla/> (raw)
In-Reply-To: <bug-24249-11298@http.sourceware.org/bugzilla/>

https://sourceware.org/bugzilla/show_bug.cgi?id=24249

--- Comment #7 from Tom de Vries <vries at gcc dot gnu.org> ---
Created attachment 11635
  --> https://sourceware.org/bugzilla/attachment.cgi?id=11635&action=edit
Tentative patch

(In reply to Jakub Jelinek from comment #5)
> Pedantically, ELF doesn't require that.  But I view it as a QoI thing, there
> is no reason for a sane ELF producer to just put sections randomly in
> .shstrtab, sorting them by increasing .sh_offset is most reasonable.  And,
> both prelink and dwz and other tools just choose not to optimize if the
> producer didn't do a reasonable job.

I think it's reasonable to draw the line somewhere, so I'd understand it if
this gets marked resolved-wontfix.

OTOH, I'm not happy with not having a workaround (the ability to run say an elf
sanitizer or some such to fix this trivial problem to allow dwz to run on the
sanitized elf).

This tentative patch fixes up the bad-quality input in fdopen_dso in a fairly
orthogonal way, by sorting dso->shdr and dso->scn according to sh_offset, and
updating dso->ehdr.e_shstrndx.
...
$ gcc hello.c -g -fuse-ld=gold -Wl,--gdb-index
$ dwz a.out
dwz: Section offsets in a.out not monotonically increasing, fixing up
$ echo $?
0
$ readelf -S a.out
Section Headers:
  [Nr] Name              Type             Address           Offset
       Size              EntSize          Flags  Link  Info  Align
  ...
  [37] .shstrtab         STRTAB           0000000000000000  0000284f
       000000000000017f  0000000000000000           0     0     1
  [38] .gdb_index        PROGBITS         0000000000000000  00003390
       00000000000022f3  0000000000000000           0     0     4
...

-- 
You are receiving this mail because:
You are on the CC list for the bug.

  parent reply	other threads:[~2019-02-20 17:13 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-01  0:00 [Bug default/24249] New: " vries at gcc dot gnu.org
2019-01-01  0:00 ` [Bug default/24249] " vries at gcc dot gnu.org
2019-01-01  0:00 ` jakub at redhat dot com
2019-01-01  0:00 ` jakub at redhat dot com
2019-01-01  0:00 ` vries at gcc dot gnu.org
2019-01-01  0:00 ` vries at gcc dot gnu.org
2019-01-01  0:00 ` jakub at redhat dot com
2019-01-01  0:00 ` mark at klomp dot org
2019-01-01  0:00 ` vries at gcc dot gnu.org
2019-01-01  0:00 ` vries at gcc dot gnu.org
2019-01-01  0:00 ` vries at gcc dot gnu.org
2019-01-01  0:00 ` vries at gcc dot gnu.org
2019-01-01  0:00 ` vries at gcc dot gnu.org [this message]
2019-01-01  0:00 ` vries at gcc dot gnu.org
2019-01-01  0:00 ` vries at gcc dot gnu.org

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-24249-11298-1Gc77hlaJT@http.sourceware.org/bugzilla/ \
    --to=sourceware-bugzilla@sourceware.org \
    --cc=dwz@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).