bugGNU Octave - Bugs: bug #43318, [MinGW] "unknown type name...

 
 

bug #43318: [MinGW] "unknown type name 'int64_t'" with --enable-64 when compiling some OF packages

Submitted by:  Philip Nienhuis <philipnienhuis>
Submitted on:  Sun 28 Sep 2014 03:16:49 PM UTC  
 
Category: LibrariesSeverity: 3 - Normal
Priority: 5 - NormalItem Group: Installation Failure
Status: FixedAssigned to: None
Originator Name: Philip NienhuisOpen/Closed: Closed
Release: 3.8.2Operating System: Microsoft Windows

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

(Jump to the original submission Jump to the original submission)

Thu 19 Mar 2015 09:40:33 PM UTC, comment #8:

This bug has been fixed with this (other) changeset:
http://hg.savannah.gnu.org/hgweb/octave/rev/dbdc60e36dbc

See also bug #43805

Philip Nienhuis <philipnienhuis>
Project Member
Fri 12 Dec 2014 09:31:45 PM UTC, comment #7:

Indeed, just patching mxarry.h alongthe lines you sketched in the installed Octave tree makes ltfat install fine :-)

Then doing:

at least suggests that the package runs fine....

BYW it seems <cstdint> is only included in C+11 / clang. We have to make do with <stdint.h>

Philip Nienhuis <philipnienhuis>
Project Member
Fri 12 Dec 2014 09:22:01 PM UTC, comment #6:

It should be required for the patch except to verify that octave still compiles ok with the patch applied.

My comment applied more to the fact that I had previously just compiled octave with 64 bit, but the supporting libraries (suitesparse etc) was still built without the enable-64 option.

So the patch is required in order for the packages to install successfully in windows, however it isn't the only issue.

John Donoghue <lostbard>
Project Member
Fri 12 Dec 2014 09:02:30 PM UTC, comment #5:

Q: is a complete new mxe-octave build required or would it suffice to patch mxarray.h in the installed Octave directory tree? I guess the former. But I can give it a try here...

quaternion, data-smoothing, fuzzy-logic and optim install fine with current Octave sources with or without patch.

Indeed, odepkg, fl-core, netcdf, image and ltfat have more profound problems. And that's only packages included in mxe-octave - who knows what problems turn up when more packages get included.

IIRC the compile error you showed for image is the same that I've got ever since I started with 64bit mingw cross-builds a few months ago. So it seems to be separate from the <stdint.h> / <cstdint> issue.

Philip Nienhuis <philipnienhuis>
Project Member
Fri 12 Dec 2014 05:25:27 PM UTC, comment #4:

ltfat will installed ok on my 64 bit 3.8.2 with it moved.

I believe quaterian, fuzzy logic installed ok on 64 bit 3.8.2 without the change.

I was going to do a new install just to make sure.

The image odepkg, fl-core, netcdf packages now have a different problem.

John Donoghue <lostbard>
Project Member
Fri 12 Dec 2014 04:43:29 PM UTC, comment #3:

The idea was taken from the thread post mentioned in "original submission" below, the poster in that thread gave no further info. I'm not proficient in C++ so there's undoubtedly room for improvement.

The changeset did make a difference around October; it allowed to install a few OF packages [*] that didn't without this patch. But yes, in recent MXE builds it doesn't seem to be make a difference anymore (the OF packages in question do install without it now).
Whether that is due to a newer mingw/gcc?

Does your change (moving it up & include <cstdint> help to get OF image, odepkg, fl-core, ltfat and netcdf installed? That would be awesome. I can only try it here much later tonight or tomorrow.

[*] (see Task #13313, orig. subm.) data-smoothing, fuzzy-logic, optim and quaternion

Philip Nienhuis <philipnienhuis>
Project Member
Fri 12 Dec 2014 02:23:00 PM UTC, comment #2:

Changeset does not appear to work for me.
In mxarray.in.h, mwSize,mwIndex and mmwSignedIndex are typedefed to int64_t when in 64 bit mode.

But the #include <stdint.h> is below that.

If the include is added just before the typedefs for mwSize, then it appears to work ok for me.

It should also probally be <cstdint> rather than <stdint.h> ?

John Donoghue <lostbard>
Project Member
Sun 28 Sep 2014 03:18:35 PM UTC, comment #1:

Here's a changeset

(file #32193)

Philip Nienhuis <philipnienhuis>
Project Member
Sun 28 Sep 2014 03:16:49 PM UTC, original submission:

See this thread:
http://octave.1599824.n4.nabble.com/MXE-mingw-quot-unknown-type-name-int64-t-quot-with-enable-64-when-compiling-mex-files-tt4666187.html

In this thread "Rafael" suggested a fix that helps to get more OF packages to install on Octave built with --enable-64.
I tried the fix in the last weeks; AFAICS it doesn't have adverse effects on Octave on 32- and 64 bit Linux and Windows, and indeed helps to get more OF packages building on 64-bit MinGW Octave.

I'll upload the changeset in a next post.

Philip Nienhuis <philipnienhuis>
Project Member

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

Attached Files
file #32193:  mxarray_h_in.cs added by philipnienhuis (596B - text/x-csharp)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by lostbard (Posted a comment)
  • -unavailable- added by philipnienhuis (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only project members can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 4 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Thu 19 Mar 2015 09:40:33 PM UTCphilipnienhuisStatusPatch Submitted=>Fixed
      Open/ClosedOpen=>Closed
    Sun 28 Sep 2014 03:18:35 PM UTCphilipnienhuisAttached File-=>Added mxarray_h_in.cs, #32193
      StatusNone=>Patch Submitted

    Back to the top


    Powered by Savane 3.1-cleanup1