On Mon, Jul 17, 2017 at 3:29 PM, Avi Kivity <[email protected]> wrote:
> > > On 07/17/2017 10:10 AM, Nadav Har'El wrote: > > Oops, this is bad, and unfortunately I committed too many patches > yesterday to understand which one brought this bug... > > > > On Sun, Jul 16, 2017 at 7:57 PM, <[email protected]> wrote: > >> TEST tst-elf-permissions.so OSv v0.24-399-ge6fadac >> eth0: 192.168.122.15 >> Assertion failed: (phdr.p_flags & (PF_R | PF_W | PF_X)) == PF_R >> (core/elf.cc: fix_permissions: 475) >> >> > We've seen Jenkins doing two runs and both of them failed at exactly the > same place. Moreover, on my Fedora 25 installation, I ran this test 1000 > times, and it didn't fail once.... > > Note how the failure is while *loading* the test object, not even when > running it, where we discover that the GNU_RELRO section is not marked > read-only. This can either be memory corruption (oops) or a linker bug > (this particular test does funky monkey-business on the linker). > > It turns out to be the latter: The test fails if the "gold" linker is used > to build it. If I add "-fuse-ld=gold" in COMMON in modules/tests/Makefile, > running this test fails with the exact same assertion, and it's clear why: > > $ readelf -a build/release/tests/tst-elf-permissions.so > Program Headers: > Type Offset VirtAddr PhysAddr > FileSiz MemSiz Flags Align > ... > GNU_RELRO 0x0000000000001da0 0x0000000000002da0 0x0000000000002da0 > 0x0000000000000260 0x0000000000000260 RW 8 > > Note how GNU_RELRO is marked read-write, but it should have been read-only. > > I am guessing that recently, our Jenkins machine was modified to change > the default BFD linker to the GOLD one. Is this possible? > > > It is, and I did that to speed up Scylla links. > Ok, thanks. If scylla is known to work well with gold, would it not make sense to just add "-fuse-ld=bfd" in its compilation line instead of assume that everyone compiling it remembers to switch the default? -- You received this message because you are subscribed to the Google Groups "OSv Development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
