Pre-Compiled Perl Libraries In HEASoft
HEASoft contains several Perl Libraries which provide Perl interfaces to
core libraries such as PIL and CFITSIO. These interfaces are currently
used by a number of tools, primarily in mission packages such as Swift,
Suzaku, and NuSTAR. Portability of the pre-compiled binaries
depends heavily on the version of Perl used to generate the binaries, and in
many cases users may find that there is a mismatch between their version of
Perl and the one we used.
We have received reports of this "mismatch" occurring even when
the same version of Perl is ostensibly being used by both HEASARC and the
user, which underscores just how non-portable these pre-compiled Perl
libraries are. We originally only expected this with major version
differences, but it turns out to happen at minor version differences and
even (as in these cases) at apparently invisible levels. As a result, we
encourage users to download the source code distribution instead.
Symptoms of this mismatch typically include runtime errors such as
"undefined symbol: PL_sv_undef" or "undefined symbol: PL_markstack_ptr"
(if your version of Perl is newer than the one we used) or
"error getting <parameter> parameter"
(if your version of Perl is older than the one we used). If you are unsure
whether this problem affects your installation, try running the
In general, we recommend building HEASoft from the source code distribution
in order to avoid this problem, but if building from source is not an option
(for example, if we do not support source builds on your particular flavor
of Linux), we recommend that you
install a version of Perl
which matches the version we used. To aid in this process, the
following table describes the Perl versions used in generating the current
HEASoft pre-compiled binary distributions.
||Perl Version Used In Generating Binaries
|PC - Linux
|PC - Linux (64-bit)
|PC - Cygwin
|Mac Intel - OS X 10.9 / Darwin 13.x
|Mac Intel - OS X 10.8 / Darwin 12.x
|Mac Intel - OS X 10.7 / Darwin 11.x
Note that after installing a new version of Perl, you will need to
redefine the LHEAPERL environment variable used by HEASoft in
order for the pre-compiled binaries to work. The best way to do this
is by re-configuring the binaries to use your new Perl as follows:
setenv PERL /path/to/your/new/perl
If you have any questions about the information above, please write to
us at the FTOOLS help desk.
Web page maintained by
Bryan K. Irby
HEASARC Home |
Last modified: Wednesday, 29-Jul-2015 16:13:43 EDT