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 perldemo2 task.

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.

Platform Perl Version Used In Generating Binaries
PC - Linux Perl 5.8.8
PC - Linux (64-bit) Perl 5.16.3
PC - Ubuntu Linux 16.04 (64-bit) Perl 5.22.1
PC - Fedora Linux 25 (64-bit) Perl 5.24.0
PC - Cygwin Perl 5.14.2
Mac Intel - OS X 10.12.x / Darwin 16.x Perl 5.18.2
Mac Intel - OS X 10.11.x / Darwin 15.x Perl 5.18.2
Mac Intel - OS X 10.10.x / Darwin 14.x Perl 5.18.2

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
      cd heasoft-6.20/<platform>/BUILD_DIR/
      rm config.cache
If you have any questions about the information above, please write to us at the FTOOLS help desk.

Help lines: FTOOLS or

Web page maintained by Bryan K. Irby

HEASARC Home | Observatories | Archive | Calibration | Software | Tools | Students/Teachers/Public

Last modified: Wednesday, 18-Jan-2017 17:51:08 EST