[mythtv-users] Cross-compiled win32 binaries failing to run

Lawrence Rust lvr at softsystem.co.uk
Tue Dec 20 15:13:17 UTC 2011


On Tue, 2011-12-20 at 11:50 +0200, Markus Mattinen wrote:
> 2011/12/20 Lawrence Rust <lvr at softsystem.co.uk>
>         What version of Myth are you building?  The safe bet is
>         fixes/0.24.1
>         The script sometimes falls behind git master due to
>         adding/removing
>         libraries.  If that's the case then let me know and I'll get
>         it fixed.
>         --
>         Lawrence
>         
>         _______________________________________________
>         mythtv-users mailing list
>         mythtv-users at mythtv.org
>         http://www.mythtv.org/mailman/listinfo/mythtv-users
>         
> 
> It's not about the version I'm building - I just tried fixes/0.24 and
> got the same result.
> According to my limited debugging capabilities, it seems to stop
> running when it encounters the first movq instruction.
> Does that mean there's something wrong with my mingw32 or the cpu
> architecture I'm building for?
> Should I be specifying a -c <cpu> or
> {CFLAGS,CXXFLAGS}="-march=<something>" when building on a 64 bit
> machine with mingw32?

If you're using mythbuild.sh then the script should be setting the flags
appropriately.  Just for the record what does mythtv/config.log contain?

If you're running on a different cpu to that on which you're building
then it may be necessary to specify the --cpu option for mythtv
configure.  This is conveniently done by using the -c option in
mythbuild.sh e.g. "-c i686" will compile for a PentiumPro.

> I just tried some different options for those (native and i486) but
> those failed to compile with "Error: unsupported for `movq'" assembler
> messages.
> What should I be using?

You need to build for at least a Pentium.  If your target doesn't
support that then you may need to patch the ffmpeg code.

I have just built git master using mythbuild.sh - it needs this patch to
compile:
--- a/mythtv/libs/libmythtv/dtvrecorder.cpp
+++ b/mythtv/libs/libmythtv/dtvrecorder.cpp
@@ -330,7 +330,7 @@ static QDateTime ts_to_qdatetime(
     uint64_t pts, uint64_t pts_first, QDateTime &pts_first_dt)
 {
     if (pts < pts_first)
-        pts += 0x1FFFFFFFF;
+        pts += Q_UINT64_C(0x1FFFFFFFF);
     QDateTime dt = pts_first_dt;
     return dt.addMSecs((pts - pts_first)/90);
 }

The built mythfrontend will run using Wine but needs "-O
ThemePainter=qt -O UIPainter=Qt" options.

-- 
Lawrence


More information about the mythtv-users mailing list