octave-maintainers
[Top][All Lists]
Advanced

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

Re: MXE: "undefined reference to `mxArray::mxArray(mxClassID, long long,


From: Philip Nienhuis
Subject: Re: MXE: "undefined reference to `mxArray::mxArray(mxClassID, long long, long long, mxComplexity)"
Date: Tue, 30 Dec 2014 21:25:58 +0100
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0 SeaMonkey/2.30

John W. Eaton wrote:
On 12/27/2014 06:27 PM, Philip Nienhuis wrote:
Philip Nienhuis wrote
When trying to cross-build Octave (3.9.0+ & 4.1.0+) with --enable-64,
the
build of Octave stops with errors a la:

:
octave-value/.libs/liboctave-value.a(octave_value_liboctave_value_la-ov-bool.o):

In function `octave_bool::as_mxArray() const':
/home/philip/devel/octdev/mxe/mxe64_20141208/tmp-octave/octave-3.9.0+/libinterp/octave-value/ov-bool.cc:234:

undefined reference to `mxArray::mxArray(mxClassID, long long, long
long,
mxComplexity)'
:

FTR, building stable-octave goes fine & it runs fine on Windows 64b

I'm pretty sure that the problem is that the generated mxarray.h file
that was accidentally included in the 4.1.0+ distribution that
mxe-octave is picking up for default-octave has lines like

   typedef int mwSize;
   typedef int mwIndex;

when these should be using int64_t on 64-bit systems instead of int.

Adding:

#include <stdint.h>

just above those lines in mxarray.in.h fixes a number of Octave-Forge package build problems with 64-bit indexing Octave; at least so on 64bit Windows. Whether this is the proper fix I don't know, but it helps and AFAICS it has no side effects for 32-bit builds.

That problem should be fixed if the mxarray.h file is generated as part
of the build process.

Isn't that happening in the current sources?
In libinterp/Makefile.in I see:

:
BUILT_NODISTFILES = \
  corefcn/mxarray.h \
  corefcn/oct-errno.cc \
:

and further down:

:
EXTRA_DIST = Makefile.in DOCSTRINGS config-features.sh \
        find-defun-files.sh gendoc.pl genprops.awk mk-errno-list \
        mk-pkg-add mkbuiltins mkdefs mkops oct-conf.in.h version.in.h \
        $(BUILT_DISTFILES) parse-tree/module.mk \
        :
        corefcn/mxarray.in.h corefcn/oct-errno.in.cc \
:

This is the case for stable as well as default (and gui-release).
As far as I can guess these settings are just meant for a source distribution tarball, right?

Philip




reply via email to

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