Haskell Platform's libstdc++-6.dll may be interfering with other applications

I use a number of different programming languages, so I have Haskell Platform, Strawberry Perl, Node.js, RVM, and Git Bash installed at the same time. I've noticed that compiling packages with C dependencies (e.g. using node-gyp during "npm install node-mhash", or doing "cpan install PAR::Packer") often crashes during the build process with a popup: The procedure entry point __gxx_personality_sj0 could not be located in the dynamic link library libstdc++-6.dll. As Roderich Schupp points outhttps://rt.cpan.org/Public/Bug/Display.html?id=84949, it appears that the different libstdc++-6.dll's are interfering with one another. Haskell Platform comes with one, Vagrant comes with one, GIMP comes with one, MinGW comes with one, and Strawberry Perl comes with two! Objdump seems to indicate that Haskell Platform's DLL is the one to blame. $ find /c/ -name libstdc++-6.dll 2>/dev/null /c/DevKit/mingw/bin/libstdc++-6.dll /c/Program Files/GIMP 2/bin/libstdc++-6.dll /c/Program Files/Haskell Platform/2012.4.0.0/mingw/bin/libstdc++-6.dll /c/strawberry/c/bin/libstdc++-6.dll /c/strawberry/perl/bin/libstdc++-6.dll /c/vagrant/vagrant/embedded/mingw/bin/libstdc++-6.dll $ objdump -ax /c/DevKit/mingw/bin/libstdc++-6.dll | ack gxx_personality [3896] __gxx_personality_sj0 $ objdump -ax /c/Program\ Files/GIMP\ 2/bin/libstdc++-6.dll | ack gxx_personality [3499] __gxx_personality_sj0 $ objdump -ax /c/Program\ Files/Haskell\ Platform/2012.4.0.0/mingw/bin/libstdc++-6.dll | ack gxx_personality [3401] __gxx_personality_v0 $ objdump -ax /c/strawberry/c/bin/libstdc++-6.dll | ack gxx_personality [3510] __gxx_personality_sj0 $ objdump -ax /c/strawberry/perl/bin/libstdc++-6.dll | ack gxx_personality [3510] __gxx_personality_sj0 $ objdump -ax /c/vagrant/vagrant/embedded/mingw/bin/libstdc++-6.dll | ack gxx_personality [3896] __gxx_personality_sj0 Would updating Haskell Platform's libstdc++-6.dll fix this issue? Is there some way to cordon Haskell Platform off from the rest of the system, while still making ghc.exe and friends available on PATH? Here are my system specs, I figure they're highly relevant. $ specs haskell perl node ruby git os Specs: specs 0.4 https://github.com/mcandre/specs#readme cabal --version cabal-install version 0.14.0 using version 1.14.0 of the Cabal library ghc --version The Glorious Glasgow Haskell Compilation System, version 7.4.2 ghc-pkg field haskell-platform version version: 2012.4.0.0 cpan --version c:\strawberry\perl\bin/cpan version 1.5902 calling Getopt::Std::getopts (version 1.07 [paranoid]), running under Perl version 5.16.2. [Now continuing due to backward compatibility and excessive paranoia. See 'perldoc Getopt::Std' about $Getopt::Std::STANDARD_HELP_VERSION.] Nothing to install! perl --version This is perl 5, version 16, subversion 2 (v5.16.2) built for MSWin32-x86-multi-thread Copyright 1987-2012, Larry Wall 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. npm --version 1.2.17 node --version v0.10.3 bundle --version Bundler version 1.3.2 gem --version 2.0.3 ruby --version ruby 1.9.3p374 (2013-01-15) [i386-mingw32] git --version git version 1.8.0.msysgit.0 systeminfo | findstr /B /C:"OS Name" /C:"OS Version" OS Name: Microsoft Windows XP Professional OS Version: 5.1.2600 Service Pack 3 Build 2600 -- Cheers, Andrew Pennebaker www.yellosoft.us

On Tue, 07 May 2013 20:27:06 +0200, Andrew Pennebaker
I use a number of different programming languages, so I have Haskell Platform, Strawberry Perl, Node.js, RVM, and Git Bash installed at the same time.
I've noticed that compiling packages with C dependencies (e.g. using node-gyp during "npm install node-mhash", or doing "cpan install PAR::Packer") often crashes during the build process with a popup:
The procedure entry point __gxx_personality_sj0 could not be located in the dynamic link library libstdc++-6.dll.
As Roderich Schupp points outhttps://rt.cpan.org/Public/Bug/Display.html?id=84949, it appears that the different libstdc++-6.dll's are interfering with one another. Haskell Platform comes with one, Vagrant comes with one, GIMP comes with one, MinGW comes with one, and Strawberry Perl comes with two! Objdump seems to indicate that Haskell Platform's DLL is the one to blame. : : Would updating Haskell Platform's libstdc++-6.dll fix this issue? Is there some way to cordon Haskell Platform off from the rest of the system, while still making ghc.exe and friends available on PATH? :
I think there will always be discrepancies between different versions of DLLs; one way to solve this, is to put the Haskell compiler directory at the beginning of the search path when you are compiling with it. When you decide that you are satisfied with your executable, put the libstdc++-6.dll in the executables directory, as this directory is searched first for DLLs, when running the executable. Regards, Henk-Jan van Tuyl -- Folding@home What if you could share your unused computer power to help find a cure? In just 5 minutes you can join the world's biggest networked computer and get us closer sooner. Watch the video. http://folding.stanford.edu/ http://Van.Tuyl.eu/ http://members.chello.nl/hjgtuyl/tourdemonad.html Haskell programming --
participants (2)
-
Andrew Pennebaker
-
Henk-Jan van Tuyl