Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Problems building latest Perl build with Mingw64

by BAJA (Novice)
on Dec 13, 2012 at 20:51 UTC ( [id://1008722]=perlquestion: print w/replies, xml ) Need Help??

BAJA has asked for the wisdom of the Perl Monks concerning the following question:

Perl version that I'm trying to build: 5.16.2

MingW64 version that I'm using to build Perl: mingw-w32-bin_i686-mingw_20111219.zip

GCC version: 4.7.0

Dmake used from CPAN, version: dmake-4.12-20090907-SHAY

I have configured the makefile.mk correctly to use this compiler.

Then, whenever I try to build Perl, after I do dmake in the command prompt, it says: generate_uudmap.exe cannot start up because libgcc_s_sjlj-1.dll is missing.

Has anybody used MingW64 to build Perl?

Does somebody have any idea about this?

Any comment or help, will be greatly appreciated.

Thanks.

Replies are listed 'Best First'.
Re: Problems building latest Perl build with Mingw64
by ww (Archbishop) on Dec 13, 2012 at 21:09 UTC

    The cite of "MingW64 version that I'm using to build Perl: mingw-w32-bin_i686-mingw_20111219.zip" in your post raises a suspicion, since the sourceforge page says:

    The format is: <Target>[-Version]-<Src/Bin>-<Host>[-Cygwin Version]_<Date Code>[_pers +onal tag].[extension] <Target> "mingw-w32" or "mingw-w64" The target is the binary format the tool chain will generate. "mingw-w64" means the toolchain will generate 64bit binaries that will + run on windows natively (64bit windows required) "mingw-w32" means the toolchain will generate 32bit binaries that will + run on windows natively

    Is it possible you're using the wrong version? And why cite the zip archive rather than the code itself?

Re: Problems building latest Perl build with Mingw64
by syphilis (Archbishop) on Dec 14, 2012 at 01:20 UTC
    I have configured the makefile.mk correctly to use this compiler

    As ww has noted, this is a 32-bit compiler - which means you'll need to configure the makefile.mk in accordance with that.

    generate_uudmap.exe cannot start up because libgcc_s_sjlj-1.dll is missing.


    libgcc_s_sjlj-1.dll is probably not in the 'bin' folder, so you'll need to add the folder that contains that dll to the path.
    I think it's located in mingw\lib and/or (something like) x86_64-w32-mingw32\lib. (I think they're both the same, so it shouldn't matter which one gets found.)
    I plonked a copy of libgcc_s_sjlj-1.dll into my bin folder, so I didn't have to modify the path ... but apparently that's *not* the recommended fix ;-)

    Cheers,
    Rob
Re: Problems building latest Perl build with Mingw64
by Anonymous Monk on Dec 14, 2012 at 05:03 UTC

    See Re^9: perl 5.14.0-RC1 is available for testing! and make a similar change for uudmap

    or go ahead and add the path to those DLLs to your %PATH% (it should be $(CCHOME)\bin )

    Example

    CCTYPE *= GCC .IF "$(CCTYPE)" == "GCC" CCHOME *= C:\MinGW .ELSE CCHOME *= $(MSVCDIR) .ENDIF CCTYPE *= GCC .IF "$(CCTYPE)" == "GCC" GCC_VERSION *= $(shell gcc -dumpversion) GCC_MAJOR_VERSION *= $(GCC_VERSION:b:b) .IF "$(GCC_MAJOR_VERSION)" == "4" CFLAGS += -static-libgcc LIBC += -static-libgcc GCC_4XX *= define .ENDIF .ENDIF .IMPORT .IGNORE : PATH .IF exist "$(CCTYPE)\bin" PATH +:=;$(CCHOME)\bin; .ELSE PATH +:=;$(CCHOME); .ENDIF .EXPORT: PATH __echo_GCC: @echo GCC_VERSION $(GCC_VERSION) @echo GCC_MAJOR_VERSION $(GCC_MAJOR_VERSION) @echo GCC_4XX $(GCC_4XX) @echo CFLAGS $(CFLAGS) @echo LIBC $(LIBC) @echo @echo @echo RUN THIS MAKEFILE AS @echo dmake && echo %path% @echo @echo @echo ########### @echo PATH @echo $(PATH) @echo ########### @echo PATH from SHELL (ie child process) @echo $(shell cmd /x /c echo %path%) @echo @echo $(NOOP)

    output

    $ dmake dmake: Executing shell macro: gcc -dumpversion dmake: Executing shell macro: gcc -dumpversion GCC_VERSION 4.7.0 dmake: Executing shell macro: gcc -dumpversion GCC_MAJOR_VERSION 4 GCC_4XX define CFLAGS -static-libgcc LIBC -static-libgcc RUN THIS MAKEFILE AS dmake && echo %path% ########### PATH C:\dmake-4.12-20090907-SHAY;C:\MinGW\bin; ;C:\MinGW\bin; ########### PATH from SHELL (ie child process) dmake: Executing shell macro: cmd /x /c echo %path% C:\dmake-4.12-20090907-SHAY;C:\MinGW\bin; ;C:\MinGW\bin;

    dmake sneaks in an extra trailing whitespace, must be a bug :/

Re: Problems building latest Perl build with Mingw64
by BAJA (Novice) on Dec 18, 2012 at 13:56 UTC

    Hi all, thanks for your answers.

    So...

    @ww:

    As you mentioned in your post there is a page in the MingW64 project that describes the nomenclature they use to name their files. Since I did read it, I thought it was appropriate to mention the zip file name since it gathers about information where I'm going to and how am I going to use it. But I do recognize my mistake that i would rather say that I was going to use in Windows XP 32 bits and wanted to create binaries for the same platform. Therefore I was no using a wrong version.

    @syphilis and AnonymousMonk:

    Thanks for your recommendations, I'll be trying both today and I'll get back with the results today or tomorrow.

    @AnonymousMonk:

    With that example, you are telling me to implement it in the makefile.mk, correct?

    Thank very much to all of you

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://1008722]
Approved by ww
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (2)
As of 2024-04-26 01:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found