Closed timlegge closed 1 year ago
Older strawberry perl seem to be failing with:
Output from 'C:\Strawberry\c\bin\dmake.exe': cp lib/Crypt/OpenSSL/AES.pm blib\lib\Crypt\OpenSSL\AES.pm Running Mkbootstrap for AES () C:\"Strawberry\perl\bin\perl.exe" -MExtUtils::Command -e chmod -- 644 "AES.bs" C:\"Strawberry\perl\bin\perl.exe" -MExtUtils::Command::MM -e cp_nonempty -- AES.bs blib\arch\auto\Crypt\OpenSSL\AES\AES.bs 644 C:\"Strawberry\perl\bin\perl.exe" "C:\home\heaven\perl5\lib\perl5\ExtUtils\xsubpp" -typemap C:\Strawberry\perl\lib\ExtUtils\typemap -typemap C:\Strawberry\cpan\build\Crypt-OpenSSL-AES-0.11-0\typemap AES.xs > AES.xsc C:\"Strawberry\perl\bin\perl.exe" -MExtUtils::Command -e mv -- AES.xsc AES.c gcc -c -IC:\Strawberry\perl\..\c/include -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields -Wall -DVERSION=\"0.11\" -DXS_VERSION=\"0.11\" "-IC:\Strawberry\perl\lib\CORE" AES.c In file included from C:\Strawberry\perl\lib\CORE/sys/socket.h:79:0, from C:\Strawberry\perl\lib\CORE/win32.h:388, from C:\Strawberry\perl\lib\CORE/win32thread.h:4, from C:\Strawberry\perl\lib\CORE/perl.h:2852, from AES.xs:3: C:\Strawberry\perl\lib\CORE/win32.h:393:26: warning: "/*" within comment [-Wcomment] C:\Strawberry\perl\lib\CORE/win32.h:394:33: warning: "/*" within comment [-Wcomment] In file included from C:\Strawberry\perl\lib\CORE/win32thread.h:4:0, from C:\Strawberry\perl\lib\CORE/perl.h:2852, from AES.xs:3: C:\Strawberry\perl\lib\CORE/win32.h:393:26: warning: "/*" within comment [-Wcomment] C:\Strawberry\perl\lib\CORE/win32.h:394:33: warning: "/*" within comment [-Wcomment] AES.xs: In function 'XS_Crypt__OpenSSL__AES_new': AES.xs:149:14: warning: unused variable 'self' [-Wunused-variable] AES.c:291:7: warning: unused variable 'class' [-Wunused-variable] AES.c:287:5: warning: unused variable 'Perl___notused' [-Wunused-variable] AES.c: In function 'XS_Crypt__OpenSSL__AES_encrypt': AES.c:372:5: warning: unused variable 'Perl___notused' [-Wunused-variable] AES.c: In function 'XS_Crypt__OpenSSL__AES_decrypt': AES.c:446:5: warning: unused variable 'Perl___notused' [-Wunused-variable] AES.c: In function 'XS_Crypt__OpenSSL__AES_DESTROY': AES.c:518:5: warning: unused variable 'Perl___notused' [-Wunused-variable] AES.c: In function 'boot_Crypt__OpenSSL__AES': AES.c:551:5: warning: unused variable 'Perl___notused' [-Wunused-variable] C:\"Strawberry\perl\bin\perl.exe" -MExtUtils::Mksymlists \ -e "Mksymlists('NAME'=>\"Crypt::OpenSSL::AES\", 'DLBASE' => 'AES', 'DL_FUNCS' => { }, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);" g++ AES.def -o blib\arch\auto\Crypt\OpenSSL\AES\AES.dll -mdll -s -L"C:\Strawberry\perl\lib\CORE" -L"C:\Strawberry\c\lib" AES.o "C:\Strawberry\perl\lib\CORE\libperl514.a" "C:\Strawberry\c\i686-w64-mingw32\lib\libmoldname.a" "C:\Strawberry\c\i686-w64-mingw32\lib\libkernel32.a" "C:\Strawberry\c\i686-w64-mingw32\lib\libuser32.a" "C:\Strawberry\c\i686-w64-mingw32\lib\libgdi32.a" "C:\Strawberry\c\i686-w64-mingw32\lib\libwinspool.a" "C:\Strawberry\c\i686-w64-mingw32\lib\libcomdlg32.a" "C:\Strawberry\c\i686-w64-mingw32\lib\libadvapi32.a" "C:\Strawberry\c\i686-w64-mingw32\lib\libshell32.a" "C:\Strawberry\c\i686-w64-mingw32\lib\libole32.a" "C:\Strawberry\c\i686-w64-mingw32\lib\liboleaut32.a" "C:\Strawberry\c\i686-w64-mingw32\lib\libnetapi32.a" "C:\Strawberry\c\i686-w64-mingw32\lib\libuuid.a" "C:\Strawberry\c\i686-w64-mingw32\lib\libws2_32.a" "C:\Strawberry\c\i686-w64-mingw32\lib\libmpr.a" "C:\Strawberry\c\i686-w64-mingw32\lib\libwinmm.a" "C:\Strawberry\c\i686-w64-mingw32\lib\libversion.a" "C:\Strawberry\c\i686-w64-mingw32\lib\libodbc32.a" "C:\Strawberry\c\i686-w64-mingw32\lib\libodbccp32.a" "C:\Strawberry\c\i686-w64-mingw32\lib\libcomctl32.a" -Wl,--enable-auto-image-base AES.o:AES.c:(.text+0x54): undefined reference to `EVP_CIPHER_CTX_free' AES.o:AES.c:(.text+0x5f): undefined reference to `EVP_CIPHER_CTX_free' AES.o:AES.c:(.text+0x1d1): undefined reference to `EVP_CIPHER_CTX_set_padding' AES.o:AES.c:(.text+0x1fc): undefined reference to `EVP_DecryptUpdate' AES.o:AES.c:(.text+0x227): undefined reference to `EVP_DecryptFinal_ex' AES.o:AES.c:(.text+0x484): undefined reference to `EVP_CIPHER_CTX_set_padding' AES.o:AES.c:(.text+0x4af): undefined reference to `EVP_EncryptUpdate' AES.o:AES.c:(.text+0x4da): undefined reference to `EVP_EncryptFinal_ex' AES.o:AES.c:(.text+0xc54): undefined reference to `EVP_CIPHER_CTX_new' AES.o:AES.c:(.text+0xc64): undefined reference to `EVP_CIPHER_CTX_new' AES.o:AES.c:(.text+0xc9a): undefined reference to `EVP_EncryptInit_ex' AES.o:AES.c:(.text+0xcce): undefined reference to `EVP_DecryptInit_ex' AES.o:AES.c:(.text+0x967): undefined reference to `EVP_aes_256_ofb' AES.o:AES.c:(.text+0x976): undefined reference to `EVP_aes_256_ecb' AES.o:AES.c:(.text+0x986): undefined reference to `EVP_aes_128_ecb' AES.o:AES.c:(.text+0x996): undefined reference to `EVP_aes_192_ecb' AES.o:AES.c:(.text+0x9a6): undefined reference to `EVP_aes_128_cbc' AES.o:AES.c:(.text+0x9b6): undefined reference to `EVP_aes_192_cbc' AES.o:AES.c:(.text+0x9c6): undefined reference to `EVP_aes_256_cbc' AES.o:AES.c:(.text+0x9d6): undefined reference to `EVP_aes_128_cfb128' AES.o:AES.c:(.text+0x9e6): undefined reference to `EVP_aes_128_ofb' AES.o:AES.c:(.text+0x9f6): undefined reference to `EVP_aes_192_cfb128' AES.o:AES.c:(.text+0xa06): undefined reference to `EVP_aes_256_cfb128' AES.o:AES.c:(.text+0xa16): undefined reference to `EVP_aes_128_ctr' AES.o:AES.c:(.text+0xa26): undefined reference to `EVP_aes_192_ctr' AES.o:AES.c:(.text+0xa36): undefined reference to `EVP_aes_256_ctr' AES.o:AES.c:(.text+0xa40): undefined reference to `EVP_aes_192_ofb' collect2: ld returned 1 exit status dmake.exe: Error code 129, while making 'blib\arch\auto\Crypt\OpenSSL\AES\AES.dll'
The issue is that the Makefile.PL is looking for libssl or libcrypto. In those old perls it should link libeay32
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod -- 644 AES.bs C:\strawberry\perl\bin\perl.exe -MExtUtils::Mksymlists \ -e "Mksymlists('NAME'=>\"Crypt::OpenSSL::AES\", 'DLBASE' => 'AES', 'DL_FUNCS' => { }, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);" dlltool --def AES.def --output-exp dll.exp g++ -o blib\arch\auto\Crypt\OpenSSL\AES\AES.dll -Wl,--base-file -Wl,dll.base -mdll -s -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib" AES.o C:\strawberry\perl\lib\CORE\libperl516.a C:\strawberry\perl\..\c\lib\libeay32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libmoldname.a C:\strawberry\c\x86_64-w64-mingw32\lib\libkernel32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libuser32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libgdi32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libwinspool.a C:\strawberry\c\x86_64-w64-mingw32\lib\libcomdlg32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libadvapi32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libshell32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libole32.a C:\strawberry\c\x86_64-w64-mingw32\lib\liboleaut32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libnetapi32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libuuid.a C:\strawberry\c\x86_64-w64-mingw32\lib\libws2_32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libmpr.a C:\strawberry\c\x86_64-w64-mingw32\lib\libwinmm.a C:\strawberry\c\x86_64-w64-mingw32\lib\libversion.a C:\strawberry\c\x86_64-w64-mingw32\lib\libodbc32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libodbccp32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libcomctl32.a dll.exp dlltool --def AES.def --base-file dll.base --output-exp dll.exp g++ -o blib\arch\auto\Crypt\OpenSSL\AES\AES.dll -mdll -s -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib" AES.o C:\strawberry\perl\lib\CORE\libperl516.a C:\strawberry\perl\..\c\lib\libeay32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libmoldname.a C:\strawberry\c\x86_64-w64-mingw32\lib\libkernel32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libuser32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libgdi32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libwinspool.a C:\strawberry\c\x86_64-w64-mingw32\lib\libcomdlg32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libadvapi32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libshell32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libole32.a C:\strawberry\c\x86_64-w64-mingw32\lib\liboleaut32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libnetapi32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libuuid.a C:\strawberry\c\x86_64-w64-mingw32\lib\libws2_32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libmpr.a C:\strawberry\c\x86_64-w64-mingw32\lib\libwinmm.a C:\strawberry\c\x86_64-w64-mingw32\lib\libversion.a C:\strawberry\c\x86_64-w64-mingw32\lib\libodbc32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libodbccp32.a C:\strawberry\c\x86_64-w64-mingw32\lib\libcomctl32.a dll.exp C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod -- 755 blib\arch\auto\Crypt\OpenSSL\AES\AES.dll C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e cp -- AES.bs blib\arch\auto\Crypt\OpenSSL\AES\AES.bs C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod -- 644 blib\arch\auto\Crypt\OpenSSL\AES\AES.bs
LIBS => ['-leay32 -lssl32 ']
Fixed in recent builds
Older strawberry perl seem to be failing with:
The issue is that the Makefile.PL is looking for libssl or libcrypto. In those old perls it should link libeay32