[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#42771: smalltalk fails to build
From: |
Miguel Ángel Arruga Vivas |
Subject: |
bug#42771: smalltalk fails to build |
Date: |
Mon, 28 Dec 2020 12:42:56 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
Hi,
I've been investigating just a bit about this.
Ludovic Courtès <ludo@gnu.org> writes:
> (1) investigate why the test is failing (I think it’s a single test
> failure here),
Currently there are two main problems with 3.2.5:
- Integer multiplication overflow handling invokes undefined behavior,
which is "cleaned up" by the compiler. This is why
[ 100 fact / 99 fact ] returns <new> 0, and it's solved with the
first patch---trimmed down from the upstream patch, to avoid
conflicts.
- ANSI test suite fails with errors like these:
----------------------------------8<-----------------------------------
--- /dev/null 2020-12-24 20:38:33.836725540 +0000
+++
/tmp/guix-build-smalltalk-3.2.5.drv-0/smalltalk-3.2.5/tests/testsuite.dir/at-groups/47/stderr
2020-12-28 09:25:57.283891452 +0000
@@ -0,0 +1,13 @@
+gst: Aborted
+gst: Error occurred while not in byte code interpreter!!
+/tmp/guix-build-smalltalk-3.2.5.drv-0/smalltalk-3.2.5/libgst/.libs/libgst.so.7(+0x72d97)[0x7ffff7f5ed97]
+/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/libc.so.6(+0x36b20)[0x7ffff7b3bb20]
+/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/libc.so.6(gsignal+0xca)[0x7ffff7b3baba]
+/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/libc.so.6(abort+0x165)[0x7ffff7b3cbf5]
+/tmp/guix-build-smalltalk-3.2.5.drv-0/smalltalk-3.2.5/libgst/.libs/libgst.so.7(+0x2c936)[0x7ffff7f18936]
+/gnu/store/yrwirrblml57nwga1aza6rg3l9s8qga0-libsigsegv-2.12/lib/libsigsegv.so.2(+0x128c)[0x7ffff7ee728c]
+/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/libc.so.6(+0x36b20)[0x7ffff7b3bb20]
+/tmp/guix-build-smalltalk-3.2.5.drv-0/smalltalk-3.2.5/libgst/.libs/libgst.so.7(+0x569f0)[0x7ffff7f429f0]
+/tmp/guix-build-smalltalk-3.2.5.drv-0/smalltalk-3.2.5/libgst/.libs/libgst.so.7(+0x72919)[0x7ffff7f5e919]
+/tmp/guix-build-smalltalk-3.2.5.drv-0/smalltalk-3.2.5/libgst/.libs/libgst.so.7(+0x2e4c7)[0x7ffff7f1a4c7]
+/tmp/guix-build-smalltalk-3.2.5.drv-0/smalltalk-3.2.5/tests/testsuite.dir/at-groups/47/test-source:
line 20: 21205 Aborted $TIMEOUT gst $image_path -f
$abs_srcdir/AnsiRun.st ArrayANSITest
stdout:
./testsuite.at:83: exit code was 134, expected 0
47. testsuite.at:83: 47. ArrayANSITest (testsuite.at:83): FAILED
(testsuite.at:83)
---------------------------------->8-----------------------------------
> (2) try to determine whether it’s serious or not,
The first one is pretty serious. The second one might as bad as the
first one or may be a flaw on the tests and could be omitted.
> (3) see if we can work around it with reasonable effort, and if
> not, skip just this test.
This only should be the case when the problem is on the test side:
either it's using something we don't want to provide, as side channels,
or the check itself is buggy; never when the test is working properly
because we would be delivering buggy software after we have been warned
about it.
I cannot spot where the second error was fixed, but 3.2.91 as provided
with the second patch doesn't manifest it.
> 2. I think we should just have ‘smalltalk’ (latest release) and
> ‘smalltalk-next’ (VCS snapshot). Having an extra package for the
> release candidate is not really useful IMO, and not something we
> generally do.
The last change made to GNU Smalltalk's master branch was more than 2
years ago, the latest change affecting executable paths was February
2017. IMHO, providing a patched release candidate (or even the
snapshot) seems the best option until the project release a new version,
as in fact we aren't providing currently a useful package.
Happy hacking!
Miguel
PS: Its build isn't reproducible:
- gst.im has inside some kind of timestamp. This probably needs
changes on the source code.
- package.xml and kernel/ folders contain different timestamps inside
dot-star files---a wrapper to zip or something like
reset-gzip-timestamps could solve this issue.
0001-gnu-smalltalk-Fix-integer-multiplication-overflow.patch
Description: fix-integer.patch
0002-gnu-smalltalk-Update-to-version-3.2.91.patch
Description: update-to-91.patch