Group
I have run time issues with exe files produced , using Par-Packer-1.013.
When the exe file is run
on machines which do not have C compilers installed on them, it throws an
error hinting libgcc_s_dw2-1.dll is not found.
The same happens on my
own laptop when I run the produced file after nullifying the path variable on
my machine.
It works without issues
if the DLL folder is on the path.
I googled the issue over
, and redeployed the module after copying the dll file to the \perl\bin\ folder
, and the issue remains.
I glanced through
patches applied over earlier releases of this module , and find PAR 1.013 as
all the patches/effective code , relevant to this applied .
I dont see any patches/suggestion relevant to this version that needs to be
applied.
I Am not sure whether I
am missing/overlooking something trivial here .
The
file libgcc_s_dw2-1.dll resides in folder c:\mingw\bin
I have used PAR and PP on windows
earlier, but have never experienced this issue.
I would appreciate any feedback ,
which addresses the situation .
Here is the output
of objdump on the executable
C:\temp\objdump -ax sample.exe |
find "DLL"
vma:
Hint Time Forward
DLL
DLL
Name: ADVAPI32.DLL
DLL
Name: KERNEL32.dll
DLL
Name: msvcrt.dll
DLL
Name: msvcrt.dll
DLL
Name: libgcc_s_dw2-1.dll
Here
are some details on the software on my machine
Module: Par-Packer-1.013
downloaded from CPAN.
Perl: Activestate Perl
5.12 running on windows ( microsoft professional , version 2002 , service pack
3 )
PPM version : 4.11 from
active state
Dmake Version: 4.11.20080107 ( loaded through ppm
install dmake )
PAR module 1.005 ( installed using ppm )
Ming C Compiler verion
4.5.2 installed separately , and is in folder c:\mingw
I had no issues with the
deployment , except for one prototype mismatch at makefile creation time,
listed below.
The dmake test and
dmake install ran without any hitch.
I have provided the
information displayed when perl –V and –v were run on the command prompt.
perl
makefile.pl
Set up gcc environment -
4.5.2
Checking if your kit is
complete...
Looks good
Prototype mismatch: sub
main::prompt: none vs ($;$) at c:/work/perl/lib/ExtUtils
/MakeMaker.pm line 202
Writing Makefile for
par.exe
Writing Makefile for
PAR::Packer
perl
-V
Set up gcc environment -
4.5.2
Summary of my perl5
(revision 5 version 12 subversion 3) configuration:
Platform:
osname=MSWin32, osvers=5.2, archname=MSWin32-x86-multi-thread
uname=''
config_args='undef'
hint=recommended, useposix=true, d_sigaction=undef
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=undef, use64bitall=undef, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='C:/MinGW/bin/gcc.exe', ccflags ='-DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT
-DHAVE_DES_FCRYPT
-DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_S
YS -DUSE_PERLIO
-D_USE_32BIT_TIME_T -DPERL_MSVCRT_READFIX -DHASATTRIBUTE -fno-st
rict-aliasing
-mms-bitfields',
optimize='-O2',
cppflags='-DWIN32'
ccversion='', gccversion='4.5.2', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=8
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='__int64', lseeksi
ze=8
alignbytes=8, prototype=define
Linker and
Libraries:
ld='C:\MinGW\bin\g++.exe', ldflags ='-L"C:\work\perl\lib\CORE"'
libpth=\lib
libs=-lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32
-lole32 -loleaut32
-lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -
lodbccp32 -lcomctl32
-lmsvcrt
perllibs=-lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshel
l32 -lole32 -loleaut32
-lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc
32 -lodbccp32 -lcomctl32
-lmsvcrt
libc=msvcrt.lib, so=dll, useshrplib=true, libperl=perl512.lib
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
cccdlflags=' ', lddlflags='-mdll -L"C:\work\perl\lib\CORE"'
Characteristics of this
binary (from libperl):
Compile-time
options: MULTIPLICITY PERL_DONT_CREATE_GVSV
PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS
PERL_MALLOC_WRAP PL_OP_SLAB_ALLOC USE_ITHREADS
USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF
USE_SITECUSTOMIZE
Locally applied
patches:
ActivePerl Build 1204 [294330]
c6fbf28 [perl #71806] perldb does not setup %dbline with the shebang opt
ion -d
1fd8fa4 Add Wolfram Humann to AUTHORS
f120055 make string-append on win32 100 times faster
a2a8d15 Define _USE_32BIT_TIME_T for VC6 and VC7
007cfe1 Don't pretend to support really old VC++ compilers
6d8f7c9 Get rid of obsolete PerlCRT.dll support
d956618 Make Term::ReadLine::findConsole fall back to STDIN if /dev/tty
can't be opened
321e50c Escape patch strings before embedding them in patchlevel.h
Built under
MSWin32
Compiled at
Feb 9 2011 14:38:22
@INC:
c:/work/perl/site/lib
c:/work/perl/lib
.
C:\work\perl\PAR-Packer-1.013>perl
-v
This is perl 5, version
12, subversion 3 (v5.12.3) built for MSWin32-x86-multi-t
hread
(with 9 registered
patches, see perl -V for more detail)
Copyright 1987-2010,
Larry Wall
Binary build 1204
[294330] provided by ActiveState http://www.ActiveState.com
Built Feb 9 2011
14:38:22
Perl may be copied only
under the terms of either the Artistic License or the
GNU General Public
License, which may be found in the Perl 5 source kit.
Complete documentation
for Perl, including FAQ lists, should be found on
this system using
"man perl" or "perldoc perl". If you have access to
the
Internet, point your
browser at http://www.perl.org/, the Perl Home Page.
C.Kannan