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:
- 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. - 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?