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] |
On Thu, Sep 27, 2012 at 4:31 AM, Andreas Jaeger <aj@suse.com> wrote: > On Wednesday, September 26, 2012 19:55:58 H.J. Lu wrote: >> On Wed, Sep 26, 2012 at 10:43 AM, H.J. Lu <hjl.tools@gmail.com> wrote: >> > On Wed, Sep 26, 2012 at 10:17 AM, Richard Henderson > <rth@twiddle.net> wrote: >> >> On 09/26/2012 10:11 AM, H.J. Lu wrote: >> >>> It is hard to avoid malloc since __libc_func is called from >> >>> test_init. I will first convert it to this. >> >> >> >> Statically allocated array (or even statically sized malloc) in >> >> test_init? If __libc_func indicates overflow, print an error? It >> >> should be fairly easy to set this at, say, 32 and have that >> >> suffice for all calls.> >> > This should work. I will update hjl/ifunc/test branch in the next >> > few days. >> > >> > Other feedbacks? >> >> I updated hjl/ifunc/test branch to avoid relocations to return IFUNC >> list. I am enclosing the framework and i686/x86-64 patches here. > > Does this pass the testsuite? I'm interested also in the abi-tests. It passes "make check" and "make xcheck" on x32, x86-64 and ia32, with and without multi-arch. __libc_func is added to GLIBC_PRIVATE and doesn't affect public ABI. > Looking at sysdeps/x86_64/multiarch/libc-func.c: > >> +static struct libc_func_test memmove_list[4]; > > Why not have MAX_MEMMOVE instead of 4 here? >> +static struct libc_func_test * >> +find_memmove (void) >> +{ >> + size_t i; > > I would assign i here: > i=0; >> + if (HAS_SSSE3) >> + { >> + memmove_list[0] = LIBC_FUNC_INIT (__memmove_ssse3_back); >> + memmove_list[1] = LIBC_FUNC_INIT (__memmove_ssse3); >> + i = 2; >> + } >> + else >> + i = 0; > > > And remove the above two lines, let the compiler optimize it. > > Or even make i=-1 initially and increase i every time. > > Also, I would add an assert so that we remember to increase the size of > the array: > assert (i < MAX_MEMMOVE); > >> + memmove_list[i] = LIBC_FUNC_INIT (__memmove_sse2); > Changed on hjl/ifunc/test branch. Here are updated i686/x86-64 patches. Thanks. -- H.J.
Attachment:
0002-Add-i686-multiarch-__libc_func.patch
Description: Binary data
Attachment:
0003-Add-x86_64-multiarch-__libc_func.patch
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |