[Lldb-commits] [lldb] r367549 - [lit] Use ld.lld -z separate-code to work around a debug_line parsing bug
Fāng-ruì Sòng via lldb-commits
lldb-commits at lists.llvm.org
Thu Aug 1 21:58:58 PDT 2019
Hi Raphael, you need lld built from top of trunk to run the lldb tests. -z
separate-code is added by rLLD367537, not included in lld 9.
On Fri, Aug 2, 2019 at 4:45 AM Raphael Isemann <teemperor at gmail.com> wrote:
> This breaks the tests on my machine:
> FAIL: LLDB :: SymbolFile/DWARF/dir-separator-no-comp-dir.s (114 of 1660)
> ******************** TEST 'LLDB ::
> SymbolFile/DWARF/dir-separator-no-comp-dir.s' FAILED
> : 'RUN: at line 6'; /home/teemperor/work/3llvm/rel/bin/llvm-mc
> -triple x86_64-pc-linux
> -filetype=obj >
> : 'RUN: at line 7'; /usr/bin/ld.lld -z separate-code
> -o /home/teemperor/work/3llvm/re
> : 'RUN: at line 8'; /home/teemperor/work/3llvm/rel/bin/lldb
> --no-lldbinit -S
> File/DWARF/Output/dir-separator-no-comp-dir.s.tmp -s
> -o exit | /home/teemperor/work/3llvm/rel/b
> Exit Code: 1
> Command Output (stderr):
> ld.lld: error: unknown -z value: separate-code
> > ld.lld -v
> LLD 8.0.1 (compatible with GNU linkers)
> Do I need 9.0.0 for this to pass?
> Am Do., 1. Aug. 2019 um 14:38 Uhr schrieb Pavel Labath via
> lldb-commits <lldb-commits at lists.llvm.org>:
> > On 01/08/2019 14:34, Fangrui Song via lldb-commits wrote:
> > > Author: maskray
> > > Date: Thu Aug 1 05:34:43 2019
> > > New Revision: 367549
> > >
> > > URL: http://llvm.org/viewvc/llvm-project?rev=367549&view=rev
> > > Log:
> > > [lit] Use ld.lld -z separate-code to work around a debug_line parsing
> > >
> > > The issue was exposed by D64903/r367537.
> > > http://lab.llvm.org:8011/builders/lldb-x64-windows-ninja/builds/7321/
> > >
> > > In these tests, .debug_str immediately follows .text.
> > > The last section of last RX PT_LOAD was originally padded with trap
> > > instructions and .debug_str started at a new page (actually
> > > common-page-size). Now, .debug_str immediately follows .test.
> > > Add -z separate-code to use the old layout.
> > >
> > Thanks, I was about to commit the same patch.
> > For future reference, here is my analysis I was going to put into the
> > commit message:
> > ---
> > The lld patch changed how it lays out data in segments, which was
> > resulted in the tiny test funclets being at the very end of a PT_LOAD
> > segment. This exposed a bug where lldb does not correctly handle line
> > table end-of-sequence entries to the very end of a section (so the byte
> > they point to does not actually belong to any section).
> > This is mostly bening in practice, as the code handling line tables will
> > terminate as soon as it is not able to resolve an address, which is
> > something that would happen after reading the end-of-sequence entry
> > anyway. However, these tests assert that we are actually able to parse
> > and display the end entry itself, and so they fail.
> > ---
> > _______________________________________________
> > lldb-commits mailing list
> > lldb-commits at lists.llvm.org
> > https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the lldb-commits