Update glib and glibmm by lluixhi · Pull Request #453 · mxe/mxe (original) (raw)

OK, I tried to build glib on i686-pc-mingw32.shared, and it failed. The problem is that MinGW does not provide a prototype for rand_s() (see http://sourceforge.net/p/mingw/bugs/2122/). However mingw-w64 does.

This bug is fairly hard to fix, because all three options seem rather unrealistic:

  1. Patch mingwrt using a variant of http://sourceforge.net/p/mingw/bugs/2122/attachment/rand_s-mingw.patch
    The patch only applies to mingwrt 4.*, applying it on 3.20 (which mxe uses) is possible but rather difficult because currently mxe simply gets the binary and installs it. Patching means getting the source and build it, and all sorts of chicken vs. egg problem appears.
  2. Disable glib on i686-pc-mingw32.
    glib is crucial to many projects:
timothy_gu@ubuntu-lenovo:~/mxe$ make show-downstream-deps-glib  
agg atk atkmm cegui chromaprint ffmpeg freetype fribidi ftgl gd gdk-pixbuf  
glibmm graphicsmagick gst-plugins-base gst-plugins-good gstreamer gtk2  
gtkglarea gtkglext gtkglextmm gtkimageview gtkmm2 gtksourceview  
gtksourceviewmm2 harfbuzz imagemagick lensfun libass libbluray libcaca  
libcroco libgda libgdamm libgee libglade libgsf liblqr-1 librsvg libxml++  
mdbtools ocaml-cairo ocaml-camlimages ocaml-lablgl ocaml-lablgtk2 opencv  
openscenegraph pango pangomm pcl plotmm poppler qscintilla2 qt5 qtactiveqt  
qtbase qtconnectivity qtdeclarative qtenginio qtgraphicaleffects  
qtimageformats qtlocation qtmultimedia qtquick1 qtquickcontrols qtscript  
qtsensors qtserialport qtservice qtsvg qtsystems qttools qttranslations  
qtwebkit qtwebsockets qtwinextras qtxmlpatterns qwt sdl2_ttf sdl_pango sdl_ttf  
sfml t4k_common vtk wt xine-lib  

Without glib the purpose of mxe is basically diminished. 3. Remove i686-pc-mingw32.
There are still packages that can only be built with MinGW, and removing this target isn't very nice.

So, I propose that we either figure out a way to make MinGW use the old version while mingw-w64 the new one, or to delay this update. @tonytheodore?