Opened 8 years ago

Closed 5 years ago

#1143 closed bug (wontfix)

Compilation errors with MinGW g++ on Windows

Reported by: jayesh Owned by: jayesh
Priority: major Milestone: future
Component: mpich Keywords:
Cc: rick.rankin@…

Description (last modified by balaji)

On Windows when compiling MPI programs with libmpicxx.a from IA32 version of MPICH2 using MinGW g++ compiler the user gets the following error message,

$ g++ -ID:/tools/mpich2/include mpitest.cpp -LD:/tools/mpich2/lib -lmpicxx -lmpi
D:/tools/mpich2/lib/libmpicxx.a(initcxx.o):initcxx.cxx:(.text+0x456): undefined reference to `__gxx_personality_sj0'
D:/tools/mpich2/lib/libmpicxx.a(initcxx.o):initcxx.cxx:(.text+0x47b): undefined reference to `_Unwind_SjLj_Register'
D:/tools/mpich2/lib/libmpicxx.a(initcxx.o):initcxx.cxx:(.text+0x4e8): undefined reference to `_Unwind_SjLj_Resume'
D:/tools/mpich2/lib/libmpicxx.a(initcxx.o):initcxx.cxx:(.text+0x4fe): undefined reference to `_Unwind_SjLj_Unregister'
...

g++ from Cygwin uses SJLJ exceptions while latest MinGW compilers use Dwarf-2 exceptions by default resulting in the error message above.

Change History (4)

comment:1 Changed 8 years ago by jayesh

  • Milestone changed from mpich2-1.3.2 to mpich2-1.3.3

We might have to get rid of compiling with g++ altogether and use dlltool like we do for other libs (The alternative is to provide stubs to be compiled by the user - which is not user-friendly).

(PS: The general consensus as I googled for similar issues is to recompile code with later versions of g++ - SJLJ & Dwarf-2 cannot be mixed together)
-Jayesh

comment:2 Changed 7 years ago by balaji

  • Milestone changed from mpich2-1.3.3 to mpich2-1.4

Milestone mpich2-1.3.3 deleted

comment:3 Changed 7 years ago by balaji

  • Milestone changed from mpich2-1.4 to future

comment:4 Changed 5 years ago by balaji

  • Description modified (diff)
  • Resolution set to wontfix
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.