[PATCH 2/2] Add an x86 IFUNC testcase for [BZ #20019]
Joseph Myers
joseph@codesourcery.com
Tue Oct 4 22:55:00 GMT 2016
On Tue, 4 Oct 2016, H.J. Lu wrote:
> On Tue, Oct 4, 2016 at 2:27 PM, Joseph Myers <joseph@codesourcery.com> wrote:
> > On Tue, 4 Oct 2016, H.J. Lu wrote:
> >
> >> If an IFUNC function is called before the providing shared library is
> >> unrelocated, ld.so may segfault. Add a testcase to verify that ld.so
> >> will issue a diagnostic and won't segfault in this case.
> >>
> >> Tested on i686 and x86-64. OK for master?
> >
> > I can't see anything x86-specific about these tests. If they are meant to
> > work, they should work on all architectures, and so should be
> > architecture-independent. Is the architecture-specific thing the use of
> > memmove as a function that uses IFUNCs? If so, the tests should still
> > work on other architectures, just maybe be less effective as tests (and
> > other architecture maintainers could always add a hook to use another
> > function instead of memmove).
>
> The result of this test is IFUNC implementation specific. The older
> x86 IFUNC implementation had
>
> # define INIT_ARCH() \
> do \
> if (__cpu_features.kind == arch_kind_unknown) \
> __init_cpu_features (); \
> while (0)
>
> The new implementation assumed that relocations in libc.so were
> processed first. It is hard for me to tell if other IFUNC implementations
> have the similar restriction.
You seem to be saying there was some bug in the x86 IFUNC implementation
such that you don't know whether a corresponding bug might be present for
other architectures or not. That is a very strong indication that the
tests should be architecture-independent, so that people can use the
results of those tests on other architectures to tell whether those other
architectures need fixing as well.
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Libc-alpha
mailing list