octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 64-bit Windows OF packages build failures [WAS: Cross compile io pac


From: Philip Nienhuis
Subject: Re: 64-bit Windows OF packages build failures [WAS: Cross compile io package?]
Date: Sat, 02 May 2015 14:34:21 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0 SeaMonkey/2.33

John Donoghue wrote:



On Fri, May 1, 2015 at 6:11 PM, Philip Nienhuis <address@hidden
<mailto:address@hidden>> wrote:

    <moving private conversation to maintainers ML>

    JohnD wrote:

            -----Original Message-----
            From: Philip Nienhuis [mailto:pr.nienhuis@
            <mailto:pr.nienhuis@>******]


    <snip>

            I was wondering if in latest mxe-octave the OF io package is
            also
            (cross-) built & installed and if yes, where in the binary
            installer it can be found.

            Background:
            I'm trying to find out why csv2cell() crashes Octave on
            Windows in
            --enable-windows-64 mxe builds (i.e., for Win64) (bug #44662).
            Lots of cout << statements showed it crashes on simple
            statements like:

            while (fd.fail ())

            str += line   // where: std::string str , char line [MXLENGTH];

            Because of the erratic crash locations I suspect it is
            simply miscompiled these
            days when built on the Windows side; in older 4.1.0+ 64-bit
            builds it built & ran
            fine.
            So I figured: let's see if it works better if cross-built on
            Linux and then run on
            Windows.

    <snip>


        I believe that it is cross compiled in JWEs latest installer,
        but not installed (installing still a work in progress).


    Turns out that whe using the --enable-binary-packages flag as you
    mentioned, csv2cell.oct is indeed built, also in case of the
    "--enable-windows-64" mxe configure option, and included in the src/
    subdirs of the included OF-io package. The same goes for binary
    modules in other OF packages.

    Well, that cross-built csv2cell.oct turns out to run fine on windows-64.
    So in turn that implies that the csv2cell() issues I hit in bug
    #44662 are due to mingw compiler issues; IOW the cross-built
    compiler for the Windows side must be at fault.

    The windows package also runs fine with cross-built 64-bit __COM__.oct.

The cross gcc is a multilib 32/64, and the gcc when installed is just
a
64 bit gcc, although I wouldnt have thought it would make a
difference
as it should be compiling programs in both cases as 64 bit.

Ah, that could be a good explanation: that the move to build a 64-bit nsis installer has unintended/unexpected consequences. Now that you mention: it could very well be (but I'm unsure!) that the 64-bit oct file issues started around the time that 64-bit mxe-octave nsis-installers were made possible.

I'll open a bug report for this (https://savannah.gnu.org/bugs/index.php?44998) and close the other bug reports that turn out to be related (#44180 & #44662).

In the mean time I have adapted the build_packages.m script to copy cross-built .oct files in each packages' src/ subdir over the .oct files built at the windows side (see bug report). AFAICS the various cross-built binary modules in each package work fine when copied into place this way.

Philip



reply via email to

[Prev in Thread] Current Thread [Next in Thread]