Hello, jann...@gnu.org, le sam. 16 nov. 2024 17:33:08 +0100, a ecrit: > #if defined _LIBC > /* We do not want this call to be cut short by a thread > cancellation. Therefore disable cancellation for now. */ > int state = PTHREAD_CANCEL_ENABLE; > __pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &state); > #endif > --8<---------------cut here---------------end--------------->8--- > > The Debian-compiled error.o, however, seems to do a check > > --8<---------------cut here---------------start------------->8--- > 13e: 48 83 3d 00 00 00 00 cmpq $0x0,0x0(%rip) # 146 > <__error_internal+0x36> > 145: 00 > 146: c7 45 c4 01 00 00 00 movl $0x1,-0x3c(%rbp) > 14d: 74 0b je 15a <__error_internal+0x4a> > 14f: 48 8d 75 c4 lea -0x3c(%rbp),%rsi > 153: 31 ff xor %edi,%edi > 155: e8 00 00 00 00 call 15a <__error_internal+0x4a> > --8<---------------cut here---------------end--------------->8--- > > and decides to skip the call 0x0. Hmm. > > Okay, so Guix hasn't been using > > <https://salsa.debian.org/glibc-team/glibc/-/blob/25a0a47767fe7dc5151eb36afaade17218728efe/debian/patches/hurd-i386/local-static_pthread_setcancelstate.diff> > > which didn't seem to be a problem before / with 32bit.
I'm surprised it wouldn't be a problem on 32bit too. At the time I was hoping that htl would migrate its functions soon enough, so the patch would be only temporary :/ We can probably prioritize moving the __pthread_setcancelstate function from htl to glibc, so this patch gets not needed any more. > Meanwhile, I found another hang in bash when it calls WAITPID. That doesn't ring a bell either. Where does it hang exactly? > git-fault-64bit.diff > git-intr-msg-clobber.diff You do want these two. See the bug-hurd mailing list logs for the details, basically git-intr-msg-clobber.diff is really a requirement, otherwise e.g. $() shell replacement don't work properly. And fault-64bit is important to get proper exception dispatch. Samuel