bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: static tar-1.34 hanging on warning/error [WAS: SOLVED [cross] buildi


From: Samuel Thibault
Subject: Re: static tar-1.34 hanging on warning/error [WAS: SOLVED [cross] building gdb for the 64bit Hurd?]
Date: Sat, 16 Nov 2024 18:09:42 +0100

Hello,

janneke@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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]