[Ipopt] 3.13.2 with binary coinhsl and Java interface reports libhsl.so: undefined symbol: dtrsm_

Stefan Vigerske svigerske at gams.com
Wed Jun 24 03:46:25 EDT 2020


Hi,

probably the HSL library was not linked against Blas, so it is missing 
some symbols.
If you cannot fix the library, then you could try if it works better 
when changing dlopen(libName, RTLD_NOW) to dlopen(libName, RTLD_NOW | 
RTLD_GLOBAL) in Ipopt's src/contrib/LinearSolverLoader/LibraryHandler.c

But the --with-hsl that you specified is not working as you might have 
intended. It expects the linker flags to use for linking against an HSL 
library, so probably something like
   --with-hsl="-lcoinhsl -llapack -lblas"
In your build, Ipopt's configure concluded that it doesn't have HSL for 
the build and also no other linear solver, so it tries to load MA27 from 
a library libhsl.so at runtime.

Stefan


On 6/24/20 6:21 AM, Greg Kopff wrote:
> Hi.
> 
> I run on Centos 7.6.
> 
> I have a binary distribution of the coinhsl (coinhsl-linux-x86_64-2015.06.23).  Following the coinhsl instructions, I placed the relevant files in /usr/local/lib and /usr/local/include.  I created a file named 'coin-hsl-usr-local-lib.conf' in /etc/ld.so.conf.d/.  The file contains the path /usr/local/lib.  I then ran ldconfig.  I can see that ldconfig knows about libcoinhsl:
> 
>    # ldconfig -p | grep coin
>        libcoinhsl.so.0 (libc6,x86-64) => /usr/local/lib/libcoinhsl.so.0
>        libcoinhsl.so (libc6,x86-64) => /usr/local/lib/libcoinhsl.so
> 
> I then also symlinked libcoinhsl.so.0.0.0 as libhsl.so.
> 
> I have downloaded Ipopt 3.12.2.  I configured it with:
> 
>    ./configure --prefix=/usr/local/ipopt/3.13.2/install --with-hsl
> 
> I run 'make', and it builds successfully.
> 
> I run 'make test', and all the tests pass, except for the Java tests.  The Java test fails with:
> 
>     ---- 8< ---- Start of test program output ---- 8< ----
>    Exception of type: OPTION_INVALID in file "IpAlgBuilder.cpp" at line 268:
>     Exception message: Selected linear solver MA27 not available.
>    Tried to obtain MA27 from shared library "libhsl.so", but the following error occured:
>    /usr/local/lib/libhsl.so: undefined symbol: dtrsm_
> 
>    EXIT: Invalid option encountered.
> 
> If I run the compiled C test manually, I can see that the C program found and used ma27 successfully:
> 
>    This is Ipopt version 3.13.2, running with linear solver ma27.
> 
> Unfortunately, it's the Java interface to Ipopt I'm interested in.  I am running it using Java 11.
> 
> Can anyone shed some light on why the Java execution fails, and how to fix it?
> 
> Thank you.
> 
>> Greg
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> https://list.coin-or.org/mailman/listinfo/ipopt
> 



More information about the Ipopt mailing list