GNU bug report logs - #35775
Test gremlin.scm fails on foreign distributions

Previous Next

Package: guix;

Reported by: Ting-Wei Lan <lantw44 <at> gmail.com>

Date: Fri, 17 May 2019 13:45:02 UTC

Severity: normal

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 35775 in the body.
You can then email your comments to 35775 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#35775; Package guix. (Fri, 17 May 2019 13:45:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ting-Wei Lan <lantw44 <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Fri, 17 May 2019 13:45:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ting-Wei Lan <lantw44 <at> gmail.com>
To: bug-guix <at> gnu.org
Subject: Test gremlin.scm fails on foreign distributions
Date: Fri, 17 May 2019 21:44:01 +0800
[Message part 1 (text/plain, inline)]
There are two failed tests in tests/gremlin.scm.
The first one is 'elf-dynamic-info-needed, executable'. It seems that it
assumes the guile executable always links to libguile-2.2, libgc,
libunistring, libffi. However, on Fedora 30, /usr/bin/guile2.2 only
links to libguile-2.2, causing the test to fail because it cannot find
libgc, libunistring, libffi in NEEDED.
$ readelf -d /usr/bin/guile2.2

Dynamic section at offset 0x2d78 contains 28 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libguile-2.2.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000c (INIT)               0x1000
 0x000000000000000d (FINI)               0x13b8
 0x0000000000000019 (INIT_ARRAY)         0x3d60
 0x000000000000001b (INIT_ARRAYSZ)       8 (bytes)
 0x000000000000001a (FINI_ARRAY)         0x3d68
 0x000000000000001c (FINI_ARRAYSZ)       8 (bytes)
 0x000000006ffffef5 (GNU_HASH)           0x368
 0x0000000000000005 (STRTAB)             0x5a0
 0x0000000000000006 (SYMTAB)             0x3a8
 0x000000000000000a (STRSZ)              339 (bytes)
 0x000000000000000b (SYMENT)             24 (bytes)
 0x0000000000000015 (DEBUG)              0x0
 0x0000000000000003 (PLTGOT)             0x3f78
 0x0000000000000002 (PLTRELSZ)           216 (bytes)
 0x0000000000000014 (PLTREL)             RELA
 0x0000000000000017 (JMPREL)             0x870
 0x0000000000000007 (RELA)               0x780
 0x0000000000000008 (RELASZ)             240 (bytes)
 0x0000000000000009 (RELAENT)            24 (bytes)
 0x0000000000000018 (BIND_NOW)           
 0x000000006ffffffb (FLAGS_1)            Flags: NOW PIE
 0x000000006ffffffe (VERNEED)            0x720
 0x000000006fffffff (VERNEEDNUM)         2
 0x000000006ffffff0 (VERSYM)             0x6f4
 0x000000006ffffff9 (RELACOUNT)          3
 0x0000000000000000 (NULL)               0x0

I guess it may be related to the use of -Wl,--as-needed. The default
LDFLAGS for building packages includes -Wl,--as-needed since Fedora 30.
The second one is 'strip-runpath'. It seems that the reason is that
strip-runpath expects the executable to have RUNPATH because -Wl,-rpath
is used during linking. However, on systems which don't configure ld to
use --enable-new-dtags by default, RPATH is used instead of RUNPATH,
causing strip-runpath to fail. If I add '-Wl,--enable-new-dtags' to the
C compiler command line used by the test, the test passes.
expected-value: "hello\n"
actual-value: #f
actual-error:
+ (wrong-type-arg
+   "struct_vtable"
+   "Wrong type argument in position ~A (expecting ~A): ~S"
+   (1 "struct" #f)
+   (#f))
result: FAIL
I attached a patch which makes the tests pass on Fedora 30, but I am not
sure whether it is the correct way to fix things.
[guix-1.0.0-tests-gremlin.patch (text/x-patch, attachment)]

Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Sat, 18 May 2019 10:29:02 GMT) Full text and rfc822 format available.

Notification sent to Ting-Wei Lan <lantw44 <at> gmail.com>:
bug acknowledged by developer. (Sat, 18 May 2019 10:29:02 GMT) Full text and rfc822 format available.

Message #10 received at 35775-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Ting-Wei Lan <lantw44 <at> gmail.com>
Cc: 35775-done <at> debbugs.gnu.org
Subject: Re: bug#35775: Test gremlin.scm fails on foreign distributions
Date: Sat, 18 May 2019 12:28:31 +0200
Ting-Wei Lan <lantw44 <at> gmail.com> skribis:

> I attached a patch which makes the tests pass on Fedora 30, but I am not
> sure whether it is the correct way to fix things.

Great analysis and perfect patch.  :-)  I pushed it on your behalf as
6b97415996583b15a97dad8254f610275353e913, thank you!

Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 15 Jun 2019 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 288 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.