Samuel Thibault writes:

Hi!

> jann...@gnu.org, le sam. 16 nov. 2024 17:33:08 +0100, a ecrit:

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

Hmm...while our bootstrap-glibc was updated 20200326, the static
binaries are from 20200326.  We were using glibc-2.31 at that time.

> At the time I was hoping that htl would migrate its functions soon
> enough, so the patch would be only temporary :/

Another long lasting temporary... :/

> We can probably prioritize moving the __pthread_setcancelstate function
> from htl to glibc, so this patch gets not needed any more.

That would be nice.

>> Meanwhile, I found another hang in bash when it calls WAITPID.
>
> That doesn't ring a bell either. Where does it hang exactly?

Found it: in bash's redir.c.  During [cross-]compilitation,
builtins/pipesise.h:

--8<---------------cut here---------------start------------->8---
/*
 * pipesize.h
 *
 * This file is automatically generated by psize.sh
 * Do not edit!
 */

#define PIPESIZE 65536
--8<---------------cut here---------------end--------------->8---

is created.  From the Makefile 

--8<---------------cut here---------------start------------->8---
pipesize.h:     psize.aux
        $(SHELL) $(srcdir)/psize.sh > $@

# Technically this is wrong; the pipe size should be for the target system,
# not the build host.
psize.aux:      psize.c
        $(CC_FOR_BUILD) $(CCFLAGS_FOR_BUILD) ${LDFLAGS_FOR_BUILD} -o $@ 
$(srcdir)/psize.c
--8<---------------cut here---------------end--------------->8---

Checking a native build on Debian, it has: #define PIPESIZE 16384.

Using a hack during cross-build to use 16384 fixes the problem.  I'm
wondering why this never came up on the 32bit Hurd, does that match the
Linux pipe size (65536)?  If so should this issue still be reported to
bash upstream, or will the 64bit Hurd also match Linux pipe size in the
future?

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

Okay, thanks!  Rebuilding world with those, we should be almost there
after this.

Greetings,
Janneke

-- 
Janneke Nieuwenhuizen <jann...@gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com

Reply via email to