|Welcome to the Monastery|
Tkx and PERL_DL_NONLAZYby Kirsle (Pilgrim)
|on Jun 22, 2012 at 21:26 UTC||Need Help??|
Kirsle has asked for the wisdom of the Perl Monks concerning the following question:
For a few years I've been trying to get the Tkx module to install and work on a Linux system, using a stock vendor version of Perl (I've also tested on a perlbrew install as well) but without very much success. The best I could get would be for the test suite to pass, but "real" programs using Tkx (including "tkx-ed" that comes with the module) would fail, giving segmentation faults.
I chalked it off as being that ActiveState did something custom with their version of Perl and that the only way to get Tkx to work is to use ActivePerl.
But today I decided to take another stab at it. At first I came to the same point I've come with it before: the test suite works, but nothing else. But I decided to look into the Makefile to see why the test suite works -- because, if I ran a test manually, like perl t/LabEntry.t, it would also segfault. To make a long story short, this doesn't work:
$ perl tkx-ed Segmentation fault (code dumped)But this does:
$ PERL_DL_NONLAZY=1 perl tkx-edThe Makefile sets this variable and the tests pass. Without it, you get a segfault. With this variable, tkx-ed and tkx-prove both run. Without it, segfault.
What is this variable for, and what would cause it to be required for this one module to work?