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: Perl_Gthr_key_ptr", "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 - Ubuntu Linux 20.04 Perl 5.30.0
PC - Fedora Linux 39 Perl 5.38.2
PC - Red Hat Enterprise Linux 8.9 Perl 5.26.3
Mac Intel Perl 5.30.3

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 easiest way to do this is by editing the headas-setup script to use your new Perl. That file lives here:

and you will need to change value of the LHEAPERL variable on line 65. If you have any questions about the information above, please write to us at the FTOOLS help desk.

HEASoft / FTOOLS Help Desk

If FTOOLS has been useful in your research, please reference this site ( and use the ASCL reference for HEASoft [ascl:1408.004] or the ASCL reference for the original FTOOLs paper [ascl:9912.002]:

Blackburn, J. K. 1995, in ASP Conf. Ser., Vol. 77, Astronomical Data Analysis Software and Systems IV, ed. R. A. Shaw, H. E. Payne, and J. J. E. Hayes (San Francisco: ASP), 367.

Web page maintained by: Bryan K. Irby

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

Last modified: Monday, 22-Apr-2024 14:08:29 EDT