develooper Front page | perl.par | Postings from March 2012

PAR::Packer - problem installing under Windows / Strawberry portable

Thread Next
From:
Eljot na Onet.pl
Date:
March 1, 2012 01:31
Subject:
PAR::Packer - problem installing under Windows / Strawberry portable
Message ID:
4F4F4130.30602@poczta.onet.pl
Hi everybory,


Endvironment:
OS: Win7 Pro 64-bit (irrelevant I presume, just in case)
Perl: Strawberry portable 5.14.2.1 64-bit
[ http://strawberryperl.com/releases.html ]

I have:
1. Unpacked zip file into, saying, C:\myperl
2. Set env vars due to README.portable.txt
3. Started to install my favourite modules:

cpan> install PAR
Fetching with LWP:
http://cpan.strawberryperl.com/authors/01mailrc.txt.gz
[...]
Appending installation info to [...]
   RSCHUPP/PAR-1.005.tar.gz
   D:\ex\perl\portable\5.14.2.1-64\c\bin\dmake.exe install UNINST=1 -- OK
cpan>

================================
so far so good...
================================

cpan> install PAR:Packer
Running install for module 'PAR::Packer'
Running make for R/RS/RSCHUPP/PAR-Packer-1.013.tar.gz
Fetching with LWP:
http://cpan.strawberryperl.com/authors/id/R/RS/RSCHUPP/PAR-Packer-1.013.tar.gz
[...]
Warning: prerequisite Getopt::ArgvFile 1.07 not found.
Warning: prerequisite Module::ScanDeps 1.05 not found.
[... required modules installed successfully ...]
   CPAN.pm: Building R/RS/RSCHUPP/PAR-Packer-1.013.tar.gz

cp lib/App/Packer/PAR.pm blib\lib\App\Packer\PAR.pm
[... some more cps' here ...]
cp lib/PAR/Filter/Bleach.pm blib\lib\PAR\Filter\Bleach.pm

C:\myperl\perl\bin\perl.exe file2c.pl -s ..\script\par.pl my_par_pl.c
load_my_par_pl
C:\myperl\perl\bin\perl.exe sha1.c.PL
gcc -c -s -O2 -DWIN32 -DWIN64 -DCONSERVATIVE
-DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE
-DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS
-fno-strict-aliasing -mms-bitfields
-I"C:\myperl\perl\lib\CORE"
-DLOAD_MY_LIBGCC -DPARL_EXE=\"parl.exe\" -s -O2 main.c
windres -F pei-i386 -i winres\pp.rc -o winres\pp.res
windres -o ppresource.coff winres\pp.res
g++.exe main.o ppresource.coff -s   -s
-L"C:\myperl\perl\lib\CORE" -L"C:\myperl\c\lib"
C:\myperl\perl\lib\CORE\libperl514.a
C:\myperl\c\x86_64-w64-mingw32\lib\libmoldname.a
C:\myperl\c\x86_64-w64-mingw32\lib\libkernel32.a
C:\myperl\c\x86_64-w64-mingw32\lib\libuser32.a
C:\myperl\c\x86_64-w64-mingw32\lib\libgdi32.a
C:\myperl\c\x86_64-w64-mingw32\lib\libwinspool.a
C:\myperl\c\x86_64-w64-mingw32\lib\libcomdlg32.a
C:\myperl\c\x86_64-w64-mingw32\lib\libadvapi32.a
C:\myperl\c\x86_64-w64-mingw32\lib\libshell32.a
C:\myperl\c\x86_64-w64-mingw32\lib\libole32.a
C:\myperl\c\x86_64-w64-mingw32\lib\liboleaut32.a
C:\myperl\c\x86_64-w64-mingw32\lib\libnetapi32.a
C:\myperl\c\x86_64-w64-mingw32\lib\libuuid.a
C:\myperl\c\x86_64-w64-mingw32\lib\libws2_32.a
C:\myperl\c\x86_64-w64-mingw32\lib\libmpr.a
C:\myperl\c\x86_64-w64-mingw32\lib\libwinmm.a
C:\myperl\c\x86_64-w64-mingw32\lib\libversion.a
C:\myperl\c\x86_64-w64-mingw32\lib\libodbc32.a
C:\myperl\c\x86_64-w64-mingw32\lib\libodbccp32.a
C:\myperl\c\x86_64-w64-mingw32\lib\libcomctl32.a -o par.exe

main.o:main.c:(.text+0x2b4f): undefined reference to
`_imp__Perl_get_context'
main.o:main.c:(.text+0x2d12): undefined reference to `_imp__Perl_newSVpv'
main.o:main.c:(.text+0x31d1): undefined reference to `boot_DynaLoader'
main.o:main.c:(.text+0x31e2): undefined reference to `_imp__Perl_newXS'
main.o:main.c:(.text+0x31f6): undefined reference to `boot_Win32CORE'
main.o:main.c:(.text+0x3253): undefined reference to
`_imp__Perl_newXS_flags'
main.o:main.c:(.text+0x4471): undefined reference to `_imp__Perl_gv_fetchpv'
main.o:main.c:(.text+0x44e5): undefined reference to `_imp__Perl_av_fetch'
main.o:main.c:(.text+0x4510): undefined reference to
`_imp__Perl_sv_2pv_flags'
main.o:main.c:(.text+0x4567): undefined reference to `_imp__Perl_sv_setpv'
main.o:main.c:(.text+0x464a): undefined reference to `_imp__Perl_av_shift'
main.o:main.c:(.text+0x467b): undefined reference to `_imp__Perl_mg_set'
main.o:main.c:(.text+0x46e9): undefined reference to
`_imp__Perl_croak_nocontext'
main.o:main.c:(.text+0x477d): undefined reference to `_imp__Perl_dounwind'
main.o:main.c:(.text+0x4798): undefined reference to
`_imp__Perl_save_destructor_x'
main.o:main.c:(.text.startup+0x26): undefined reference to
`_imp__Perl_sys_init3'
main.o:main.c:(.text.startup+0x2b): undefined reference to
`_imp__PL_do_undump'
main.o:main.c:(.text.startup+0x87): undefined reference to
`_imp__Perl_safesysmalloc'
main.o:main.c:(.text.startup+0xfc): undefined reference to
`_imp__perl_parse'
main.o:main.c:(.text.startup+0x110): undefined reference to
`_imp__perl_destruct'
main.o:main.c:(.text.startup+0x12c): undefined reference to
`_imp__perl_free'
main.o:main.c:(.text.startup+0x132): undefined reference to
`_imp__Perl_sys_term'
main.o:main.c:(.text.startup+0x141): undefined reference to
`_imp__perl_alloc'
main.o:main.c:(.text.startup+0x153): undefined reference to
`_imp__perl_construct'
main.o:main.c:(.text.startup+0x175): undefined reference to `_imp__perl_run'
main.o:main.c:(.text.startup+0x1aa): undefined reference to
`_imp__PL_memory_wrap'
collect2: ld returned 1 exit status
dmake:  Error code 129, while making 'par.exe'
dmake.exe:  Error code 255, while making 'subdirs'
   RSCHUPP/PAR-Packer-1.013.tar.gz
   C:\myperl\c\bin\dmake.exe -- NOT OK
Running make test
   Can't test without successful make
Running make install
   Make had returned bad status, install seems impossible
Failed during this command:
  RSCHUPP/PAR-Packer-1.013.tar.gz              : make NO

cpan>

=================

(I have broken command line and deleted repetative lines above for 
better readability).

Oops... But OK, seems to me the linker couldn't find some symbols due to 
one or more library missing in command line. But which one? Because of 
lack of tool like Linux' 'nm' (*) I used Agent Ransack which found those 
symbols in libperl514.a only. But of course it couldn't say whether the 
library *defines* or *requires* those symbols. I do not know much about 
mangled external symbols in Windows lib's with dynamic linking used, but 
symbols '_imp__*' and other missing  are present in perl\bin\perl514.dll 
(and many others dll's but I guess it may be perl514.dll which provides 
those symbols).

*******************
So question is:
*******************

Which library supplies missing symbols listed above?
Is it perl514.dll?
If so, how to make linker to see the library?

or

Which (config?) file(s) I must modify to make the problem extinct
permanently?
Is it perl/lib/Config_heavy.pl?
Which line(s) must I edit?

(*) is any similar tool to nm which recognizes format of *.a files on
Wins (made by mingw I think)? Cygwin's nm (2.22) doesn't, Linux' nm
(2.17) either, as one may expect...

Any help will be appreciated.

-- 
Greetings
Jarek Lubczyński

There are 10 kinds of people:
Those who understand binary and those who don't

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About