wiki:current-issues
close Warning: Error with navigation contributor "AccountModule"

Current Issues

Configuration

  • Under cygwin with Intel 11 compilers, the intel compiler might pick up the wrong link.exe, which results in failures setting up the FFLAGS and in failures when linking a binary. You can tell the Intel compilers where to find the right link.exe by editing the files icl.cfg and/or ifort.cfg in the Intel compiler installation. The line to add is of the form
      -Qlocation,link,"C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\Bin"
    
  • On MacOS X, care must be taken regarding the Fortran compiler. The HPC Mac OS X page and MacPorts may offer GNU Fortran compiler.
  • On MacOS X, if you use the Intel 10 compilers and build static (or debug) libraries, it is wise to set F77 to "ifort -shared-intel" to avoid later problems when COIN-OR libraries are linked to each other.
  • On MacOS X 10.5, you should use
      ADD_CXXFLAGS="-mmacosx-version-min=10.4" ADD_CFLAGS="-mmacosx-version-min=10.4" ADD_FFLAGS="-mmacosx-version-min=10.4"
    
    This helps to get around a problem with the Ampl Solver Library (ASL) and in the recoginition of the FLIBS (in case gfortran is used). This flag avoids undefined references to something with an $UNIX2003 attached, see also http://developer.apple.com/releasenotes/Darwin/SymbolVariantsRelNotes/index.html
  • On MacOS X 10.5, if you get failures when running the code due to lazy symbol binding, try to rebuild everything with LDFLAGS="-flat_namespace". However, this solution might fail too.
  • On MacOS X 10.6, it is sufficient to add to the configure command
      ADD_FFLAGS="-mmacosx-version-min=10.4"
    
    Do not ADD_CXXFLAGS="-mmacosx-version-min=10.4" or you will have problems with try catch causing ABORT TRAP errors. If you are going to compile with ASL you should also try to build static libs by adding
       --enable-static --disable-shared
    
  • "./configure: line 20: $'\r': command not found" error on Cygwin. If you see an error like this on Cygwin, it means that your setting for Cygwin is such that the native text style is "Windows" and not "Unix". As a consequence, the configure and other shell scripts have Window-style line end characters, which cannot be digested properly by the shell. As a work-around, you can run the "dos2unix" program to correct all failing shell scripts (e.g., by typing "dos2unix configure"). In the long run, we will change the subversion properties for those files to avoid this problem, but it might take some time until all files have been corrected.
  • When using MinGW and Msys, you may see failures that really leave you scratching your head. Before you tear your hair out, check your PATH. Both Windows and MinGW/Msys define some common utilities: find, link, and sort. Unfortunately, the Windows versions are completely incompatible with the unix versions. Make sure that the MinGW/Msys command (bin) directories come before the Windows command directories in your PATH! Both the configure and libtool shell scripts can fail if this is not true. If you're trying to build with Windows cl and link (you can see the problem coming eh?) make sure that the Visual Studio command directories precede the MinGW/Msys command directories, which in turn must still precede the Windows command directories. Unix link is not helpful for linking programs!
  • On AIX configure runs considerably faster if bash is installed and the environment variable CONFIG_SHELL points to it. For ksh or bash use
      CONFIG_SHELL=/usr/bin/bash ; export CONFIG_SHELL
    
    or if you use tcsh then
      setenv CONFIG_SHELL "/usr/bin/bash"
    
    before running configure.
  • In Windows, the CPLEX library link check in configure may fail because the CPLEX dll is not found (configure fails with the error: "Cannot find symbol CPXgetstat with CPX"). Running configure with the option --disable-cplex-libcheck disables this check.
    Just remember to have the CPLEX dll in the path and the ILOG_LICENSE_FILE system variable pointing to the CPLEX license file when executing binaries.

Compilation

  • On AIX, with the xlC compiler the CXX flag -qrtti has been needed.
    ./configure ADD_CXXFLAGS="-qrtti"
    
    Some projects (SYMPHONY) need an addtional flag for ADD_CXXFLAGS of -qsourcetype=c++. configure should be run with ADD_CXXFLAGS="-qsourcetype=c++ -qrtti". This is because the C++ source files in these projects have the suffix c (not cpp).

  • On P-Series(ppc64) running Linux(Red Hat 4.1.1-52) with gcc(V 4.1.1 20070105) ThirdParty/ASL has compile time errors.
    fpinit.c: In function 'fpinit_ASL':
    fpinit.c:123: error: '_FPU_EXTENDED' undeclared (first use in this function)
    fpinit.c:123: error: (Each undeclared identifier is reported only once
    fpinit.c:123: error: for each function it appears in.)
    fpinit.c:123: error: '_FPU_DOUBLE' undeclared (first use in this function)
    
    A suggested work around is to specify ADD_CFLAGS="-DNO_fpu_control" when running configure.
    ./configure -C ADD_CFLAGS="-DNO_fpu_control"
    
  • In Microsoft Windows, using the MinGW gcc compiler version 4.2.1 under Msys, you cannot successfully link with -lstdc++ because of a buggy .la file. To fix, replace the file MinGW/lib/gcc/mingw32/4.2.1-sjlj/libstdc++.la with this fixed one. This currently affects only the unit test of Ipopt (as far as I know).
  • When using MinGW and Msys, you may see failures that really leave you scratching your head. See the entry under configuration. During build, the failure is due to libtool finding Windows sort instead of unix sort.
  • When compiling with Intel compilers, it can be advantageous to add the compiler flag -mp1 (ADD_CXXFLAGS=-mp1). This disables some optimization, but improves floating point accuracy. In my case it helped to make (x == 0./0.) return false if x is not nan.
  • If compiling with Intel 9.0 compilers fails with the message internal error: backend signals, it can help to add the compiler flag -Qipo- (ADD_CXXFLAGS=-Qipo-). This disables some optimization, but allows compilation.
  • GCC 3.3.5 seem to have some bug in its optimization routines regarding the omission of frame pointers. What seem to work is OPT_CXXFLAGS="-O3 -fno-omit-frame-pointer -momit-leaf-frame-pointer -DNDEBUG"
  • When compiling on gcc/g++ where the machine word size/pointer size is the same as long long only (e.g. MinGW gcc for 64 bit Windows), the compiler may abort with an "ISO C++ 1998 does not support 'long long'" error for some files. This seem to be because of the -pedantic-errors flag used with the compilation. To work around this, add -Wno-long-long to your ADD_CXXFLAGS.

Execution

Last modified 9 years ago Last modified on Feb 19, 2011 10:16:00 AM

Attachments (1)

Download all attachments as: .zip