[Ipopt] Compilation problem with gcc-4.8.3 (Fedora 20)

Stefan Vigerske stefan at math.hu-berlin.de
Fri Jul 18 11:37:49 EDT 2014


Hi,

the HSL buildsystem has been adapted to work with the new HSL code 
download (HSL for Ipopt).
This has been documented in the release notes for Ipopt 3.11, in the 
Ipopt documentation, and in the INSTALL.HSL file in ThirdParty/HSL.
ThirdParty/HSLold is the old buildsystem that still works with the old 
HSL code downloads.
If you put the old HSL code into the new ThirdParty/HSL, it will just be 
ignored, so you have build your Ipopt without any linear solver, so the 
tests did not work.

Ipopt/trunk may have a workaround for the issue with rand() and gcc 
4.8.3. It needs someone to confirm that it will work.

Stefan

On 07/18/2014 05:20 PM, fmargot wrote:
> Hi:
>
> On 07/18/2014 09:59 AM, Stefan Vigerske wrote:
>> Hi,
>>
>> On 07/17/2014 08:15 PM, fmargot wrote:
>>> Hi:
>>>
>>> Using an out-of-the-box copy of Ipopt/stable/3.9 and compiling with ASL,
>>> HSL in ThirdParty and the system Lapack and Blas libraries, I have to
>>> add
>>>
>>> #include <cstddef>
>>>
>>> on top of IpSmartPtr.hpp and IpTripletToCSRConverter.cpp, otherwise NULL
>>> is not declared.
>>
>> Ipopt 3.9 is no longer maintained.
>> Please use a recent Ipopt 3.11 system.
>>
>
> Sorry, my mistake, I thought I was using the latest stable version. I used
>
> svn list https://projects.coin-or.org/svn/Ipopt/stable
>
> and did not notice that 3.11 was listed before 3.9 ...
>
>>> There is also a problem with detection of rand (that
>>> exists on the system). The configure script is unable to find it, but if
>>> I add
>>>
>>> #define HAVE_STD__RAND
>>>
>>> on top of IpUtils.cpp
>>
>> Yes, that is an issue that recently came up and has been discussed on
>> this list and various tickets in the bugtracking system.
>> The issue is that gcc 4.8.3 gives an error for some test generated by
>> configure, where previous and later gcc versions just gave a warning.
>>
>>> everything compiles using "make" and "make install". The directories lib
>>> and include are created (I am using a VPATH configuration), but not bin.
>>> The executable ipopt is nowhere to be found. On the other hand, "make
>>> test" works fine, claiming that all tests were passed successfully.
>>
>> Did you get ASL?
>
> Yes, I did.
>
> I just downloaded stable/3.11 and the same behavior is observed:
>
> ---------------
> ../../../../Ipopt/src/Common/IpUtils.cpp:178:5: error: #error "don't
> have function for random number generator"
>   #   error "don't have function for random number generator"
>       ^
> ../../../../Ipopt/src/Common/IpUtils.cpp:195:5: error: #error "don't
> have function for random number generator"
>   #   error "don't have function for random number generator"
>       ^
> ../../../../Ipopt/src/Common/IpUtils.cpp: In function 'Ipopt::Number
> Ipopt::IpRandom01()':
> ../../../../Ipopt/src/Common/IpUtils.cpp:182:3: warning: no return
> statement in function returning non-void [-Wreturn-type]
> --------------
>
> After adding
>
> #define HAVE_STD__RAND
>
> in IpUtils.cpp, the code compiles, but "make test" gives an error,
> claiming that ma27 is not available:
>
> ---------------
> Exception of type: OPTION_INVALID in file
> "../../../../Ipopt/src/Algorithm/IpAlgBuilder.cpp" at line 321:
>   Exception message: Selected linear solver MA27 not available.
> Tried to obtain MA27 from shared library "libhsl.so", but the following
> error occured:
> libhsl.so: cannot open shared object file: No such file or directory
>
> EXIT: Invalid option encountered.
>
> ---------------
> Yet, both ma27ad.f and mc19ad.f are in ThirdParty/HSL.The output of
> configure related to HSL is:
>
> --------------
> checking whether source of project HSL is available and should be
> compiled... no, source file ../ThirdParty/HSL/coinhsl/common/deps.f not
> available
> checking whether source of project HSLold is available and should be
> compiled... yes, source in ThirdParty/HSLold
> -------------
>
> There might be a bug in the configure script here. Moving ma27ad.f and
> mc19ad.f from HSL to HSLold makes it work.
>
> Best
>
> Francois
>



More information about the Ipopt mailing list