-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ipopt build failing with MinGW due to redefinition _matherr
#78
Comments
Thanks for the bug report. What error do you get? https://ci.appveyor.com/project/tkralphs/ipopt/build/job/m801jlcxs631phl3 points to the latest build which is "Reverting r2646" now and I don't see any output there. I tried looking at earlier builds but couldn't find the error you are referring to. |
Hmm, I guess this URL should work better: https://ci.appveyor.com/project/tkralphs/ipopt/build/1.0.23/job/m801jlcxs631phl3 The exact error is on line 3646 in the output. Here is a snippet of the link line and error:
I guess that your definition of |
The log suggests that GCC 5.3.0 is used:
Is it correct?
#ifdef __GNUC__
#if (__GNUC__ >= 4 && __GNUC_MINOR__ >= 5) || __GNUC__ >= 5
#undef NO_matherr
#define NO_matherr
#endif
#endif and #ifndef NO_matherr
#ifdef __MINGW32__
#define matherr _matherr
#endif
matherr_rettype
matherr( struct _exception *e )
{
switch(e->type) {
case _DOMAIN:
case _SING:
errno = set_errno(EDOM);
break;
case _TLOSS:
case _OVERFLOW:
errno = set_errno(ERANGE);
}
return 0;
}
#endif /*NO_matherr*/ Note that the GCC 5 check was introduced in 40c1f7f, so make sure that you use a newer version. |
Ah, OK, I see. There was a bug in the version check, which was fixed by 40c1f7f, as you pointed out, but I guess this commit was never merged to the 2.0 branch, so release 2.0.3 doesn't have it: https://github.com/ampl/mp/blob/2.0.3/src/asl/solvers/fpinitmt.c#L214 2.0.3 is the most recent release as far as I can see. What is your development scheme? Are you working in master and periodically merging fixes over to stable (2.0 at the moment), then making releases from there? Is what is in master still version 2.0.* or will it eventually become 2.1 or 3.0? In any case, if you could merge that commit to 2.0 and then make a release 2.0.4, that would be helpful. Actually, even nicer would be to make a release 1.3.1 with the same fix, since |
The master will become 3.0 which I plan to release after fixing some issues with the docs. Regarding the 2.0 branch, I've been only merging critical fixes there myself, but there were contributed PRs specifically for this branch. Since this is a critical issue I'm going to cherry pick 40c1f7f into 2.0 and release 2.0.4 as you suggest. I'd rather not bother with 1.x release unless it's really important. |
OK, I will live with getting a 2.0.4 and will see if we can bump the ASL version without making a new stable. Thanks! |
And now with the correct version: https://github.com/ampl/mp/releases/tag/2.0.4 |
It looks like a fix you originally had in for MinGW is no longer needed as of MinGW gcc 5.3.0 (and perhaps earlier). The
Ipopt
build fails with redefinition of_matherr
because ofFor output, see
https://ci.appveyor.com/project/tkralphs/ipopt/build/job/m801jlcxs631phl3
For now, I added a patch to the ASL project project on COIN-OR. This allows the build to go through locally, but the build on Appveyor is still running
The text was updated successfully, but these errors were encountered: