I started looking at providing support for newer version of Perl. Note that Perl 5.16 is no longer available to download free on the ActivePerl web site at http://aspn.activestate.com/ASPN/Downloads/ActivePerl/ so I probably won't be able to provide STAF Perl 5.16 support.
I tried to build STAF Perl support for Windows 64-bit using ActivePerl 5.18. Here are some notes on problems I encountered and workarounds.
Building STAF Perl Support on Windows 64-bit using ActivePerl 5.18:
I downloaded ActivePerl-5.18.4.1804-MSWin32-x64-298913.msi from the ActivePerl web site at http://aspn.activestate.com/ASPN/Downloads/ActivePerl/ and installed it on a Windows 7 64-bit system to directory C:\Perl64-5.18. Then I tarred up this directory to my STAF win32 build machine (where I build winamd64).
Starting with Perl 5.18, ActivePerl is built with MinGW on Windows, not Visual Studio, so there are some changes that need to be made to ActivePerl 5.18 for Windows in order to use it to build STAF Perl 5.18 support.
1) To fix various compile errors regarding the definition of the PERL_STATIC_INLINE variable, edit the lib\CORE\config.h file (after changing it's permissions so it isn't read only) and change the define line for PERL_STATIC_INLINE to use the value used when compiling using Microsoft Visual Studio (MSVC) instead of setting it to the value used when compiling using "gcc -ansi":
Change:
#define PERL_STATIC_INLINE static __inline__ /**/
to:
#define PERL_STATIC_INLINE static __inline /**/
Here's how it was defined in the config.h file in ActivePerl 5.14 which worked:
2) Another change is needed to fix the following link error which now occurs because there is no longer a file named perl518.lib in the lib\CORE folder or anywhere else:
STAF needs the perl518.lib file to link to Perl. Since ActivePerl 5.18 and newer is being built with MinGW, not Visual Studio, this library file is now named libperl518.a as it is using the standard GNU extension. To resolve the STAF Perl link error, copy file lib\CORE\libperl518.a to lib\CORE\perl518.lib.
These were the changes I made to successfully build STAF Perl support using ActivePerl 5.18 on Windows 64-bit.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Building STAF Perl Support on Windows 64-bit using ActivePerl 5.20:
I downloaded ActivePerl-5.20.2.2001-MSWin32-x64-298913.msi from the ActivePerl web site at http://aspn.activestate.com/ASPN/Downloads/ActivePerl/ and installed it on a Windows 7 64-bit system to directory C:\Perl64-5.20. Then I tarred up this directory to put it on my STAF win32 build machine (where I build winamd64).
Here are the changes needed to build STAF Perl support on Windows 64-bit using ActivePerl 5.20. Note that the same changes needed to build STAF for Perl 5.18 are also needed for Perl 5.20 as well as another change to Perl's lib\CORE\config.h file to comment out the definition of I_STDBOOL.
1) To fix various compile errors regarding the definition of the PERL_STATIC_INLINE variable, edit the lib\CORE\config.h file (after changing it's permissions so it isn't read only) and change the define line for PERL_STATIC_INLINE to use the value used when compiling using Microsoft Visual Studio (MSVC) instead of setting it to the value used when compiling using "gcc -ansi":
Change:
#define PERL_STATIC_INLINE static __inline__ /**/
to:
#define PERL_STATIC_INLINE static __inline /**/
2) To fix the following error compiling STAFPerlGlue.obj trying to open file stdbool.h:
c:\perl64-5.20\lib\core\handy.h(77) : fatal error C1083: Cannot open include file: 'stdbool.h': No such file or directory
Edit the lib\CORE\config.h file and comment out the definition of I_STDBOOL by changing line:
#define I_STDBOOL /**/
to:
/*#defineI_STDBOOL/**/
3) To resolve the STAF Perl link error, copy file lib\CORE\libperl520.a to lib\CORE\perl520.lib.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
STAF Support for ActivePerl 5.18 and 5.20 on winamd64
Even though I was able to build STAF Perl support on Windows 64-bit using ActivePerl 5.18 and 5.20 with the changes that I previously posted, when trying to test the STAF Perl support library built, I got an error popup "Perl Command Line Interpreter has stopped working" as follows:
Got error popup "Perl Command Line Interpreter has stopped working. Close the program."
STAF Support for ActivePerl 5.18 on win32
Downloaded ActivePerl-5.18.4-1804-MSWin32-x86-64int-298913.msi from the ActivePerl web site and installed it on the STAF win32 build machine.
The same changes that were needed to build ActivePerl 5.18 on winamd64 were also needed to build ActivePerl 5.18 on win32:
1) Edit the C:\ActivePerl-5.18\lib\CORE\config.h file (after changing it's permissions so it isn't read only) and change the define line for PERL_STATIC_INLINE to use the value used when compiling using Microsoft Visual Studio (MSVC) instead of setting it to the value used when compiling using "gcc -ansi":
However, still could not build STAF support for Perl 5.18 on the STAF win32 build machine. I think that the ActivePerl file for win32 that I downloaded from the ActivePerl web site may be for running a 32-bit Perl 5.18 version on a Windows 64-bit machine, not for running a 32-bit Perl version on a Windows 32-bit machine as I needed. Here are the compile errors:
Failedwin32(RC=2):[win32]Buildfailedforprojectperlonbuildmachinestaf3f.austin.ibm.com.RC=2,Result=NoneBuildStdout/Stderr:...***CompilingSTAFPerlService.obj***STAFPerlService.cpp***CompilingSTAFPerlGlue.obj***STAFPerlGlue.cppC:\ActivePerl-5.18\lib\CORE\perl.h(1740):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\perl.h(1741):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\perlio.h(292):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\perlio.h(295):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\win32iop.h(61):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\win32iop.h(62):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\win32iop.h(77):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\win32iop.h(78):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\win32iop.h(78):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\win32iop.h(79):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(195):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(195):errorC2059:syntaxerror:'bad suffix on number'C:\ActivePerl-5.18\lib\CORE\hv_func.h(195):warningC4305:'initializing':truncationfrom'const unsigned __int64'to'unsigned long'C:\ActivePerl-5.18\lib\CORE\hv_func.h(195):warningC4309:'initializing':truncationofconstantvalueC:\ActivePerl-5.18\lib\CORE\hv_func.h(195):errorC2146:syntaxerror:missing';'beforeidentifier'L'C:\ActivePerl-5.18\lib\CORE\hv_func.h(195):errorC2065:'L':undeclaredidentifierC:\ActivePerl-5.18\lib\CORE\hv_func.h(196):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(196):errorC2059:syntaxerror:'bad suffix on number'C:\ActivePerl-5.18\lib\CORE\hv_func.h(196):warningC4305:'initializing':truncationfrom'const unsigned __int64'to'unsigned long'C:\ActivePerl-5.18\lib\CORE\hv_func.h(196):warningC4309:'initializing':truncationofconstantvalueC:\ActivePerl-5.18\lib\CORE\hv_func.h(196):errorC2146:syntaxerror:missing';'beforeidentifier'L'C:\ActivePerl-5.18\lib\CORE\hv_func.h(197):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(197):errorC2059:syntaxerror:'bad suffix on number'C:\ActivePerl-5.18\lib\CORE\hv_func.h(197):warningC4305:'initializing':truncationfrom'const unsigned __int64'to'unsigned long'C:\ActivePerl-5.18\lib\CORE\hv_func.h(197):warningC4309:'initializing':truncationofconstantvalueC:\ActivePerl-5.18\lib\CORE\hv_func.h(197):errorC2146:syntaxerror:missing';'beforeidentifier'L'C:\ActivePerl-5.18\lib\CORE\hv_func.h(198):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(198):errorC2059:syntaxerror:'bad suffix on number'C:\ActivePerl-5.18\lib\CORE\hv_func.h(198):warningC4305:'initializing':truncationfrom'const unsigned __int64'to'unsigned long'C:\ActivePerl-5.18\lib\CORE\hv_func.h(198):warningC4309:'initializing':truncationofconstantvalueC:\ActivePerl-5.18\lib\CORE\hv_func.h(198):errorC2146:syntaxerror:missing';'beforeidentifier'L'C:\ActivePerl-5.18\lib\CORE\hv_func.h(200):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(201):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(201):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(202):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(202):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(203):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(207):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(215):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(215):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(215):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(215):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(215):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(215):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(215):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(215):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(217):errorC2065:'_rotl64':undeclaredidentifierC:\ActivePerl-5.18\lib\CORE\hv_func.h(224):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(225):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(226):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(227):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(228):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(229):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\hv_func.h(230):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\proto.h(937):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\proto.h(949):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\proto.h(949):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\proto.h(954):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\proto.h(7885):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\proto.h(7898):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\inline.h(147):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\inline.h(147):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\inline.h(147):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\inline.h(155):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\inline.h(155):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.18\lib\CORE\inline.h(155):errorC2632:'long'followedby'long'isillegalmake:***[/cygdrive/c/dev/autobuild/build/obj/win32/staf/retail/lang/perl/perl518/STAFPerlGlue.obj]Error2
STAF Support for ActivePerl 5.20 on win32
Downloaded ActivePerl-5.20.2.2001-MSWin32-x86-64int-298913.msi from the ActivePerl web site and installed it on the STAF win32 build machine to C:\ActivePerl-5.20.
The same changes that were needed to build ActivePerl 5.20 on winamd64 were also needed to build ActivePerl 5.20 on win32:
1) Edit the C:\ActivePerl-5.20\lib\CORE\config.h file (after changing it's permissions so it isn't read only) and change the define line for PERL_STATIC_INLINE to use the value used when compiling using Microsoft Visual Studio (MSVC) instead of setting it to the value used when compiling using "gcc -ansi":
3) Edit the C:\ActivePerl-5.20\lib\CORE\config.h file and comment out the definition of I_STDBOOL:
/*#defineI_STDBOOL/**/
However, still could not build STAF support for Perl 5.20 on the STAF win32 build machine. I think that the ActivePerl file for win32 that I downloaded from the ActivePerl web site may be for running a 32-bit Perl 5.20 version on a Windows 64-bit machine, not for running a 32-bit Perl version on a Windows 32-bit machine as I needed. Here are the compile errors:
Failedwin32(RC=2):[win32]Buildfailedforprojectperlonbuildmachinestaf3f.austin.ibm.com.RC=2,Result=NoneBuildStdout/Stderr:...***CompilingSTAFPerlGlue.obj***STAFPerlGlue.cppC:\ActivePerl-5.20\lib\CORE\perl.h(1587):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\perl.h(1588):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\perlio.h(277):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\perlio.h(280):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\win32iop.h(61):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\win32iop.h(62):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\win32iop.h(77):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\win32iop.h(78):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\win32iop.h(78):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\win32iop.h(79):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(195):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(195):errorC2059:syntaxerror:'bad suffix on number'C:\ActivePerl-5.20\lib\CORE\hv_func.h(195):warningC4305:'initializing':truncationfrom'const unsigned __int64'to'unsigned long'C:\ActivePerl-5.20\lib\CORE\hv_func.h(195):warningC4309:'initializing':truncationofconstantvalueC:\ActivePerl-5.20\lib\CORE\hv_func.h(195):errorC2146:syntaxerror:missing';'beforeidentifier'L'C:\ActivePerl-5.20\lib\CORE\hv_func.h(195):errorC2065:'L':undeclaredidentifierC:\ActivePerl-5.20\lib\CORE\hv_func.h(196):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(196):errorC2059:syntaxerror:'bad suffix on number'C:\ActivePerl-5.20\lib\CORE\hv_func.h(196):warningC4305:'initializing':truncationfrom'const unsigned __int64'to'unsigned long'C:\ActivePerl-5.20\lib\CORE\hv_func.h(196):warningC4309:'initializing':truncationofconstantvalueC:\ActivePerl-5.20\lib\CORE\hv_func.h(196):errorC2146:syntaxerror:missing';'beforeidentifier'L'C:\ActivePerl-5.20\lib\CORE\hv_func.h(197):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(197):errorC2059:syntaxerror:'bad suffix on number'C:\ActivePerl-5.20\lib\CORE\hv_func.h(197):warningC4305:'initializing':truncationfrom'const unsigned __int64'to'unsigned long'C:\ActivePerl-5.20\lib\CORE\hv_func.h(197):warningC4309:'initializing':truncationofconstantvalueC:\ActivePerl-5.20\lib\CORE\hv_func.h(197):errorC2146:syntaxerror:missing';'beforeidentifier'L'C:\ActivePerl-5.20\lib\CORE\hv_func.h(198):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(198):errorC2059:syntaxerror:'bad suffix on number'C:\ActivePerl-5.20\lib\CORE\hv_func.h(198):warningC4305:'initializing':truncationfrom'const unsigned __int64'to'unsigned long'C:\ActivePerl-5.20\lib\CORE\hv_func.h(198):warningC4309:'initializing':truncationofconstantvalueC:\ActivePerl-5.20\lib\CORE\hv_func.h(198):errorC2146:syntaxerror:missing';'beforeidentifier'L'C:\ActivePerl-5.20\lib\CORE\hv_func.h(200):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(201):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(201):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(202):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(202):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(203):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(207):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(215):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(215):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(215):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(215):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(215):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(215):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(215):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(215):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(217):errorC2065:'_rotl64':undeclaredidentifierC:\ActivePerl-5.20\lib\CORE\hv_func.h(224):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(225):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(226):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(227):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(228):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(229):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\hv_func.h(230):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\proto.h(976):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\proto.h(988):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\proto.h(988):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\proto.h(993):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\proto.h(8069):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\proto.h(8082):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\inline.h(277):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\inline.h(277):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\inline.h(277):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\inline.h(285):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\inline.h(285):errorC2632:'long'followedby'long'isillegalC:\ActivePerl-5.20\lib\CORE\inline.h(285):errorC2632:'long'followedby'long'isillegalmake:***[/cygdrive/c/dev/autobuild/build/obj/win32/staf/retail/lang/perl/perl520/STAFPerlGlue.obj]Error2
STAF Support for ActivePerl 5.18 on linux 32-bit
The STAF build machine for Linux 32-bit is currently broken. I need to replace it before I can try to build STAF Perl support for ActivePerl 5.18 on Linux.
STAF Support for ActivePerl 5.20 on linux 32-bit
The ActivePerl web site does not currently provide a file to download for ActivePerl 5.20 for Linux 32-bit.
STAF Support for ActivePerl 5.18 on linux-amd64
I was able to successfully build and test STAF Perl support on Linux 64bit (AMD64) using ActivePerl 5.18 so I plan to add support for Perl 5.18 for linux-amd64 in the next STAF release (planned for the end of June 2015). I ran TestPerl.pl and it ran successfully.
I checked in the code changes I made to provide Perl support on linux-amd64 for Perl 5.18 and I will attach a file containing those changes.
STAF Support for ActivePerl 5.20 on linux-amd64
I was unable to install ActivePerl 5.20 on my Linux AMD64 STAF build machine due to the install of ActivePerl 5.20 failing because my STAF linux-amd64 build machine does not have the GLIBC version required for the ActivePerl 5.20 install to work:
# tar xfz ActivePerl-5.20.2.2001-x86_64-linux-glibc-2.15-298913.tar.gz
# cd ActivePerl-5.20.2.2001-x86_64-linux-glibc-2.15-298913
# ls
ACTIVEPERL.txt install.sh perl RELEASE.txt
CHANGES.txt LICENSE.txt README.txt support
# sh install.sh
perl/bin/perl: /lib64/libc.so.6: version `GLIBC_2.11' not found (required by perl/bin/perl)perl/bin/perl: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by perl/bin/perl)
#
Note, since Perl 6 isn't available on ActivePerl yet as its planned final release date isn't until around the end of December 2015, this will need to be looked at in a different feature request.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Added support for Perl 5.16 and 5.18 for STAF on Mac OS X as Mac OS X 10.10 comes with Perl 5.16 and 5.18 (and removed support for Perl 5.8 and 5.10 on Mac OS X since the new STAF Mac OS X 10.10 build system does not have the older Perl versions on it). The STAF Perl updates for Mac OS X will be part of STAF V3.4.23 planned for release at the end of September 2015.
I attached a file containing a cvs diff of the Perl changes for Mac OS X.
I started looking at providing support for newer version of Perl. Note that Perl 5.16 is no longer available to download free on the ActivePerl web site at http://aspn.activestate.com/ASPN/Downloads/ActivePerl/ so I probably won't be able to provide STAF Perl 5.16 support.
I tried to build STAF Perl support for Windows 64-bit using ActivePerl 5.18. Here are some notes on problems I encountered and workarounds.
Building STAF Perl Support on Windows 64-bit using ActivePerl 5.18:
I downloaded ActivePerl-5.18.4.1804-MSWin32-x64-298913.msi from the ActivePerl web site at http://aspn.activestate.com/ASPN/Downloads/ActivePerl/ and installed it on a Windows 7 64-bit system to directory C:\Perl64-5.18. Then I tarred up this directory to my STAF win32 build machine (where I build winamd64).
Starting with Perl 5.18, ActivePerl is built with MinGW on Windows, not Visual Studio, so there are some changes that need to be made to ActivePerl 5.18 for Windows in order to use it to build STAF Perl 5.18 support.
1) To fix various compile errors regarding the definition of the PERL_STATIC_INLINE variable, edit the lib\CORE\config.h file (after changing it's permissions so it isn't read only) and change the define line for PERL_STATIC_INLINE to use the value used when compiling using Microsoft Visual Studio (MSVC) instead of setting it to the value used when compiling using "gcc -ansi":
Change:
to:
Here's how it was defined in the config.h file in ActivePerl 5.14 which worked:
2) Another change is needed to fix the following link error which now occurs because there is no longer a file named perl518.lib in the lib\CORE folder or anywhere else:
STAF needs the perl518.lib file to link to Perl. Since ActivePerl 5.18 and newer is being built with MinGW, not Visual Studio, this library file is now named libperl518.a as it is using the standard GNU extension. To resolve the STAF Perl link error, copy file lib\CORE\libperl518.a to lib\CORE\perl518.lib.
These were the changes I made to successfully build STAF Perl support using ActivePerl 5.18 on Windows 64-bit.
Building STAF Perl Support on Windows 64-bit using ActivePerl 5.20:
I downloaded ActivePerl-5.20.2.2001-MSWin32-x64-298913.msi from the ActivePerl web site at http://aspn.activestate.com/ASPN/Downloads/ActivePerl/ and installed it on a Windows 7 64-bit system to directory C:\Perl64-5.20. Then I tarred up this directory to put it on my STAF win32 build machine (where I build winamd64).
Here are the changes needed to build STAF Perl support on Windows 64-bit using ActivePerl 5.20. Note that the same changes needed to build STAF for Perl 5.18 are also needed for Perl 5.20 as well as another change to Perl's lib\CORE\config.h file to comment out the definition of I_STDBOOL.
1) To fix various compile errors regarding the definition of the PERL_STATIC_INLINE variable, edit the lib\CORE\config.h file (after changing it's permissions so it isn't read only) and change the define line for PERL_STATIC_INLINE to use the value used when compiling using Microsoft Visual Studio (MSVC) instead of setting it to the value used when compiling using "gcc -ansi":
Change:
to:
2) To fix the following error compiling STAFPerlGlue.obj trying to open file stdbool.h:
c:\perl64-5.20\lib\core\handy.h(77) : fatal error C1083: Cannot open include file: 'stdbool.h': No such file or directory
Edit the lib\CORE\config.h file and comment out the definition of I_STDBOOL by changing line:
to:
3) To resolve the STAF Perl link error, copy file lib\CORE\libperl520.a to lib\CORE\perl520.lib.
STAF Support for ActivePerl 5.18 and 5.20 on winamd64
Even though I was able to build STAF Perl support on Windows 64-bit using ActivePerl 5.18 and 5.20 with the changes that I previously posted, when trying to test the STAF Perl support library built, I got an error popup "Perl Command Line Interpreter has stopped working" as follows:
Got error popup "Perl Command Line Interpreter has stopped working. Close the program."
And the same error when using Perl 5.20:
Got error popup "Perl Command Line Interpreter has stopped working. Close the program."
STAF Support for ActivePerl 5.18 on win32
Downloaded ActivePerl-5.18.4-1804-MSWin32-x86-64int-298913.msi from the ActivePerl web site and installed it on the STAF win32 build machine.
The same changes that were needed to build ActivePerl 5.18 on winamd64 were also needed to build ActivePerl 5.18 on win32:
1) Edit the C:\ActivePerl-5.18\lib\CORE\config.h file (after changing it's permissions so it isn't read only) and change the define line for PERL_STATIC_INLINE to use the value used when compiling using Microsoft Visual Studio (MSVC) instead of setting it to the value used when compiling using "gcc -ansi":
2) To resolve the STAF Perl link error:
However, still could not build STAF support for Perl 5.18 on the STAF win32 build machine. I think that the ActivePerl file for win32 that I downloaded from the ActivePerl web site may be for running a 32-bit Perl 5.18 version on a Windows 64-bit machine, not for running a 32-bit Perl version on a Windows 32-bit machine as I needed. Here are the compile errors:
STAF Support for ActivePerl 5.20 on win32
Downloaded ActivePerl-5.20.2.2001-MSWin32-x86-64int-298913.msi from the ActivePerl web site and installed it on the STAF win32 build machine to C:\ActivePerl-5.20.
The same changes that were needed to build ActivePerl 5.20 on winamd64 were also needed to build ActivePerl 5.20 on win32:
1) Edit the C:\ActivePerl-5.20\lib\CORE\config.h file (after changing it's permissions so it isn't read only) and change the define line for PERL_STATIC_INLINE to use the value used when compiling using Microsoft Visual Studio (MSVC) instead of setting it to the value used when compiling using "gcc -ansi":
2) To resolve the STAF Perl link error:
3) Edit the C:\ActivePerl-5.20\lib\CORE\config.h file and comment out the definition of I_STDBOOL:
However, still could not build STAF support for Perl 5.20 on the STAF win32 build machine. I think that the ActivePerl file for win32 that I downloaded from the ActivePerl web site may be for running a 32-bit Perl 5.20 version on a Windows 64-bit machine, not for running a 32-bit Perl version on a Windows 32-bit machine as I needed. Here are the compile errors:
STAF Support for ActivePerl 5.18 on linux 32-bit
The STAF build machine for Linux 32-bit is currently broken. I need to replace it before I can try to build STAF Perl support for ActivePerl 5.18 on Linux.
STAF Support for ActivePerl 5.20 on linux 32-bit
The ActivePerl web site does not currently provide a file to download for ActivePerl 5.20 for Linux 32-bit.
STAF Support for ActivePerl 5.18 on linux-amd64
I was able to successfully build and test STAF Perl support on Linux 64bit (AMD64) using ActivePerl 5.18 so I plan to add support for Perl 5.18 for linux-amd64 in the next STAF release (planned for the end of June 2015). I ran TestPerl.pl and it ran successfully.
I checked in the code changes I made to provide Perl support on linux-amd64 for Perl 5.18 and I will attach a file containing those changes.
STAF Support for ActivePerl 5.20 on linux-amd64
I was unable to install ActivePerl 5.20 on my Linux AMD64 STAF build machine due to the install of ActivePerl 5.20 failing because my STAF linux-amd64 build machine does not have the GLIBC version required for the ActivePerl 5.20 install to work:
Last edit: Sharon Lucas 2015-05-07
Note, since Perl 6 isn't available on ActivePerl yet as its planned final release date isn't until around the end of December 2015, this will need to be looked at in a different feature request.
Attached a diff of the changes to build STAF Perl 5.18 support on linux-amd64.
Added support for Perl 5.16 and 5.18 for STAF on Mac OS X as Mac OS X 10.10 comes with Perl 5.16 and 5.18 (and removed support for Perl 5.8 and 5.10 on Mac OS X since the new STAF Mac OS X 10.10 build system does not have the older Perl versions on it). The STAF Perl updates for Mac OS X will be part of STAF V3.4.23 planned for release at the end of September 2015.
I attached a file containing a cvs diff of the Perl changes for Mac OS X.