[v8,1/8] nptl: Add C11 threads thrd_* functions
Commit Message
On 07/11/2018 06:24 PM, Adhemerval Zanella wrote:
>
>
> On 11/07/2018 12:49, Szabolcs Nagy wrote:
>> On 10/07/18 20:26, Adhemerval Zanella wrote:
>>>
>>>
>>> On 06/07/2018 09:46, Florian Weimer wrote:
>>>> On 02/02/2018 06:04 PM, Adhemerval Zanella wrote:
>>>>> @@ -139,7 +139,9 @@ libpthread-routines = nptl-init vars events version pt-interp \
>>>>> pthread_mutex_getprioceiling \
>>>>> pthread_mutex_setprioceiling \
>>>>> pthread_setname pthread_getname \
>>>>> - pthread_setattr_default_np pthread_getattr_default_np
>>>>> + pthread_setattr_default_np pthread_getattr_default_np \
>>>>> + thrd_create thrd_current thrd_detach thrd_equal \
>>>>
>>>> thrd_current should live in libc, not in libpthread. Same for thrd_equal, I suppose. You should just duplicate the comparison, seeing that we haven't done that particular cleanup for pthread_equal yet.
>>>>
>>>> Not sure about thrd_sleep and thrd_yield, but I lean towards libc there as well.
>>>
>>> Right, I added all four symbols (thrd_current, thrd_equal, thrd_sleep, and
>>> thrd_yield) to libc on my personal branch [1] (the change is just to move
>>> the objects from libpthread-routines to routines rule in nptl/Makefile).
>>> I also adjusted the abilist patch with the change.
>>>
>>
>> the abilist patch seems to add
>> sysdeps/unix/sysv/linux/tile/tilegx64/libpthread.abilist
>> i think you can drop that (and update the ChangeLog).
>
> Thanks for catching this up, I fixed on my personal c11 thread branch.
I still see the attached ABI diffs.
There is also a new linknamespace failure on hppa:
[initial] thrd_create -> [libpthread.a(thrd_create.o)]
__pthread_create_2_1 -> [libpthread.a(pthread_create.o)] mprotect
That should be easy to fix. I'll post a separate patch for that.
Thanks,
Florian
==> /home/bmg/build/glibcs/i686-gnu/glibc/hurd/check-abi-libhurduser.out <==
Comments
On 12/07/2018 09:18, Florian Weimer wrote:
> On 07/11/2018 06:24 PM, Adhemerval Zanella wrote:
>>
>>
>> On 11/07/2018 12:49, Szabolcs Nagy wrote:
>>> On 10/07/18 20:26, Adhemerval Zanella wrote:
>>>>
>>>>
>>>> On 06/07/2018 09:46, Florian Weimer wrote:
>>>>> On 02/02/2018 06:04 PM, Adhemerval Zanella wrote:
>>>>>> @@ -139,7 +139,9 @@ libpthread-routines = nptl-init vars events version pt-interp \
>>>>>> pthread_mutex_getprioceiling \
>>>>>> pthread_mutex_setprioceiling \
>>>>>> pthread_setname pthread_getname \
>>>>>> - pthread_setattr_default_np pthread_getattr_default_np
>>>>>> + pthread_setattr_default_np pthread_getattr_default_np \
>>>>>> + thrd_create thrd_current thrd_detach thrd_equal \
>>>>>
>>>>> thrd_current should live in libc, not in libpthread. Same for thrd_equal, I suppose. You should just duplicate the comparison, seeing that we haven't done that particular cleanup for pthread_equal yet.
>>>>>
>>>>> Not sure about thrd_sleep and thrd_yield, but I lean towards libc there as well.
>>>>
>>>> Right, I added all four symbols (thrd_current, thrd_equal, thrd_sleep, and
>>>> thrd_yield) to libc on my personal branch [1] (the change is just to move
>>>> the objects from libpthread-routines to routines rule in nptl/Makefile).
>>>> I also adjusted the abilist patch with the change.
>>>>
>>>
>>> the abilist patch seems to add
>>> sysdeps/unix/sysv/linux/tile/tilegx64/libpthread.abilist
>>> i think you can drop that (and update the ChangeLog).
>>
>> Thanks for catching this up, I fixed on my personal c11 thread branch.
>
> I still see the attached ABI diffs.
Thanks, I have corrected them in my personal branch, along with the ChangeLog
entry and a lingering file from tile.
>
> There is also a new linknamespace failure on hppa:
>
> [initial] thrd_create -> [libpthread.a(thrd_create.o)] __pthread_create_2_1 -> [libpthread.a(pthread_create.o)] mprotect
>
> That should be easy to fix. I'll post a separate patch for that.
You seemed to already fix, thanks.
On 07/12/2018 07:38 PM, Adhemerval Zanella wrote:
>
>
> On 12/07/2018 09:18, Florian Weimer wrote:
>> On 07/11/2018 06:24 PM, Adhemerval Zanella wrote:
>>>
>>>
>>> On 11/07/2018 12:49, Szabolcs Nagy wrote:
>>>> On 10/07/18 20:26, Adhemerval Zanella wrote:
>>>>>
>>>>>
>>>>> On 06/07/2018 09:46, Florian Weimer wrote:
>>>>>> On 02/02/2018 06:04 PM, Adhemerval Zanella wrote:
>>>>>>> @@ -139,7 +139,9 @@ libpthread-routines = nptl-init vars events version pt-interp \
>>>>>>> pthread_mutex_getprioceiling \
>>>>>>> pthread_mutex_setprioceiling \
>>>>>>> pthread_setname pthread_getname \
>>>>>>> - pthread_setattr_default_np pthread_getattr_default_np
>>>>>>> + pthread_setattr_default_np pthread_getattr_default_np \
>>>>>>> + thrd_create thrd_current thrd_detach thrd_equal \
>>>>>>
>>>>>> thrd_current should live in libc, not in libpthread. Same for thrd_equal, I suppose. You should just duplicate the comparison, seeing that we haven't done that particular cleanup for pthread_equal yet.
>>>>>>
>>>>>> Not sure about thrd_sleep and thrd_yield, but I lean towards libc there as well.
>>>>>
>>>>> Right, I added all four symbols (thrd_current, thrd_equal, thrd_sleep, and
>>>>> thrd_yield) to libc on my personal branch [1] (the change is just to move
>>>>> the objects from libpthread-routines to routines rule in nptl/Makefile).
>>>>> I also adjusted the abilist patch with the change.
>>>>>
>>>>
>>>> the abilist patch seems to add
>>>> sysdeps/unix/sysv/linux/tile/tilegx64/libpthread.abilist
>>>> i think you can drop that (and update the ChangeLog).
>>>
>>> Thanks for catching this up, I fixed on my personal c11 thread branch.
>>
>> I still see the attached ABI diffs.
>
> Thanks, I have corrected them in my personal branch, along with the ChangeLog
> entry and a lingering file from tile.
As of commit 2b9d7c41ade511d99cd917bb8d28eb0fe91971ed, I still see:
==>
/home/bmg/build/glibcs/mipsel-linux-gnu-nan2008-soft/glibc/elf/check-abi-libc.out
<==
--- ../sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
2018-07-10 08:15:53.536227638 -0400
+++
/home/bmg/build/glibcs/mipsel-linux-gnu-nan2008-soft/glibc/libc.symlist
2018-07-13 03:00:06.345221784 -0400
@@ -1963,0 +1964,4 @@ GLIBC_2.28 statx F
+GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_equal F
+GLIBC_2.28 thrd_sleep F
+GLIBC_2.28 thrd_yield F
==>
/home/bmg/build/glibcs/mipsel-linux-gnu-soft/glibc/elf/check-abi-libc.out
<==
--- ../sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
2018-07-10 08:15:53.536227638 -0400
+++ /home/bmg/build/glibcs/mipsel-linux-gnu-soft/glibc/libc.symlist
2018-07-13 02:58:41.692589329 -0400
@@ -1963,0 +1964,4 @@ GLIBC_2.28 statx F
+GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_equal F
+GLIBC_2.28 thrd_sleep F
+GLIBC_2.28 thrd_yield F
==>
/home/bmg/build/glibcs/mips-linux-gnu-nan2008-soft/glibc/elf/check-abi-libc.out
<==
--- ../sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
2018-07-10 08:15:53.536227638 -0400
+++
/home/bmg/build/glibcs/mips-linux-gnu-nan2008-soft/glibc/libc.symlist
2018-07-13 03:00:43.831389053 -0400
@@ -1963,0 +1964,4 @@ GLIBC_2.28 statx F
+GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_equal F
+GLIBC_2.28 thrd_sleep F
+GLIBC_2.28 thrd_yield F
==>
/home/bmg/build/glibcs/mips-linux-gnu-soft/glibc/elf/check-abi-libc.out <==
--- ../sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
2018-07-10 08:15:53.536227638 -0400
+++ /home/bmg/build/glibcs/mips-linux-gnu-soft/glibc/libc.symlist
2018-07-13 03:00:32.210027180 -0400
@@ -1963,0 +1964,4 @@ GLIBC_2.28 statx F
+GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_equal F
+GLIBC_2.28 thrd_sleep F
+GLIBC_2.28 thrd_yield F
Florian
@@ -0,0 +1,611 @@
+Base _S_msg_server F
+Base _S_msg_server_routines D 0x64
+Base __auth_getids F
+Base __auth_makeauth F
+Base __auth_server_authenticate F
+Base __auth_user_authenticate F
+Base __bss_start Base g ? D .bss 00000000
+Base __crash_dump_task F
+Base __dir_link F
+Base __dir_lookup F
+Base __dir_mkdir F
+Base __dir_mkfile F
+Base __dir_notice_changes F
+Base __dir_readdir F
+Base __dir_rename F
+Base __dir_rmdir F
+Base __dir_unlink F
+Base __exec_exec F
+Base __exec_exec_paths F
+Base __exec_init F
+Base __exec_setexecdata F
+Base __exec_startup_get_info F
+Base __file_chauthor F
+Base __file_check_access F
+Base __file_chflags F
+Base __file_chmod F
+Base __file_chown F
+Base __file_exec F
+Base __file_exec_paths F
+Base __file_get_fs_options F
+Base __file_get_storage_info F
+Base __file_get_translator F
+Base __file_get_translator_cntl F
+Base __file_getcontrol F
+Base __file_getfh F
+Base __file_getlinknode F
+Base __file_lock F
+Base __file_lock_stat F
+Base __file_notice_changes F
+Base __file_reparent F
+Base __file_set_size F
+Base __file_set_translator F
+Base __file_statfs F
+Base __file_sync F
+Base __file_syncfs F
+Base __file_utimens F
+Base __file_utimes F
==> /home/bmg/build/glibcs/i686-gnu/glibc/mach/check-abi-libmachuser.out <==
@@ -0,0 +1,319 @@
+Base _S_exc_server F
+Base _S_exc_server_routines D 0x4
+Base __bss_start Base g ? D .bss 00000000
+Base __default_pager_info F
+Base __default_pager_object_create F
+Base __default_pager_object_pages F
+Base __default_pager_objects F
+Base __default_pager_paging_file F
+Base __default_pager_register_fileserver F
+Base __device_close F
+Base __device_get_status F
+Base __device_map F
+Base __device_open F
+Base __device_open_request F
+Base __device_read F
+Base __device_read_inband F
+Base __device_read_request F
+Base __device_read_request_inband F
+Base __device_set_filter F
+Base __device_set_status F
+Base __device_write F
+Base __device_write_inband F
+Base __device_write_request F
+Base __device_write_request_inband F
+Base __exception_raise F
+Base __gsync_requeue F
+Base __gsync_wait F
+Base __gsync_wake F
+Base __host_adjust_time F
+Base __host_get_boot_info F
+Base __host_get_time F
+Base __host_info F
+Base __host_kernel_version F
+Base __host_processor_set_priv F
+Base __host_processor_sets F
+Base __host_processors F
+Base __host_reboot F
+Base __host_set_time F
+Base __i386_get_gdt F
+Base __i386_get_ldt F
+Base __i386_io_perm_create F
+Base __i386_io_perm_modify F
+Base __i386_set_gdt F
+Base __i386_set_ldt F
+Base __mach_notify_new_task F
+Base __mach_port_allocate_name_rpc F
+Base __mach_port_allocate_rpc F
==> /home/bmg/build/glibcs/m68k-linux-gnu-coldfire/glibc/elf/check-abi-libc.out <==
@@ -122,0 +123,4 @@ GLIBC_2.28 statx F
+GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_equal F
+GLIBC_2.28 thrd_sleep F
+GLIBC_2.28 thrd_yield F
==> /home/bmg/build/glibcs/m68k-linux-gnu-coldfire/glibc/nptl/check-abi-libpthread.out <==
@@ -23 +22,0 @@ GLIBC_2.28 thrd_create F
-GLIBC_2.28 thrd_current F
@@ -25 +23,0 @@ GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_equal F
@@ -28,2 +25,0 @@ GLIBC_2.28 thrd_join F
-GLIBC_2.28 thrd_sleep F
-GLIBC_2.28 thrd_yield F
==> /home/bmg/build/glibcs/m68k-linux-gnu-coldfire-soft/glibc/elf/check-abi-libc.out <==
@@ -122,0 +123,4 @@ GLIBC_2.28 statx F
+GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_equal F
+GLIBC_2.28 thrd_sleep F
+GLIBC_2.28 thrd_yield F
==> /home/bmg/build/glibcs/m68k-linux-gnu-coldfire-soft/glibc/nptl/check-abi-libpthread.out <==
@@ -23 +22,0 @@ GLIBC_2.28 thrd_create F
-GLIBC_2.28 thrd_current F
@@ -25 +23,0 @@ GLIBC_2.28 thrd_detach F
-GLIBC_2.28 thrd_equal F
@@ -28,2 +25,0 @@ GLIBC_2.28 thrd_join F
-GLIBC_2.28 thrd_sleep F
-GLIBC_2.28 thrd_yield F
==> /home/bmg/build/glibcs/mipsel-linux-gnu-nan2008-soft/glibc/elf/check-abi-libc.out <==
@@ -1963,0 +1964,4 @@ GLIBC_2.28 statx F
+GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_equal F
+GLIBC_2.28 thrd_sleep F
+GLIBC_2.28 thrd_yield F
==> /home/bmg/build/glibcs/mipsel-linux-gnu-soft/glibc/elf/check-abi-libc.out <==
@@ -1963,0 +1964,4 @@ GLIBC_2.28 statx F
+GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_equal F
+GLIBC_2.28 thrd_sleep F
+GLIBC_2.28 thrd_yield F
==> /home/bmg/build/glibcs/mips-linux-gnu-nan2008-soft/glibc/elf/check-abi-libc.out <==
@@ -1963,0 +1964,4 @@ GLIBC_2.28 statx F
+GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_equal F
+GLIBC_2.28 thrd_sleep F
+GLIBC_2.28 thrd_yield F
==> /home/bmg/build/glibcs/mips-linux-gnu-soft/glibc/elf/check-abi-libc.out <==
@@ -1963,0 +1964,4 @@ GLIBC_2.28 statx F
+GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_equal F
+GLIBC_2.28 thrd_sleep F
+GLIBC_2.28 thrd_yield F
==> /home/bmg/build/glibcs/powerpc-linux-gnu-soft/glibc/elf/check-abi-libc.out <==
@@ -1995,0 +1996,4 @@ GLIBC_2.28 statx F
+GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_equal F
+GLIBC_2.28 thrd_sleep F
+GLIBC_2.28 thrd_yield F
==> /home/bmg/build/glibcs/powerpc-linux-gnuspe-e500v1/glibc/elf/check-abi-libc.out <==
@@ -1995,0 +1996,4 @@ GLIBC_2.28 statx F
+GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_equal F
+GLIBC_2.28 thrd_sleep F
+GLIBC_2.28 thrd_yield F
==> /home/bmg/build/glibcs/powerpc-linux-gnuspe/glibc/elf/check-abi-libc.out <==
@@ -1995,0 +1996,4 @@ GLIBC_2.28 statx F
+GLIBC_2.28 thrd_current F
+GLIBC_2.28 thrd_equal F
+GLIBC_2.28 thrd_sleep F
+GLIBC_2.28 thrd_yield F