On Thu, Mar 8, 2012 at 21:30, chandrashekaran kannan
<chandrashekaran_kan...@hotmail.com> wrote:
> 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.
> C:\temp\objdump -ax sample.exe | find "DLL"
> ...
>        DLL Name: libgcc_s_dw2-1.dll

That's the problem: the packed executable (actually a copy of
myldr\boot.exe with
some stuff appended) has been linked with libgcc*.dll.
We don't do that on purpose, the MingW (GCC) toolchain does that implicitly
(under certain conditions which seem to proliferate with any new
version of GCC).
The only way to solve the problem is to link statically with libgcc*.

Please try the following:

- find the following lines in myldr\Makefile.PL in the unpacked
PAR-Packer tarball

$boot_exe: boot$o
        \$(CC) boot$o \$(STATIC_LDFLAGS) $res $out$boot_exe_link
        $mt_cmd

  and change them to

$boot_exe: boot$o
        \$(CC) boot$o \$(STATIC_LDFLAGS)  -static-libgcc $res $out$boot_exe_link
        $mt_cmd

- rebuild and reinstall PAR::Packer

  dmake clean
  perl Makefile.PL
  dmake
  dmake install

- re-pack your script and try it out

Cheers, Roderich

Reply via email to