bugGNU Octave - Bugs: bug #54255, [octave forge] (gsl) package fails...


bug #54255: [octave forge] (gsl) package fails to cross compile with mxe-octave

Submitted by:  John W. Eaton <jwe>
Submitted on:  Fri 06 Jul 2018 02:07:35 PM UTC  
Category:  Octave Forge Package Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Build Failure
Status:  Patch Submitted Assigned to:  None
Originator Name:  jwe Open/Closed:  Open
Release:  dev Operating System:  Other

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)

Fri 06 Jul 2018 04:53:00 PM UTC, comment #9:

Yes, it would be great to start fixing this problem. A new bug report would probably be best. If needed, also open a discussion on the mailing list.

John W. Eaton <jwe>
Project Administrator
Fri 06 Jul 2018 04:38:53 PM UTC, comment #8:

There are a few things that Octave Forge packages need to get from Octave itself that mkoctfile doesn't currently allow a way to query. This has come up before, I think with Octave 4.0, but hasn't been addressed yet. I think it would be great to allow all Octave Forge packages to cross compile without the need to call Octave at build time, just rely on the cross-mkoctfile executable. Should we start a separate tracker for that? Start a thread on the maintainers list? Can I start by crawling through all the Forge packages and finding out what those things are and why they are needed?

Mike Miller <mtmiller>
Project Administrator
Fri 06 Jul 2018 04:25:41 PM UTC, comment #7:

changeset for gsl repo

(file #44516)

John Donoghue <lostbard>
Project Member
Fri 06 Jul 2018 04:13:08 PM UTC, comment #6:

Thanks for the quick fix!

John W. Eaton <jwe>
Project Administrator
Fri 06 Jul 2018 04:07:23 PM UTC, comment #5:

Pushed http://hg.octave.org/mxe-octave/rev/90af5a37a76e

I will also attach a change set on this ticket that can be applied to the gsl package repo if the maintainers want to use it

John Donoghue <lostbard>
Project Member
Fri 06 Jul 2018 03:45:59 PM UTC, comment #4:

Sure, if you can easily fix it so that it works.

Longer term, I would like to update and simplify the way these packages are configured and built. Looking at gsl, it is really complicated by having scripts to generate the configure.ac file. I don't see why that should be necessary. Any repetitive things that need to be done could be handled by m4 macros or just in the configure script itself since both of those are programming languages.

I understand that changes in Octave's internals causes some trouble. Maybe there are ways we could make it easier for packages to determine what Octave features are available. OTOH, building a current package for a 10-year old version of Octave makes little sense to me. So I don't believe we need to make packages compatible with more than a few previous major releases of Octave.

John W. Eaton <jwe>
Project Administrator
Fri 06 Jul 2018 02:57:36 PM UTC, comment #3:

Most of the others currently are already patched to cross compile in mxe of-XXXXXX-cross.patch

gsl would be easy enough to do, so I can take a look at if you want.

statistics is another one that needs octave as it currently stands to determine which functions it needs to install.

John Donoghue <lostbard>
Project Member
Fri 06 Jul 2018 02:51:24 PM UTC, comment #2:

Yes, definitely.

Meanwhile, what's the best way forward to get these packages to build for the upcoming 4.4.1 release?

John W. Eaton <jwe>
Project Administrator
Fri 06 Jul 2018 02:43:06 PM UTC, comment #1:

Theres a number of packages that are currently relying on getting features from octave by running octave.

Likewise there are also a few that reply on make's 'OS' variable rather than getting the destination host in a cross compiler firendly way.

Perhaps we should document somewhere on discouraging the use of octave in makefilesas well as other good vs to be avoided practices.

John Donoghue <lostbard>
Project Member
Fri 06 Jul 2018 02:07:35 PM UTC, original submission:

Cross compiling the mxe-octave of-gsl package for Windows fails with the following error message:

The configure test is written as

We can't run the cross-built Octave in this situation. If some version of Octave that we can run is installed, then it will give information about the build system, not the host system that we are interested in.

Instead, we could use $MKOCTFILE here to compile C and C++ files. It is already set up to look in the Octave include directory, and the mxe-octve build system sets the MKOCTFILE variable to the name of the cross version of mkoctfile (in my case, "i686-w64-mingw32-mkoctfile". If you do need info about the host system, you can also get it from running this version of mkoctfile.

John W. Eaton <jwe>
Project Administrator


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

Attach Files:

Attached Files
file #44516:  gsl_cross_detect_changes.patch added by lostbard (3KiB - application/octet-stream)


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -email is unavailable- added by mtmiller (Posted a comment)
  • -email is unavailable- added by lostbard (Posted a comment)
  • -email is unavailable- added by jwe (Submitted the item)

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

    Only project members can vote.




    Follow 2 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2018-07-11 lostbard StatusNone => Patch Submitted
    2018-07-06 lostbard Attached File- => Added gsl_cross_detect_changes.patch, #44516

    Back to the top

    Powered by Savane 3.4