Comment 3 for bug 1179683

Revision history for this message
Steven Boswell (ulatekh) wrote : Re: Mixxx 1.11.0 MS Windows build

Re #2: I'll see if I can track down that file.
Re #4: I'll see if I can figure out how to make that seamless.

Apparently I'm a glutton for punishment...it became apparent pretty quickly that build/qtcreator/mixxx.pro was woefully out of date. Now, it's a lot less out of date. The enclosed archive contains a patch, and a new file, that significantly advances the mingw build!

Some paths (e.g. mixxx-mingw, where I installed all the mingw-built dependent packages) are hardcoded, but given how broken mixxx.pro was before, I doubt this makes it any more broken. :-) At some point, I can include all the instructions and patch files for the mingw build of the dependencies. (If I get REALLY motivated, I can send those patches upstream to the dependency package maintainers.)

It built, linked, and even ran, mostly...it crashed in a very strange way:

Program received signal SIGSEGV, Segmentation fault.
#0 google::protobuf::internal::RepeatedPtrFieldBase::Reserve (this=0x0,
    new_size=2685088) at google/protobuf/repeated_field.cc:46
#1 0x00738040 in google::protobuf::internal::RepeatedPtrFieldBase::Add<google::protobuf
::RepeatedPtrField<mixxx::skin::SkinManifest_Attribute>::TypeHandler> (this=0x28f8a0)
    at ../mixxx-winlib/google/protobuf/repeated_field.h:675
#2 0x0073748d in google::protobuf::RepeatedPtrField<mixxx::skin::SkinManifest_Attribute
>::Add (this=0x28f8a0) at ../mixxx-winlib/google/protobuf/repeated_field.h:870
#3 0x007346b8 in mixxx::skin::SkinManifest::add_attribute (this=0x28f884)
    at ./proto/skin.pb.h:772
#4 0x005e4456 in LegacySkinParser::getSkinManifest (skinDocument=...)
    at ..\mixxx-winsrc\src\skin\legacyskinparser.cpp:225
#5 0x005e480d in LegacySkinParser::parseSkin (this=0x28f984, skinPath=..., pParent=
    0x23e9b6d8) at ..\mixxx-winsrc\src\skin\legacyskinparser.cpp:256
#6 0x005e20bf in SkinLoader::loadDefaultSkin (this=0x23d0d668, pParent=0x23e9b6d8,
    pKeyboard=0x1d1bc260, pPlayerManager=0x1da66d08, pControllerManager=0x20e88c58,
    pLibrary=0x20dffa48, pVCMan=0x347dd8)
    at ..\mixxx-winsrc\src\skin\skinloader.cpp:70
#7 0x004bd667 in MixxxApp::MixxxApp (this=0x1d1ba378, pApp=0x28fe2c, args=...)
    at ..\mixxx-winsrc\src\mixxx.cpp:456
#8 0x004b54ea in qMain (argc=1, argv=0x1d1aaa20) at ..\mixxx-winsrc\src\main.cpp:284

I'm not sure how "this" can become NULL between google::protobuf::internal::RepeatedPtrFieldBase::Add() and google::protobuf::internal::RepeatedPtrFieldBase::Reserve(), so I'm stuck.

So hopefully you'll be willing to apply these patches. I tested them with the MSVC Win32 build and the Linux (i.e. Fedora Core 18) build, and all seems well.

Until I figure out what to do about the above crash, I think I'll try to get scons to build mixxx with the mingw toolchain.