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: RFC: Automatically test IFUNC implementations


On Thu, Sep 27, 2012 at 5:16 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Thu, Sep 27, 2012 at 3:31 PM, Roland McGrath <roland@hack.frob.com> wrote:
>>> I thought we'd discussed returning a count from __libc_func,
>>> and the (static) array provided by the test program.
>>>
>>> Certainly that's going to be less dead bss space in libc.so.
>>
>> IMHO this feature must be done in a way that adds zero data space
>> (including zero relro const data), zero bss space, and zero relocs
>> to the library.
>
> I updated hjl/ifunc/test branch.  __libc_func is now specified as:
>
> /* Fill ARRAY of MAX elements with IFUNC implementations for function
>    NAME supported on target machine and return the number of valid
>    entries.  */
> extern int __libc_func (const char *name, struct libc_func_test *array,
>                         int max);
>
> arch-specific __libc_func can issue a run-time error if array is too
> small.   There are no .bss nor .data spaces:
>
> [hjl@gnu-tools-1 string]$ readelf -S libc-func.os
>
>  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
>   [ 0]                   NULL            00000000 000000 000000 00      0   0  0
>   [ 1] .text             PROGBITS        00000000 000040 0014fa 00  AX  0   0 16
>   [ 2] .rela.text        RELA            00000000 0059b8 0011d0 0c     23   1  4
>   [ 3] .data             PROGBITS        00000000 00153c 000000 00  WA  0   0  4
>   [ 4] .bss              NOBITS          00000000 00153c 000000 00  WA  0   0  4
>   [ 5] .rodata.str1.1    PROGBITS        00000000 00153c 0008b9 01 AMS  0   0  1
>   [ 6] .rodata.str1.8    PROGBITS        00000000 001df8 000028 01 AMS  0   0  8
>   [ 7] .rodata.str1.16   PROGBITS        00000000 001e20 0000e0 01 AMS  0   0 16
>
> But there are rodata spaces for IFUNC function names.  There are
> no run-time relocations:
>
> [hjl@gnu-tools-1 string]$ readelf -r libc-func.os |more
>
> Relocation section '.rela.text' at offset 0x59b8 contains 380 entries:
>  Offset     Info    Type            Sym.Value  Sym. Name + Addend
> 00000011  00003102 R_X86_64_PC32     00000000   .LC0 - 4
> 00000023  00003202 R_X86_64_PC32     0000003c   .LC6 - 4
> 00000039  00003302 R_X86_64_PC32     00000074   .LC10 - 4
> 0000004f  00003402 R_X86_64_PC32     000000b0   .LC14 - 4
> 00000065  00003502 R_X86_64_PC32     000000ec   .LC18 - 4
> 0000007b  00003602 R_X86_64_PC32     00000136   .LC22 - 4
> 00000091  00003702 R_X86_64_PC32     00000184   .LC26 - 4
> 000000a7  00003802 R_X86_64_PC32     000001d2   .LC30 - 4
> 000000bd  00003902 R_X86_64_PC32     000001ff   .LC34 - 4
> 000000d3  00003a02 R_X86_64_PC32     0000022c   .LC37 - 4
> 000000e9  00003b02 R_X86_64_PC32     00000268   .LC41 - 4
> 000000ff  00003c02 R_X86_64_PC32     000002a8   .LC45 - 4
> 00000115  00003d02 R_X86_64_PC32     000002e4   .LC49 - 4
> 0000012b  00003e02 R_X86_64_PC32     00000324   .LC53 - 4
> 00000141  00003f02 R_X86_64_PC32     00000378   .LC58 - 4
> 00000157  00004002 R_X86_64_PC32     000003d6   .LC63 - 4
> 0000016d  00004102 R_X86_64_PC32     00000412   .LC67 - 4
> 00000183  00004202 R_X86_64_PC32     00000445   .LC71 - 4
> 00000199  00004302 R_X86_64_PC32     0000049e   .LC76 - 4
> 000001af  00004402 R_X86_64_PC32     00000501   .LC81 - 4
> 000001c5  00004502 R_X86_64_PC32     00000541   .LC85 - 4
> 000001db  00004602 R_X86_64_PC32     00000578   .LC89 - 4
> 000001f1  00004702 R_X86_64_PC32     000005a5   .LC92 - 4
> 00000207  00004802 R_X86_64_PC32     000005d5   .LC95 - 4
> 0000021d  00004902 R_X86_64_PC32     0000060e   .LC99 - 4
> 00000233  00004a02 R_X86_64_PC32     00000635   .LC102 - 4
> 00000249  00004b02 R_X86_64_PC32     00000683   .LC107 - 4
> 0000025f  00004c02 R_X86_64_PC32     000006aa   .LC110 - 4
> 00000275  00004d02 R_X86_64_PC32     000006e7   .LC114 - 4
> 0000028b  00004e02 R_X86_64_PC32     0000070b   .LC117 - 4
> 000002a1  00004f02 R_X86_64_PC32     0000072f   .LC120 - 4
> 000002ae  0000b304 R_X86_64_PLT32    00000000   __GI_strcmp - 4
> 000002c1  00005002 R_X86_64_PC32     00000753   .LC123 - 4
> 000002ce  0000b304 R_X86_64_PLT32    00000000   __GI_strcmp - 4
> 000002e5  0000b402 R_X86_64_PC32     00000000   __cpu_features + c
> 000002f2  0000b502 R_X86_64_PC32     00000000   __wmemcmp_sse4_1 - 4
> 000002f9  00005102 R_X86_64_PC32     0000075b   .LC124 - 4
> 00000316  00005202 R_X86_64_PC32     0000076c   .LC125 - 4
> 0000031c  0000b602 R_X86_64_PC32     00000000   __wmemcmp_ssse3 - 4
> 00000331  00005302 R_X86_64_PC32     0000077c   .LC126 - 4
> 00000337  0000b702 R_X86_64_PC32     00000000   __wmemcmp_sse2 - 4
> 00000350  00000702 R_X86_64_PC32     000008ac   __PRETTY_FUNCTION__.52 - 4
> 00000356  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 0000035c  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 00000366  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 00000372  0000b402 R_X86_64_PC32     00000000   __cpu_features + c
> 0000038d  00005602 R_X86_64_PC32     00000017   .LC2 - 4
> 00000394  0000b902 R_X86_64_PC32     00000000   __memcmp_ssse3 - 4
> 000003b0  00005702 R_X86_64_PC32     00000026   .LC3 - 4
> 000003b6  0000ba02 R_X86_64_PC32     00000000   __memcmp_sse2 - 4
> 000003cc  00000802 R_X86_64_PC32     0000078b   __PRETTY_FUNCTION__.53 - 4
> 000003d2  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 000003d8  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 000003e2  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 000003f2  0000b402 R_X86_64_PC32     00000000   __cpu_features + c
> 000003ff  0000bb02 R_X86_64_PC32     00000000   __memmove_ssse3_back - 4
> 00000405  00005802 R_X86_64_PC32     00000091   .LC12 - 4
> 0000040c  00005902 R_X86_64_PC32     0000007c   .LC11 - 4
> 00000412  0000bc02 R_X86_64_PC32     00000000   __memmove_ssse3 - 4
> 00000433  00005a02 R_X86_64_PC32     000000a1   .LC13 - 4
> 0000043a  0000bd02 R_X86_64_PC32     00000000   __memmove_sse2 - 4
> 0000046a  00005b02 R_X86_64_PC32     00000007   .LC1 - 4
> 00000470  0000be02 R_X86_64_PC32     00000000   __memcmp_sse4_1 - 4
> 00000492  0000b402 R_X86_64_PC32     00000000   __cpu_features + c
> 000004a3  00005c02 R_X86_64_PC32     000001bf   .LC29 - 4
> 000004aa  0000bf02 R_X86_64_PC32     00000000   __mempcpy_chk_sse2 - 4
> 000004bf  00000902 R_X86_64_PC32     00000040   __PRETTY_FUNCTION__.53 - 4
> 000004c5  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 000004cb  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 000004d5  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 000004e2  0000b402 R_X86_64_PC32     00000000   __cpu_features + c
> 000004ef  00005d02 R_X86_64_PC32     00000057   .LC8 - 4
> 000004f5  0000c002 R_X86_64_PC32     00000000   __memcpy_ssse3 - 4
> 000004fb  00005e02 R_X86_64_PC32     00000043   .LC7 - 4
> 00000502  0000c102 R_X86_64_PC32     00000000   __memcpy_ssse3_back - 4
> 00000523  00005f02 R_X86_64_PC32     00000066   .LC9 - 4
> 00000529  0000c202 R_X86_64_PC32     00000000   __memcpy_sse2 - 4
> 00000541  00000a02 R_X86_64_PC32     00000797   __PRETTY_FUNCTION__.53 - 4
> 00000547  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 0000054d  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 00000557  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 00000562  0000b402 R_X86_64_PC32     00000000   __cpu_features + c
> 0000056f  00006002 R_X86_64_PC32     000000b8   .LC15 - 4
> 00000575  0000c302 R_X86_64_PC32     00000000   __mempcpy_ssse3_back - 4
> 0000057b  00006102 R_X86_64_PC32     000000cd   .LC16 - 4
> 00000581  0000c402 R_X86_64_PC32     00000000   __mempcpy_ssse3 - 4
> 000005a4  00006202 R_X86_64_PC32     000000dd   .LC17 - 4
> 000005aa  0000c502 R_X86_64_PC32     00000000   __mempcpy_sse2 - 4
> 000005c1  00000b02 R_X86_64_PC32     000007b0   __PRETTY_FUNCTION__.53 - 4
> 000005c7  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 000005cd  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 000005d7  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 000005f2  0000b402 R_X86_64_PC32     00000000   __cpu_features + c
> 00000605  0000c602 R_X86_64_PC32     00000000   __memcpy_chk_sse2 - 4
> 0000060b  00006302 R_X86_64_PC32     00000124   .LC21 - 4
> 00000621  00000c02 R_X86_64_PC32     00000000   __PRETTY_FUNCTION__.53 - 4
> 00000627  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 0000062d  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 00000637  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 00000652  0000b402 R_X86_64_PC32     00000000   __cpu_features + c
> 00000663  00006402 R_X86_64_PC32     00000171   .LC25 - 4
> 00000669  0000c702 R_X86_64_PC32     00000000   __memmove_chk_sse2 - 4
> 00000681  00000d02 R_X86_64_PC32     00000020   __PRETTY_FUNCTION__.49 - 4
> 00000687  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 0000068d  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 00000697  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 000006b2  0000c802 R_X86_64_PC32     00000000   __memcpy_chk_ssse3 - 4
> 000006b8  00006502 R_X86_64_PC32     000000f9   .LC19 - 4
> 000006be  0000c902 R_X86_64_PC32     00000000   __memcpy_chk_ssse3_bac - 4
> 000006c5  00006602 R_X86_64_PC32     00000111   .LC20 - 4
> 000006f2  00006702 R_X86_64_PC32     0000015d   .LC24 - 4
> 000006f8  0000ca02 R_X86_64_PC32     00000000   __memmove_chk_ssse3 - 4
> 000006fe  00006802 R_X86_64_PC32     00000144   .LC23 - 4
> 00000705  0000cb02 R_X86_64_PC32     00000000   __memmove_chk_ssse3_ba - 4
> 00000732  0000cc02 R_X86_64_PC32     00000000   __mempcpy_chk_ssse3_ba - 4
> 00000738  00006902 R_X86_64_PC32     000001ab   .LC28 - 4
> 0000073f  00006a02 R_X86_64_PC32     00000192   .LC27 - 4
> 00000745  0000cd02 R_X86_64_PC32     00000000   __mempcpy_chk_ssse3 - 4
> 00000772  0000b402 R_X86_64_PC32     00000000   __cpu_features + c
> 0000077f  0000ce02 R_X86_64_PC32     00000000   __strncpy_ssse3 - 4
> 00000786  00006b02 R_X86_64_PC32     000002ec   .LC50 - 4
> 000007aa  00006c02 R_X86_64_PC32     000002fc   .LC51 - 4
> 000007b4  0000cf02 R_X86_64_PC32     00000000   __strncpy_sse2_unalign - 4
> 000007c1  0000d002 R_X86_64_PC32     00000000   __strncpy_sse2 - 4
> 000007cc  00006d02 R_X86_64_PC32     0000030b   .LC52 - 4
> 000007f2  00006e02 R_X86_64_PC32     000001d9   .LC31 - 4
> 000007f8  0000d102 R_X86_64_PC32     00000000   __memset_sse2 - 4
> 000007fe  00006f02 R_X86_64_PC32     000001e7   .LC32 - 4
> 00000804  0000d202 R_X86_64_PC32     00000000   __memset_x86_64 - 4
> 00000832  0000b402 R_X86_64_PC32     00000000   __cpu_features + d
> 0000083f  0000d302 R_X86_64_PC32     00000000   __rawmemchr_sse42 - 4
> 00000846  00007002 R_X86_64_PC32     00000209   .LC35 - 4
> 00000861  0000d402 R_X86_64_PC32     00000000   __rawmemchr_sse2 - 4
> 00000867  00007102 R_X86_64_PC32     0000021b   .LC36 - 4
> 0000087d  00000e02 R_X86_64_PC32     000007c9   __PRETTY_FUNCTION__.49 - 4
> 00000883  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 00000889  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 00000893  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 000008a2  0000b402 R_X86_64_PC32     00000000   __cpu_features + c
> 000008af  00007202 R_X86_64_PC32     00000233   .LC38 - 4
> 000008b6  0000d502 R_X86_64_PC32     00000000   __stpcpy_ssse3 - 4
> 000008da  00007302 R_X86_64_PC32     00000242   .LC39 - 4
> 000008e4  0000d602 R_X86_64_PC32     00000000   __stpcpy_sse2_unaligne - 4
> 000008f1  0000d702 R_X86_64_PC32     00000000   __stpcpy_sse2 - 4
> 000008fc  00007402 R_X86_64_PC32     00000250   .LC40 - 4
> 00000910  00000f02 R_X86_64_PC32     000007d8   __PRETTY_FUNCTION__.50 - 4
> 00000916  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 0000091c  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 00000926  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 00000932  0000b402 R_X86_64_PC32     00000000   __cpu_features + c
> 0000093f  0000d802 R_X86_64_PC32     00000000   __stpncpy_ssse3 - 4
> 00000946  00007502 R_X86_64_PC32     00000270   .LC42 - 4
> 0000096a  00007602 R_X86_64_PC32     00000280   .LC43 - 4
> 00000974  0000d902 R_X86_64_PC32     00000000   __stpncpy_sse2_unalign - 4
> 00000981  0000da02 R_X86_64_PC32     00000000   __stpncpy_sse2 - 4
> 0000098c  00007702 R_X86_64_PC32     0000028f   .LC44 - 4
> 000009a0  00001002 R_X86_64_PC32     000007e4   __PRETTY_FUNCTION__.50 - 4
> 000009a6  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 000009ac  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 000009b6  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 000009d2  0000b402 R_X86_64_PC32     00000000   __cpu_features + c
> 000009df  0000db02 R_X86_64_PC32     00000000   __strcpy_ssse3 - 4
> 000009e6  00007802 R_X86_64_PC32     000002af   .LC46 - 4
> 00000a0a  00007902 R_X86_64_PC32     000002be   .LC47 - 4
> 00000a14  0000dc02 R_X86_64_PC32     00000000   __strcpy_sse2_unaligne - 4
> 00000a21  0000dd02 R_X86_64_PC32     00000000   __strcpy_sse2 - 4
> 00000a2c  00007a02 R_X86_64_PC32     000002cc   .LC48 - 4
> 00000a40  00001102 R_X86_64_PC32     000007f1   __PRETTY_FUNCTION__.50 - 4
> 00000a46  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 00000a4c  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 00000a56  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 00000a92  0000b402 R_X86_64_PC32     00000000   __cpu_features + 2b
> 00000a9f  0000de02 R_X86_64_PC32     00000000   __strcasecmp_avx - 4
> 00000aa6  00007b02 R_X86_64_PC32     0000032f   .LC54 - 4
> 00000abf  0000b402 R_X86_64_PC32     00000000   __cpu_features + c
> 00000acd  00007c02 R_X86_64_PC32     00000340   .LC55 - 4
> 00000ad4  0000df02 R_X86_64_PC32     00000000   __strcasecmp_sse42 - 4
> 00000af6  00007d02 R_X86_64_PC32     00000353   .LC56 - 4
> 00000afc  0000e002 R_X86_64_PC32     00000000   __strcasecmp_ssse3 - 4
> 00000b16  00007e02 R_X86_64_PC32     00000366   .LC57 - 4
> 00000b1c  0000e102 R_X86_64_PC32     00000000   __strcasecmp_sse2 - 4
> 00000b34  00001202 R_X86_64_PC32     00000060   __PRETTY_FUNCTION__.50 - 4
> 00000b3a  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 00000b40  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 00000b4a  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 00000b65  0000b402 R_X86_64_PC32     00000000   __cpu_features + 2b
> 00000b72  00007f02 R_X86_64_PC32     00000385   .LC59 - 4
> 00000b79  0000e202 R_X86_64_PC32     00000000   __strcasecmp_l_avx - 4
> 00000b92  0000b402 R_X86_64_PC32     00000000   __cpu_features + c
> 00000ba0  00008002 R_X86_64_PC32     00000398   .LC60 - 4
> 00000ba7  0000e302 R_X86_64_PC32     00000000   __strcasecmp_l_sse42 - 4
> 00000bc9  00008102 R_X86_64_PC32     000003ad   .LC61 - 4
> 00000bcf  0000e402 R_X86_64_PC32     00000000   __strcasecmp_l_ssse3 - 4
> 00000be9  00008202 R_X86_64_PC32     000003c2   .LC62 - 4
> 00000bef  0000e502 R_X86_64_PC32     00000000   __strcasecmp_l_sse2 - 4
> 00000c07  00001302 R_X86_64_PC32     00000070   __PRETTY_FUNCTION__.50 - 4
> 00000c0d  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 00000c13  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 00000c1d  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 00000c3d  0000b402 R_X86_64_PC32     00000000   __cpu_features + c
> 00000c4a  00008302 R_X86_64_PC32     000003dd   .LC64 - 4
> 00000c51  0000e602 R_X86_64_PC32     00000000   __strcat_ssse3 - 4
> 00000c75  00008402 R_X86_64_PC32     000003ec   .LC65 - 4
> 00000c7f  0000e702 R_X86_64_PC32     00000000   __strcat_sse2_unaligne - 4
> 00000c8c  0000e802 R_X86_64_PC32     00000000   __strcat_sse2 - 4
> 00000c97  00008502 R_X86_64_PC32     000003fa   .LC66 - 4
> 00000cab  00001402 R_X86_64_PC32     0000080a   __PRETTY_FUNCTION__.51 - 4
> 00000cb1  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 00000cb7  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 00000cc1  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 00000cca  0000b402 R_X86_64_PC32     00000000   __cpu_features + c
> 00000cdc  0000e902 R_X86_64_PC32     00000000   __strcmp_sse42 - 4
> 00000ce3  00008602 R_X86_64_PC32     00000419   .LC68 - 4
> 00000d01  00008702 R_X86_64_PC32     00000428   .LC69 - 4
> 00000d07  0000ea02 R_X86_64_PC32     00000000   __strcmp_ssse3 - 4
> 00000d21  00008802 R_X86_64_PC32     00000437   .LC70 - 4
> 00000d27  0000eb02 R_X86_64_PC32     00000000   __strcmp_sse2 - 4
> 00000d40  00001502 R_X86_64_PC32     00000816   __PRETTY_FUNCTION__.51 - 4
> 00000d46  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 00000d4c  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 00000d56  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 00000d74  0000b402 R_X86_64_PC32     00000000   __cpu_features + 2b
> 00000d81  00008902 R_X86_64_PC32     00000451   .LC72 - 4
> 00000d87  0000ec02 R_X86_64_PC32     00000000   __strncasecmp_avx - 4
> 00000d9f  0000b402 R_X86_64_PC32     00000000   __cpu_features + c
> 00000dae  00008a02 R_X86_64_PC32     00000463   .LC73 - 4
> 00000db4  0000ed02 R_X86_64_PC32     00000000   __strncasecmp_sse42 - 4
> 00000dd7  00008b02 R_X86_64_PC32     00000477   .LC74 - 4
> 00000ddd  0000ee02 R_X86_64_PC32     00000000   __strncasecmp_ssse3 - 4
> 00000df7  00008c02 R_X86_64_PC32     0000048b   .LC75 - 4
> 00000dfe  0000ef02 R_X86_64_PC32     00000000   __strncasecmp_sse2 - 4
> 00000e16  00001602 R_X86_64_PC32     00000090   __PRETTY_FUNCTION__.51 - 4
> 00000e1c  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 00000e22  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 00000e2c  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 00000e32  0000b402 R_X86_64_PC32     00000000   __cpu_features + 2b
> 00000e3f  00008d02 R_X86_64_PC32     000004ac   .LC77 - 4
> 00000e45  0000f002 R_X86_64_PC32     00000000   __strncasecmp_l_avx - 4
> 00000e5d  0000b402 R_X86_64_PC32     00000000   __cpu_features + c
> 00000e6b  00008e02 R_X86_64_PC32     000004c0   .LC78 - 4
> 00000e72  0000f102 R_X86_64_PC32     00000000   __strncasecmp_l_sse42 - 4
> 00000e94  00008f02 R_X86_64_PC32     000004d6   .LC79 - 4
> 00000e9a  0000f202 R_X86_64_PC32     00000000   __strncasecmp_l_ssse3 - 4
> 00000eb6  00009002 R_X86_64_PC32     000004ec   .LC80 - 4
> 00000ebc  0000f302 R_X86_64_PC32     00000000   __strncasecmp_l_sse2 - 4
> 00000ed3  00001702 R_X86_64_PC32     000000b0   __PRETTY_FUNCTION__.51 - 4
> 00000ed9  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 00000edf  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 00000ee9  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 00000f0e  0000b402 R_X86_64_PC32     00000000   __cpu_features + c
> 00000f1b  00009102 R_X86_64_PC32     00000509   .LC82 - 4
> 00000f21  0000f402 R_X86_64_PC32     00000000   __strncat_ssse3 - 4
> 00000f44  00009202 R_X86_64_PC32     00000519   .LC83 - 4
> 00000f4e  0000f502 R_X86_64_PC32     00000000   __strncat_sse2_unalign - 4
> 00000f5b  0000f602 R_X86_64_PC32     00000000   __strncat_sse2 - 4
> 00000f66  00009302 R_X86_64_PC32     00000528   .LC84 - 4
> 00000f7a  00001802 R_X86_64_PC32     00000822   __PRETTY_FUNCTION__.51 - 4
> 00000f80  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 00000f86  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 00000f90  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 00000f9a  0000b402 R_X86_64_PC32     00000000   __cpu_features + c
> 00000fac  0000f702 R_X86_64_PC32     00000000   __strncmp_sse42 - 4
> 00000fb3  00009402 R_X86_64_PC32     00000549   .LC86 - 4
> 00000fd4  00009502 R_X86_64_PC32     00000559   .LC87 - 4
> 00000fda  0000f802 R_X86_64_PC32     00000000   __strncmp_ssse3 - 4
> 00000ff6  00009602 R_X86_64_PC32     00000569   .LC88 - 4
> 00000ffc  0000f902 R_X86_64_PC32     00000000   __strncmp_sse2 - 4
> 00001013  00001902 R_X86_64_PC32     0000082f   __PRETTY_FUNCTION__.54 - 4
> 00001019  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 0000101f  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 00001029  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 00001044  00009702 R_X86_64_PC32     00000580   .LC90 - 4
> 0000104a  0000fa02 R_X86_64_PC32     00000000   __strnlen_sse2 - 4
> 00001051  00009802 R_X86_64_PC32     0000058f   .LC91 - 4
> 00001057  0000fb02 R_X86_64_PC32     00000000   __strnlen_sse2_no_bsf - 4
> 00001077  00001a02 R_X86_64_PC32     0000083c   __PRETTY_FUNCTION__.52 - 4
> 0000107d  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 00001083  00009902 R_X86_64_PC32     000001f7   .LC33 - 4
> 0000108d  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 0000109c  0000b402 R_X86_64_PC32     00000000   __cpu_features + d
> 000010a5  00009a02 R_X86_64_PC32     000005b0   .LC93 - 4
> 000010ab  0000fc02 R_X86_64_PC32     00000000   __strcasestr_sse42 - 4
> 000010bf  00009b02 R_X86_64_PC32     000005c3   .LC94 - 4
> 000010c6  0000fd02 R_X86_64_PC32     00000000   __strcasestr_sse2 - 4
> 000010dc  00001b02 R_X86_64_PC32     000000d0   __PRETTY_FUNCTION__.51 - 4
> 000010e2  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 000010e8  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 000010f2  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 00001120  0000b402 R_X86_64_PC32     00000000   __cpu_features + d
> 00001129  00009c02 R_X86_64_PC32     000005dc   .LC96 - 4
> 0000112f  0000fe02 R_X86_64_PC32     00000000   __strchr_sse42 - 4
> 00001146  00009d02 R_X86_64_PC32     000005eb   .LC97 - 4
> 0000114c  0000ff02 R_X86_64_PC32     00000000   __strchr_sse2 - 4
> 00001153  00009e02 R_X86_64_PC32     000005f9   .LC98 - 4
> 00001163  00010002 R_X86_64_PC32     00000000   __strchr_sse2_no_bsf - 4
> 0000117d  00001c02 R_X86_64_PC32     00000849   __PRETTY_FUNCTION__.51 - 4
> 00001183  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 00001189  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 00001193  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 0000119b  0000b402 R_X86_64_PC32     00000000   __cpu_features + d
> 000011a4  00010102 R_X86_64_PC32     00000000   __strcspn_sse42 - 4
> 000011ab  00009f02 R_X86_64_PC32     00000616   .LC100 - 4
> 000011c3  0000a002 R_X86_64_PC32     00000626   .LC101 - 4
> 000011c9  00010202 R_X86_64_PC32     00000000   __strcspn_sse2 - 4
> 000011e2  00001d02 R_X86_64_PC32     00000855   __PRETTY_FUNCTION__.52 - 4
> 000011e8  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 000011ee  00009902 R_X86_64_PC32     000001f7   .LC33 - 4
> 000011f8  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 00001200  0000b402 R_X86_64_PC32     00000000   __cpu_features + d
> 00001209  00010302 R_X86_64_PC32     00000000   __strlen_sse42 - 4
> 00001210  0000a102 R_X86_64_PC32     0000063c   .LC103 - 4
> 00001228  0000a202 R_X86_64_PC32     0000064b   .LC104 - 4
> 0000122e  00010402 R_X86_64_PC32     00000000   __strlen_sse2 - 4
> 00001235  0000a302 R_X86_64_PC32     00000659   .LC105 - 4
> 00001245  00010502 R_X86_64_PC32     00000000   __strlen_sse2_no_bsf - 4
> 0000124b  0000a402 R_X86_64_PC32     0000066e   .LC106 - 4
> 00001261  00010602 R_X86_64_PC32     00000000   __strlen_sse2_pminub - 4
> 0000127e  00001e02 R_X86_64_PC32     00000862   __PRETTY_FUNCTION__.53 - 4
> 00001284  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 0000128a  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 00001294  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 0000129c  0000b402 R_X86_64_PC32     00000000   __cpu_features + d
> 000012a5  0000a502 R_X86_64_PC32     0000068b   .LC108 - 4
> 000012ab  00010702 R_X86_64_PC32     00000000   __strpbrk_sse42 - 4
> 000012c2  0000a602 R_X86_64_PC32     0000069b   .LC109 - 4
> 000012c8  00010802 R_X86_64_PC32     00000000   __strpbrk_sse2 - 4
> 000012e1  00001f02 R_X86_64_PC32     0000086e   __PRETTY_FUNCTION__.52 - 4
> 000012e7  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 000012ed  00009902 R_X86_64_PC32     000001f7   .LC33 - 4
> 000012f7  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 000012ff  0000b402 R_X86_64_PC32     00000000   __cpu_features + d
> 00001308  00010902 R_X86_64_PC32     00000000   __strrchr_sse42 - 4
> 0000130f  0000a702 R_X86_64_PC32     000006b2   .LC111 - 4
> 00001327  0000a802 R_X86_64_PC32     000006c2   .LC112 - 4
> 0000132d  00010a02 R_X86_64_PC32     00000000   __strrchr_sse2 - 4
> 00001334  0000a902 R_X86_64_PC32     000006d1   .LC113 - 4
> 00001344  00010b02 R_X86_64_PC32     00000000   __strrchr_sse2_no_bsf - 4
> 00001361  00002002 R_X86_64_PC32     0000087b   __PRETTY_FUNCTION__.52 - 4
> 00001367  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 0000136d  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 00001377  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 0000137f  0000b402 R_X86_64_PC32     00000000   __cpu_features + d
> 00001388  00010c02 R_X86_64_PC32     00000000   __strspn_sse42 - 4
> 0000138f  0000aa02 R_X86_64_PC32     000006ee   .LC115 - 4
> 000013a7  0000ab02 R_X86_64_PC32     000006fd   .LC116 - 4
> 000013ad  00010d02 R_X86_64_PC32     00000000   __strspn_sse2 - 4
> 000013c6  00002102 R_X86_64_PC32     00000888   __PRETTY_FUNCTION__.52 - 4
> 000013cc  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 000013d2  00009902 R_X86_64_PC32     000001f7   .LC33 - 4
> 000013dc  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 000013e4  0000b402 R_X86_64_PC32     00000000   __cpu_features + c
> 000013ee  0000ac02 R_X86_64_PC32     00000736   .LC121 - 4
> 000013f4  00010e02 R_X86_64_PC32     00000000   __wcscpy_ssse3 - 4
> 00001409  0000ad02 R_X86_64_PC32     00000745   .LC122 - 4
> 0000140f  00010f02 R_X86_64_PC32     00000000   __wcscpy_sse2 - 4
> 00001427  00002202 R_X86_64_PC32     000008a0   __PRETTY_FUNCTION__.52 - 4
> 0000142d  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 00001433  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 0000143d  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 00001445  0000b402 R_X86_64_PC32     00000000   __cpu_features + d
> 0000144e  00011002 R_X86_64_PC32     00000000   __strstr_sse42 - 4
> 00001455  0000ae02 R_X86_64_PC32     00000712   .LC118 - 4
> 0000146d  0000af02 R_X86_64_PC32     00000721   .LC119 - 4
> 00001473  00011102 R_X86_64_PC32     00000000   __strstr_sse2 - 4
> 0000148c  00002302 R_X86_64_PC32     00000894   __PRETTY_FUNCTION__.52 - 4
> 00001492  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 00001498  00009902 R_X86_64_PC32     000001f7   .LC33 - 4
> 000014a2  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 000014a8  00002402 R_X86_64_PC32     000007a3   __PRETTY_FUNCTION__.49 - 4
> 000014ae  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 000014b4  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 000014be  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 000014c4  00002502 R_X86_64_PC32     000007fd   __PRETTY_FUNCTION__.50 - 4
> 000014ca  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 000014d0  00005502 R_X86_64_PC32     00000034   .LC5 - 4
> 000014da  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
> 000014e0  00002602 R_X86_64_PC32     000007bd   __PRETTY_FUNCTION__.49 - 4
> 000014e6  00005402 R_X86_64_PC32     00000000   .LC4 - 4
> 000014ec  00009902 R_X86_64_PC32     000001f7   .LC33 - 4
> 000014f6  0000b802 R_X86_64_PC32     00000000   __GI___assert_fail - 4
>
> Relocation section '.rela.zdebug_info' at offset 0x6b88 contains 706 entries:
>

I fixed assert in i686 and x86-64 libc-func.c.


-- 
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]