This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] elf: Add tests with a local IFUNC resolver [BZ #23937]


On Thu, Feb 28, 2019 at 4:50 PM Rafal Luzynski
<digitalfreak@lingonborough.com> wrote:
>
> Florian,
>
> 27.02.2019 11:27 Florian Weimer <fweimer@redhat.com> wrote:
> >
> > * Florian Weimer:
> >
> > > The existing tests all use global symbols (but with different
> > > visibility).  Local symbols could be treated differently by the
> > > compiler and linker (as was the case on POWER ELFv2, causing
> > > bug 23937), and we did not have test coverage for this.
> > >
> > > Tested on x86-64 and POWER ELFv2 little-endian, with and without
> > > --disable-multi-arch.  On POWER, the test cases elf/ifuncmain9,
> > > elf/ifuncmain9pic, elf/ifuncmain9pie reproduce bug 23937 with older
> > > binutils.
> > >
> > > 2019-02-20  Florian Weimer  <fweimer@redhat.com>
> > >
> > >     [BZ #23937]
> > >     elf: Add test with a local IFUNC resolver.
> > >     * elf/ifuncmain9.c: New file.
> > >     * elf/ifuncmain9pic.c: Likewise.
> > >     * elf/ifuncmain9picstatic.c: Likewise.
> > >     * elf/ifuncmain9pie.c: Likewise.
> > >     * elf/ifuncmain9static.c: Likewise.
> > >     * elf/Makefile [multi-arch] (tests-ifuncstatic): Add
> > >     ifuncmain9static, ifuncmain9picstatic.
> > >     * elf/Makefile [multi-arch && build-shared] (tests-internal):
> > >     Add ifuncmain9, ifuncmain9pic.
> > >     * elf/Makefile [multi-arch && build-shared && have-fpie]
> > >     (ifunc-pie-tests): Add ifuncmain9pie.
> > >     (CFLAGS-ifuncmain9pic.c): Add $(pic-ccflag).
> > >     (CFLAGS-ifuncmain9picstatic.c): Likewise.
> > >     (CFLAGS-ifuncmain9pie.c): Add $(pie-ccflag).
>
> All those tests fail at my test machine:

You left out the most relevant info.  What is your test machine?

> FAIL: elf/ifuncmain9
> FAIL: elf/ifuncmain9pic
> FAIL: elf/ifuncmain9picstatic
> FAIL: elf/ifuncmain9pie
> FAIL: elf/ifuncmain9static
>
> $ cat elf/ifuncmain9.out
> info: initial value of resolver_called: 0
> error: invalid magic value: 0x400630
> info: resolver_called value: 1
> info: implementation_called value: 0
> error: invalid implementation_called value (must be 1)
> $ cat elf/ifuncmain9pic.out
> info: initial value of resolver_called: 0
> error: invalid magic value: 0x400640
> info: resolver_called value: 1
> info: implementation_called value: 0
> error: invalid implementation_called value (must be 1)
> $ cat elf/ifuncmain9picstatic.out
> info: initial value of resolver_called: 0
> error: invalid magic value: 0x400c70
> info: resolver_called value: 1
> info: implementation_called value: 0
> error: invalid implementation_called value (must be 1)
> $ cat elf/ifuncmain9pie.out
> info: initial value of resolver_called: 0
> error: invalid magic value: 0x5ef358e0
> info: resolver_called value: 1
> info: implementation_called value: 0
> error: invalid implementation_called value (must be 1)
> $ cat elf/ifuncmain9static.out
> info: initial value of resolver_called: 0
> error: invalid magic value: 0x400c60
> info: resolver_called value: 1
> info: implementation_called value: 0
> error: invalid implementation_called value (must be 1)
>
> I hope it helps.  Feel free to ask more questions.
>
> Regards,
>
> Rafal



-- 
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]