[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Octave-bug-tracker] [bug #55787] Old .mex file (e.g. ver4.4) crashes ne
From: |
Mike Miller |
Subject: |
[Octave-bug-tracker] [bug #55787] Old .mex file (e.g. ver4.4) crashes new Octave |
Date: |
Tue, 26 Feb 2019 18:45:26 -0500 (EST) |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36 |
Update of bug #55787 (project octave):
Severity: 3 - Normal => 2 - Minor
Priority: 5 - Normal => 3 - Low
Status: None => Need Info
_______________________________________________________
Follow-up Comment #1:
Thanks for your bug report. I can sort of reproduce this, Octave does not
crash for me, but it does SIGABRT when exiting due to an invalid pointer.
I think the main problem here is that the .mex file from Octave 4.4 is linked
against liboctave and liboctinterp from Octave 4.4. This was due to the build
instructions that were hard coded into the mkoctfile program that always built
with "-loctinterp -loctave". This forces Octave 5 to load the Octave 4.4
libraries when the mex file is loaded, causing conflicts.
This is fixed in Octave 5 to not link against those libraries now, since they
are not normally needed when building an extension or plugin type shared
object that will be dlopen'd by Octave.
There is no way to override these options in Octave 4.4, so the only way you
can test that this fixes it for you is to do something like this
$ cmds=$(mkoctfile-4.4.1 --mex --verbose hello.c)
$ eval "$(echo "$cmds" | sed 's/ -loctinterp -loctave//')"
That will build a mex file with Octave 4.4, but without the hard links to its
libraries. Can you test that and see whether you can run the resulting mex
file in Octave 5 or 6 without the same crash or error? Thanks.
If that works for you, then we can call this fixed in Octave 5 already.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?55787>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/