From patchwork Thu Jul 12 12:18:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Florian Weimer X-Patchwork-Id: 28335 Received: (qmail 83056 invoked by alias); 12 Jul 2018 12:19:02 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 83030 invoked by uid 89); 12 Jul 2018 12:19:02 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-11.3 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_2, GIT_PATCH_3, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mx1.redhat.com Subject: Re: [PATCH v8 1/8] nptl: Add C11 threads thrd_* functions To: Adhemerval Zanella , Szabolcs Nagy , libc-alpha@sourceware.org Cc: nd@arm.com References: <1517591084-11347-1-git-send-email-adhemerval.zanella@linaro.org> <1517591084-11347-2-git-send-email-adhemerval.zanella@linaro.org> <23dd1909-5ec2-34b7-9672-827251a4be65@redhat.com> <176c958e-45d6-c1fc-49e4-4eca813d460f@linaro.org> <0566f5a5-f56c-7dd9-5ba6-91c67d9633e9@arm.com> <1fdcdd41-5160-f6db-e585-9775e5b581c3@linaro.org> From: Florian Weimer Message-ID: Date: Thu, 12 Jul 2018 14:18:56 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 MIME-Version: 1.0 In-Reply-To: <1fdcdd41-5160-f6db-e585-9775e5b581c3@linaro.org> 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 <== --- ../sysdeps/mach/hurd/libhurduser.abilist 2018-07-05 06:10:49.243248916 -0400 +++ /home/bmg/build/glibcs/i686-gnu/glibc/hurd/libhurduser.symlist 2018-07-12 07:38:17.405204797 -0400 @@ -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 <== --- ../sysdeps/mach/libmachuser.abilist 2018-07-05 06:10:49.254249207 -0400 +++ /home/bmg/build/glibcs/i686-gnu/glibc/mach/libmachuser.symlist 2018-07-12 07:36:45.837658100 -0400 @@ -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 <== --- ../sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist 2018-07-10 08:15:53.535227613 -0400 +++ /home/bmg/build/glibcs/m68k-linux-gnu-coldfire/glibc/libc.symlist 2018-07-12 07:54:17.126989778 -0400 @@ -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 <== --- ../sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist 2018-07-12 07:14:24.376165898 -0400 +++ /home/bmg/build/glibcs/m68k-linux-gnu-coldfire/glibc/nptl/libpthread.symlist 2018-07-12 07:44:19.285683784 -0400 @@ -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 <== --- ../sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist 2018-07-10 08:15:53.535227613 -0400 +++ /home/bmg/build/glibcs/m68k-linux-gnu-coldfire-soft/glibc/libc.symlist 2018-07-12 07:59:42.365934960 -0400 @@ -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 <== --- ../sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist 2018-07-12 07:14:24.376165898 -0400 +++ /home/bmg/build/glibcs/m68k-linux-gnu-coldfire-soft/glibc/nptl/libpthread.symlist 2018-07-12 07:45:38.102269392 -0400 @@ -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 <== --- ../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-12 08:05:48.875315449 -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-12 08:07:26.234527478 -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-12 08:03:53.394265775 -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-12 08:04:43.725036830 -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/powerpc-linux-gnu-soft/glibc/elf/check-abi-libc.out <== --- ../sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist 2018-07-10 08:15:53.537227663 -0400 +++ /home/bmg/build/glibcs/powerpc-linux-gnu-soft/glibc/libc.symlist 2018-07-12 08:07:09.786984849 -0400 @@ -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 <== --- ../sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist 2018-07-10 08:15:53.537227663 -0400 +++ /home/bmg/build/glibcs/powerpc-linux-gnuspe-e500v1/glibc/libc.symlist 2018-07-12 08:07:11.875053737 -0400 @@ -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 <== --- ../sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist 2018-07-10 08:15:53.537227663 -0400 +++ /home/bmg/build/glibcs/powerpc-linux-gnuspe/glibc/libc.symlist 2018-07-12 08:07:33.724774593 -0400 @@ -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