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

Reply via email to