[Ipopt] Compiling IPOPT with MUMPS on OSX

Dominique Orban dominique.orban at gmail.com
Thu Oct 17 12:49:09 EDT 2013


Many thanks to Tony Kelman for putting me on track. All that was needed is build a dynamic MUMPS library. Now all MUMPS and IPOPT tests pass!

I will finalize the Homebrew formulae and submit pull requests to the Homebrew/Science tap. Once both MUMPS and IPOPT are in there, users will be able to install a fully open-source IPOPT with the command

	brew install ipopt

Cheers!

Dominique


On 2013-10-16, at 9:01 PM, Tony Kelman <kelman at berkeley.edu> wrote:

> Do you need Ipopt to be a dynamic library in the end, or would a static library be good enough? It seems like Mumps is trying to link to a static library... does that Mumps build come from Homebrew as well? I'm not very familiar with Homebrew, but if you give me a few steps to follow I could try running through it on my OSX VM and attempt to figure out what's happening.
> 
> -Tony
> 
> 
> -----Original Message----- From: Dominique Orban
> Sent: Wednesday, October 16, 2013 3:56 PM
> To: ipopt at list.coin-or.org
> Subject: [Ipopt] Compiling IPOPT with MUMPS on OSX
> 
> I'm trying to get IPOPT to work with MUMPS on OSX 10.8.4. My end goal is to provide a formula so OSX users can easily install and run IPOPT on OSX by way of the Homebrew [1] package manager (http://brew.sh).  Because of this, downloading the MUMPS source code in Thirdparty/Mumps isn't an option.
> 
> My MUMPS builds correctly and all tests pass.
> 
> IPOPT appears to build correctly, but every test fails with the following error:
> 
> dyld: lazy symbol binding failed: Symbol not found: _dmumps_c
> Referenced from: /tmp/Ipopt-3.11.4/Ipopt/src/Interfaces/.libs/libipopt.1.dylib
> Expected in: flat namespace
> 
> MUMPS' C-interface test passes so I'm not sure why the linker can't find the symbol _dmumps_c in the MUMPS library when building the IPOPT test case. The symbol is there:
> 
> /usr/local/Cellar/mumps/4.10.0/lib/libdmumps.a(dmumps_c.o):
> 0000000000000000 T _dmumps_c
> 
> My configure command is as follows:
> 
> ./configure --prefix=/tmp/ipopt_install \
>           --with-mumps-incdir=/usr/local/Cellar/mumps/4.10.0/include \
>           --with-mumps-lib="-L/usr/local/Cellar/mumps/4.10.0/lib -lmpi_cxx -ldmumps -lmumps_common -lpord"
> 
> I have tried building with clang/clang++, gcc/g++ and mpicc/mpic++. The tests always fail in the same way.
> 
> I tried recompiling MUMPS with `-flat_namespace`. The MUMPS tests pass but the IPOPT tests always fail in the same way.
> 
> I haven't been able to use the compilation hints found on the IPOPT website to resolve the issue.
> 
> Thanks for any help.
> 
> Dominique
> 
> 
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt 








More information about the Ipopt mailing list