FAQ
Hi,

Is there someone here who can provide info/link to building perl (using
mingw port of gcc) without it being dependent on libgcc_s_sjlj-1.dll,
libstdc++-6.dll ?

(I'm familiar enough with building perl using mingw - I'm just seeking
advice re the mechanism for removing the aforementioned dependencies.)

I provide the following by way of information. Feel free to comment on it.
Also feel free to ignore it.

My mingw-built Math::Float128 ppm package doesn't work correctly with
ActivePerl build 1600 (5.16.0).
Essentially it works fine .... the only problem arises when it comes to
printing out the actual value contained in the Math::Float128 object:

C:\_32>perl -MMath::Float128 -le "$x=Math::Float128->new('2.3');print $x;"
1.28255230868747473742425564582366e-4937

The expected result is:

C:\_32>perl -MMath::Float128 -le "$x=Math::Float128->new('2.3');print $x;"
2.3e+00

I'm thinking this must be some runtime issue, so I've been comparing the dll
files that my mingw-built perl-5.16.0 loads with the dll's that ActivePerl
loads.
I was thinking they must be loading different C runtimes but, alas, the
evidence is that they're loading the very same msvcrt.dll.
They also load the same system dll's.

Only difference I can find is that the mingw build's perl516.dll has
dependencies upon libgcc_s_sjlj-1.dll, libstdc++-6.dll and the system
WS2_32.dll, whereas the AS perl516.dll does not.

I don't know how to remove the WS2_32.dll dependency, but at least I can
start by building a mingw-built perl that doesn't have the dependencies on
the 2 helper dll's.
Then build Math::Float128 using that perl and see if that works any better
with ActivePerl.
Instinctively I feel that it won't make any difference, but I can't think of
anything else to try.

It's quite likely that other versions of ActivePerl (not just 5.16.0) are
affected in the same way, but this is untested.

Cheers,
Rob

Search Discussions

  • Sisyphus1 at Oct 1, 2015 at 12:20 pm
    -----Original Message-----
    From: sisyphus1@optusnet.com.au
    Sent: Thursday, October 01, 2015 2:45 PM
    To: win32-vanilla@perl.org
    Subject: Build perl without libgcc_s_sjlj-1 dependency
    Is there someone here who can provide info/link to building perl (using
    mingw port of gcc) without it being dependent on libgcc_s_sjlj-1.dll,
    libstdc++-6.dll ?
    No matter - I finally (re)found:
    http://www.nntp.perl.org/group/perl.win32.vanilla/2014/08/msg579.html
    and followed that advice to successfully build a perl-5.16.0 that had no
    runtime dependency upon the 2 gcc dll files.

    I then used that perl to build Math::Float128, and copied it across to
    ActivePerl-5.16.0.

    As I expected, it made no difference and ActivePerl is still producing:

    C:\_32>perl -MMath::Float128 -le "$x=Math::Float128->new('2.3');print $x;"
    1.28255230868747473742425564582366e-4937

    At least I've ruled out the possibility that the runtime dependency on the 2
    gcc dll's is the cause of the problem.
    Must be something else.

    This new mingw perl.exe has a runtime dependency on kernel32.dll, whereas
    the ActivePerl one doesn't.
    And the new mingw perl516.dll has a runtime dependency on ws2_32.dll,
    whereas the ActivePerl one doesn't.

    Other than that, runtime dependencies are identical, right down to the
    actual dll's that are being loaded.

    I'll probably raise this on perlmonks (where it's just as off-topic as it is
    here) at some stage in the future.

    Cheers,
    Rob
  • Robert Eden at Oct 1, 2015 at 5:04 pm

    On 9/30/2015 11:45 PM, sisyphus1@optusnet.com.au wrote:
    Hi,

    Is there someone here who can provide info/link to building perl
    (using mingw port of gcc) without it being dependent on
    libgcc_s_sjlj-1.dll, libstdc++-6.dll ?
    Not sure if this will help you, but I needed a perl without dll
    dependencies (similar to activeperl) in order to use Perlpp to make
    XMLTV.EXE

    I documented the procedure here:
    http://wiki.xmltv.org/index.php/XMLTVexeBuild

    Robert
  • Sisyphus1 at Oct 2, 2015 at 12:03 am
    -----Original Message-----
    From: Robert Eden
    Sent: Friday, October 02, 2015 3:04 AM
    To: win32-vanilla@perl.org
    Subject: Re: Build perl without libgcc_s_sjlj-1 dependency
    I documented the procedure here:
    http://wiki.xmltv.org/index.php/XMLTVexeBuild
    Thanks Robert.
    It was your thread that I eventually dug up - though your wiki provides a
    more comprehensive presentation, of course.

    Does anyone have any comments on "pros and cons" of building perl with these
    runtime dependencies versus having them statically linked in ?

    Cheers,
    Rob

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupwin32-vanilla @
categoriesperl
postedOct 1, '15 at 4:46a
activeOct 2, '15 at 12:03a
posts4
users2
websitestrawberryperl.com

2 users in discussion

Sisyphus1: 3 posts Robert Eden: 1 post

People

Translate

site design / logo © 2019 Grokbase