I was thinking about having another bash at the haskell packages build
corruption problem. There hadn't been many haskell builds attempted when
I looked a few weeks ago.
Is it expected that the corruption of a few months ago would still occur ?
Mike.
On 13/04/2026 01:54, Samuel Thibault wrote:
Samuel Thibault, le lun. 13 avril 2026 01:41:16 +0200, a ecrit:
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.
But I can't reproduce that on my on box... (didn't use eatmydata,
though)
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