[sorry if this gets to you twice, I sent it from the wrong e-mail
account the first time]

Hello list,

Recently a bug has been found in the dllwrap tool for MINGW that causes
relocation sections inside a DLL to be duplicated.  When the DLL has to
be relocated, addresses are fixed up twice causing crashes that are hard
to track down.

See
http://sourceforge.net/mailarchive/forum.php?thread_name=1187200750.8500.38.camel%40devit.rsaisp.com&forum_name=mingw-users
 for reference 


I noticed that in the downloaded source for xerces-c 2.8.0 there is a
file inside of src/xercesc called Makefile.incl that includes the
following section starting at line 461:

#=============== MINGW SPECIFIC OPTIONS =========================
ifeq (${PLATFORM}, MINGW)
  PLATFORM_COMPILE_OPTIONS = -D${PLATFORM} -fexceptions -D__GNUWIN32__
-DWIN32 -D_WINDOWS -DNDEBUG -DPLATFORM_WIN32

  ifeq (${LIBTYPE},shared)
    MAKE_SHARED = dllwrap --export-all-symbols --driver-name ${CXX}
${LDFLAGS}
    MAKE_SHARED_C = ${CC} -D${PLATFORM} ${LDFLAGS}
  else
    PLATFORM_COMPILE_OPTIONS += -DXML_LIBRARY # switch off import/export
  endif

  ALLLIBS = ${LIBS}
  SHLIBSUFFIX=.dll
endif

The line that reads:

MAKE_SHARED = dllwrap --export-all-symbols --driver-name ${CXX}
${LDFLAGS}

can be changed to:

MAKE_SHARED = ${CXX} -shared ${LDFLAGS}

To avoid the bug in dllwrap.


I did notice that when I downloaded trunk from CVS that I could not find
a reference to dllwrap anywhere, nor Makefile.incl.  Maybe this has
already been addressed?

Thank you for your time,
- Dave

Reply via email to