GNU bug report logs -
#35775
Test gremlin.scm fails on foreign distributions
Previous Next
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.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Sat, 18 May 2019 12:28:31 +0200
with message-id <87y334vyy8.fsf <at> gnu.org>
and subject line Re: bug#35775: Test gremlin.scm fails on foreign distributions
has caused the debbugs.gnu.org bug report #35775,
regarding Test gremlin.scm fails on foreign distributions
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
35775: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=35775
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (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)]
[Message part 5 (message/rfc822, inline)]
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’.
This bug report was last modified 6 years and 88 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.