Hello,
It seems to be helping a bit (I have seen a bit less corruption
apparently), but it seems we are still facing corruptions, notably when
building these packages:
haskell-dbus
haskell-graphviz
haskell-texmath
haskell-trifecta
haskell-typst
we end up with various symbol table issues etc. The attached "checkone"
script does some tests (give it the libghc-foo-dev.deb file name as
parameter) that end up failing on these packages results on the buildds.
Samuel
Samuel Thibault, le jeu. 02 avril 2026 01:05:57 +0200, a ecrit:
> Hello,
>
> Thanks for this! I have pushed it to upstream glibc.
>
> Samuel
>
> Mike Kelly, le mer. 01 avril 2026 20:49:31 +0100, a ecrit:
> > This is my proposal to fix the SIGSTOP/SIGCONT issue where RPC calls
> > were being repeated even though the server will complete the request
> > as discussed in the thread:
> >
> > https://lists.gnu.org/archive/html/bug-hurd/2026-03/msg00243.html
> >
> > The very simple test case was to run tar whilst SIGSTOP/SIGCONT
> > multiple times from the shell:
> >
> > # /usr/bin/tar xf data.tar.xz
> >
> > Repeated interrupted extractions of the same archive result in file
> > differences in the output as some segments are written multiple times.
> >
> > There are 2 patches that must be applied in the sequence specified:
> >
> > 1) Alterations to MSG_EXAMINE to provide the signal thread with access
> > to additional RPC input parameters. There was a case of 'return -1' in
> > the i386 version which made no sense in an inline macro and I'm
> > guessing was a historic leftover. I have altered it to match the
> > x86_64 version.
> >
> > 2) Patch 2 is the revised architecture independent fix for
> > SIGSTOP/SIGCONT.
> >
> > I can confirm that this patch fixes this testcase on both hurd-i386
> > and hurd-amd64. I've run msgport utility and it runs with output
> > generated from report-wait so seems OK. Hopefully there are no
> > unforeseen negative consequences.
> >
> > Cheers,
> >
> > Mike.
#!/bin/bash
TMPDIR=/tmp/$$
case $1 in
*libghc*-dev_*)
;;
*)
exit 0
esac
echo checking $1
dpkg-deb -x $1 $TMPDIR
cd $TMPDIR || exit 0
for i in $(find usr/lib/haskell-packages/ghc/lib -name \*.so) ; do
if readelf -r $i | grep -q R_X86_64_NONE \
|| LANG=C readelf -s $i 2>&1 | grep -q "readelf: Warning:
local symbol" \
|| ld $i -o $TMPDIR/test.so 2>&1 | grep -q "corrupt symbol
table" \
; then
echo "$1 bogus"
break
fi
done
rm -fr $TMPDIR