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: janneke
Subject: Re: static tar-1.34 hanging on warning/error [WAS: SOLVED [cross] building gdb for the 64bit Hurd?]
Date: Sat, 16 Nov 2024 20:47:40 +0100
User-agent: Gnus/5.13 (Gnus v5.13)

Samuel Thibault writes:

Hi!

> janneke@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 <janneke@gnu.org>  | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com



reply via email to

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