Sun May 30 08:20:47 2010: Request 57948 was acted upon.
Transaction: Correspondence added by mark.doot...@znix.com
       Queue: PAR-Packer
     Subject: Re: [rt.cpan.org #57948] Bug report: pp-generated executable and 
a missing dependency libgcc_s_sjlj-1.dll
   Broken in: (no value)
    Severity: (no value)
       Owner: RSCHUPP
  Requestors: m...@iki.fi
      Status: open
 Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=57948 >


Hi,

On 29/05/2010 17:55, RSCHUPP via RT wrote:

>
> So I see two possible options:
> - stick with a dynamically linked custom Perl and
>    modify (conditionally for Strawberry only) the whole
>    load_me_* shebang in myldr and add a load_me_3 file that
>    would contain libgcc_s_*.dll (which would get extracted
>    alongside par.exe and perl512.dll)
> - link the custom Perl statically, then the whole second
>    bootstrap phase is omitted and the problem goes away
>
> I definitely don't want to touch the load_me stuff with a
> ten-foot pole, so I experimented with the latter option.
> However, even after tweaking myldr/Makefile by hand I
> couldn't produce a par.exe there that was NOT dynamically
> linked against perl512.dll.
>
> @Mark: Do you know why even
>
> g++ main.o my_par_pl.o  -Wl,-Bstatic -Lc:\strawberry\perl\lib\CORE
> -lperl512 -o par.exe
>
> generates par.exe with a reference to perl512.dll?
>
> Cheers, Roderich
>

I'm not absolutely certain of the total effect of passing -static to ld 
on windows. For '-lperl512' what matters is what is contained in 
perl512.lib or libperl512.a.

I don't think you can mix and match your linking model on Windows. So if 
you had a static perl.exe (or par.exe) you could not then load separate 
xs code dynamically - you would have to compile in all the xs modules 
you require. That's why, by default, you don't get a static perl built 
on MSWin. It is not generally useful.

In a dynamic perl, all the xs dll's are dynamically linked to 
perl512.dll. You can't mix and match static / dynamic linking.

You have to add a load_me_3 file or some windows specific function that 
does the same thing, I'm afraid.


Regards

Mark




Reply via email to