Ticket #1087 (new bug)

Opened 5 years ago

Last modified 3 years ago

Various tests fail on DragonFly/amd64

Reported by: reezer Owned by:
Priority: normal Milestone:
Component: testing Version: trunk
Severity: medium Keywords: dragonfly amd64
Cc: Language:
Patch status: Platform: other

Attachments

results Download (21.5 KB) - added by reezer 5 years ago.
Results of the failed tests
Generated.pm Download (74.2 KB) - added by reezer 5 years ago.
lib/Parrot/Config/Generated.pm
linux.dragonfly.Generated.pm.diff Download (10.3 KB) - added by jkeenan 5 years ago.
diff -w between Linux/i386 and Dragonfly/amd64 for lib/Parrot/Config/Generated.pm
results_r43027 Download (2.6 KB) - added by reezer 5 years ago.
Results from revision 43027 on DragonFly/amd64-HEAD

Change History

  Changed 5 years ago by jkeenan

  • keywords dragonfly amd64 added
  • component changed from none to testing

This is the failure message observed in the overwhelming majority of these failures:

# Received:
# /usr/libexec/ld-elf.so.2: Shared object "libparrot.so.1.6.0" not found, required by "[test_name]"
# 

... every file except t/op/inf_nan.t, AFAICT. So if we can figure out why you're not finding this very important file, most of your tests may clear up. Can you locate libparrot.so.1.6.0 at all?

(Probably OT side note: I recently upgraded from Debian 4.1 to 5.0. While at 4.1, I had build Perl 5.10.0 and then 5.10.1 from source. When I tried to run /usr/local/bin/perl -v after the distro upgrade, I got a missing shared object failure much like yours.)

kid51

follow-up: ↓ 3   Changed 5 years ago by reezer

it's in blib/lib

at the OT stuff: perl -v works fine here.

in reply to: ↑ 2   Changed 5 years ago by jkeenan

Replying to reezer:

it's in blib/lib at the OT stuff: perl -v works fine here.

reezer:

Since postings on our Smolder report "age out" after a while and are no longer fully accessible, would it be possible for you to call prove -v on all the test files that are experiencing failures, redirect both STDOUT and STDERR to a file, and post the file as an attachment to this ticket?

Also, is there anything obvious in config/init/hints/dragonfly.pm that won't work because you're on a 64-bit platform? (I believe all previous Dragonfly smoke reports have been from 32-bit systems.)

I don't think any of our core developers currently works on Dragonfly/AMD64. But we have people who might be able to spot a pattern and suggest a patch.

Thank you very much.

kid51

Changed 5 years ago by reezer

Results of the failed tests

follow-up: ↓ 6   Changed 5 years ago by reezer

Sorry for the delay, but now I added it.

About the hints file: I don't know enough about that. Maybe ask on the dragonfly mailing list or in IRC on #dragonflybsd on EFnet. Since there is a package for parrot in pkgsrc I guess some of them would be happy to help out, if more specific information is needed.

Of course I will try to provide any information required.

  Changed 5 years ago by dukeleto

The inf/nan failures look like dragonfly has a different math library implementation in libc than all the other *BSDs. It could be a bug in their libc.

in reply to: ↑ 4   Changed 5 years ago by jkeenan

Replying to reezer:

Of course I will try to provide any information required.

Would you be able to attach your lib/Parrot/Config/Generated.pm? Since most of the errors stem from an inability to locate libparrot.so (which we have established is in blib/lib at the point the tests are run), I'd be interested in seeing the results of your Parrot configuration. (Though I concede this is unexplored territory for me.)

Thank you very much.

kid51

Changed 5 years ago by reezer

lib/Parrot/Config/Generated.pm

follow-up: ↓ 8   Changed 5 years ago by reezer

Could it have something to do with the amd64 vs x86_64? Either inside parrot (the stuff inside config/) or because perl is x86_64, while DragonFly calls it amd64.

in reply to: ↑ 7   Changed 5 years ago by jkeenan

Replying to reezer:

Could it have something to do with the amd64 vs x86_64? Either inside parrot (the stuff inside config/) or because perl is x86_64, while DragonFly calls it amd64.

I don't know enough to say one way or the other. Perhaps some other 64-bit users can respond.

Thanks for posting your Parrot::Config::Generated. For research purposes, I configured Parrot on my Linux/i386, changed the homedir path in your Generated.pm to /home/user/ and did likewise with mine, then called diff -w on the two versions of Generated.pm. I am attaching the result as linux.dragonfly.diff. But here I'm posting what I suspect are the most relevant differences between my Generated.pm and yours.

122c117
<   'archname' => 'i686-linux',
---
>   'archname' => 'x86_64-dragonfly-thread-multi',
...
322c304
<   'ld_load_flags' => '-shared -O2 -L/usr/local/lib -fstack-protector -fPIC',
---
>   'ld_load_flags' => '-Wl,-R/usr/pkg/lib -shared ',
324,325c306,307
<   'ld_share_flags' => '-shared -O2 -L/usr/local/lib -fstack-protector -fPIC',
<   'ldflags' => ' -fstack-protector -L/usr/local/lib',
---
>   'ld_share_flags' => '-Wl,-R/usr/pkg/lib -shared ',
>   'ldflags' => '-Wl,-R/usr/pkg/lib -pthread -Wl,-E ',
337,338c319,320
<   'libs' => '-lnsl -ldl -lm -lcrypt -lutil -lpthread -lrt -lgmp -lreadline ',
<   'link' => 'cc',
---
>   'libs' => '-lm -lcrypt -lpthread',
>   'link' => 'g++',
340,341c322,323
<   'link_dynamic' => '-Wl,-E',
<   'linkflags' => ' -fstack-protector -L/usr/local/lib -Wl,-E',
---
>   'link_dynamic' => '  -Wl,-R/usr/pkg/lib/perl5/5.10.0/x86_64-dragonfly-thread-multi/CORE',
>   'linkflags' => '-Wl,-R/usr/pkg/lib -pthread -Wl,-E ',
...
389,391c369,371
<   'rpath' => '-Wl,-rpath=',
<   'rpath_blib' => '-Wl,-rpath=/home/user/parrot/blib/lib',
<   'rpath_lib' => '-Wl,-rpath=/usr/local/lib',
---
>   'rpath' => '-Wl,-R',
>   'rpath_blib' => '-Wl,-R/home/user/parrot/blib/lib',
>   'rpath_lib' => '-Wl,-R/usr/local/lib',

I wonder if the difference between my -rpath and your -R is significant with respect to the question of locating libparrot correctly.

kid51

Changed 5 years ago by jkeenan

diff -w between Linux/i386 and Dragonfly/amd64 for lib/Parrot/Config/Generated.pm

  Changed 5 years ago by jkeenan

In the Debian world, there was  a discussion about RPATH on AMD64 beginning here.

  Changed 5 years ago by reezer

Could this be related?  http://rt.perl.org/rt3//Public/Bug/Display.html?id=69686

Currently I can't test this stuff, maybe tomorrow or in a few days.

  Changed 5 years ago by reezer

I just found time to test this again. For testing I used the latest nightly image of DragonFly which I installed in VirtualBox.

I didn't get the errors any more and only two tests failed. Both of them in t/op/inf_nan.t

Changed 5 years ago by reezer

Results from revision 43027 on DragonFly/amd64-HEAD

follow-up: ↓ 13   Changed 5 years ago by reezer

I'm not sure what the inf_nan test that fails does. Would it be possible to provide a small C file to explain the problem(s)? I mean something that maybe prints the expected and the current output or simply crashes.

I could use it to understand, test and report it.

in reply to: ↑ 12 ; follow-up: ↓ 14   Changed 4 years ago by jkeenan

Replying to reezer:

I'm not sure what the inf_nan test that fails does.

reezer,

It appears that the tests you cited as failing are no longer a part of t/op/inf_nan.t. Could you try another make test on Parrot head?

Thank you very much.

kid51

in reply to: ↑ 13   Changed 3 years ago by reezer

Replying to jkeenan:

It appears that the tests you cited as failing are no longer a part of t/op/inf_nan.t. Could you try another make test on Parrot head?

The first two tests of t/dynoplibs/trans-infnan.t fail:

not ok 1 - exp: exp Inf
# Have: NaN
# Want: Inf
not ok 2 - ... exp -Inf
# Have: NaN
# Want: 0
Note: See TracTickets for help on using tickets.