Skip to content
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

make test fails for examples/hs071_cpp #395

Closed
renjiefly opened this issue Aug 24, 2020 · 5 comments
Closed

make test fails for examples/hs071_cpp #395

renjiefly opened this issue Aug 24, 2020 · 5 comments

Comments

@renjiefly
Copy link

Hi, I am using the latest Ipopt 3.13.3 on Ubuntu 18.04 and followed the install instruction from https://coin-or.github.io/Ipopt/INSTALL.html. Everything went well (install dependencies like HSL and MUMPS using ThirdParty-HSL and ThirdParty-Mumps, etc. BTW, I am using HSL Archive so ma57 is not included) until I ran
make test in my $IPOPTDIR. The error message is like this:

...
make[1]: Leaving directory '/home/renjie/codes/Ipopt'
cd test; make test
make[1]: Entering directory '/home/renjie/codes/Ipopt/test'
CXXLD hs071_cpp
../src/Interfaces/.libs/libipopt.so: undefined reference to ma57ed_' ../src/Interfaces/.libs/libipopt.so: undefined reference to ma57cd_'
../src/Interfaces/.libs/libipopt.so: undefined reference to ma57ad_' ../src/Interfaces/.libs/libipopt.so: undefined reference to ma57id_'
../src/Interfaces/.libs/libipopt.so: undefined reference to `ma57bd_'
collect2: error: ld returned 1 exit status
Makefile:488: recipe for target 'hs071_cpp' failed
make[1]: *** [hs071_cpp] Error 1
make[1]: Leaving directory '/home/renjie/codes/Ipopt/test'
Makefile:852: recipe for target 'unitTest' failed
make: *** [unitTest] Error 2

The thing confuses me is that the default linear-solver is ma27, why the compiler would try to find 'ma57xx' when compiling the example. Here is my config.log. Would be grateful if anyone can help.

@svigerske
Copy link
Member

I have some idea what might be the problem.
Try using --disable-linear-solver-loader for Ipopt's configure to work around that.

@renjiefly
Copy link
Author

I have some idea what might be the problem.
Try using --disable-linear-solver-loader for Ipopt's configure to work around that.

@svigerske Thanks for your extremetely quick reply! The --disable-linear-solver-loader option indeed solves the problem. So what do you think the problem is?

@svigerske
Copy link
Member

The MA57 interface assumes that the MA57 functions will be named with underscore (e.g., ma57ed_), because that's how the other HSL functions in your HSL lib are named, but the linear solver loader defines the MA57 functions without underscore (e.g., ma57ed). Only if no HSL is around at all, then the MA57 interface will use the same name convention as the linear solver loader. And if the linear solver loader is disabled and MA57 is not available, then the MA57 interface doesn't get build at all (which is what you get now).

@renjiefly
Copy link
Author

The MA57 interface assumes that the MA57 functions will be named with underscore (e.g., ma57ed_), because that's how the other HSL functions in your HSL lib are named, but the linear solver loader defines the MA57 functions without underscore (e.g., ma57ed). Only if no HSL is around at all, then the MA57 interface will use the same name convention as the linear solver loader. And if the linear solver loader is disabled and MA57 is not available, then the MA57 interface doesn't get build at all (which is what you get now).

So is this some potential bug regarding the linear solver loader? I'm afraind someone else would run into the same problem if they also use HSL Archive.

@svigerske
Copy link
Member

yes, that's something that should be fixed; that's why the issue is still open :)

svigerske added a commit that referenced this issue Aug 24, 2020
- ... if HSL lib is available (but might miss MA27, MA57, or MC19)
- thus be consistent with naming convention expected by MA27, MA57, MC19
  interfaces
- closes #395
svigerske added a commit that referenced this issue Aug 24, 2020
- ... if HSL lib is available (but might miss MA27, MA57, or MC19)
- thus be consistent with naming convention expected by MA27, MA57, MC19
  interfaces
- closes #395
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants