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

Reply via email to