Fri 13 Jan 2017 05:45:27 PM UTC, comment #1:
@Kai: Your analysis is correct. There should be '(' and ')' around "expr". Go ahead and make a changeset for stable.
As for why MxAssert is getting compiled in, either there is a '-g' being added (maybe from the user's own CFLAGS?) or someone is defining "-DMEX_DEBUG". My guess is the former. To debug, try
The code in mkoctfile.cc is looking for '-g' somewhere in ALL_CFLAGS to indicated debug mode. Maybe there is something like "optionabc-gxyz" and the '-g' is being found in the middle of a word. Maybe the search should be for ' -g' with a space in front.
|
Fri 13 Jan 2017 04:54:33 PM UTC, original submission:
The SeDuMi bug tracker filed a bug https://github.com/sqlp/sedumi/issues/24 that seems to be more an issue of Octave. I assume the source of the error to lie inside the if statement of lines 311 and 328 in http://hg.savannah.gnu.org/hgweb/octave/file/tip/libinterp/corefcn/mexproto.h
namely
I created the following MCVE mex file to check my assumption. Basically, it does the same as the erroneous file from the SeDuMi-Tracker, namely checking that there is at least one input and at most one output:
Matlab R2016b does:
and Octave 4.2.0:
Do you agree, that the Macros expand in a wrong fashion?
My suggested fix is
in the two lines, what works for me. I would also like to apply this patch to stable for 4.2.1.
Another issue is, that why is mxAssert expanded anyways? I thought it was only available with "mex -g", but SeDuMi compiles without "-g". Maybe another bug?
|