= 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 OsX, care must be taken regarding Fortran compiler''', see [https://projects.coin-or.org/Bonmin/wiki/OsxInstall the Bonmin OsX install page]. * 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 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 is unable to find the symbol {{{glp_lpx_simplex}}} when checking for the presence of glpk.''' Glpk has changed its naming convention for API routines. This is normally invisible to users of glpk (who always use {{{lpx_simplex}}} in code). Current COIN configuration tests understand this; the best solution is to upgrade. If that's not convenient, the workaround is to use the configuration flag {{{--disable-glpk-libcheck}}}. If you have the ability to regenerate configuration files, add a leading underscore ('_') to the symbol in relevant {{{configure.ac}}} files. For example, {{{ AC_COIN_HAS_USER_LIBRARY([Glpk],[GLPK],[glpk.h],[glp_lpx_simplex]) }}} becomes {{{ AC_COIN_HAS_USER_LIBRARY([Glpk],[GLPK],[glpk.h],[_glp_lpx_simplex]) }}} The same problem exists with {{{glp_mpl_initialize}}}; the workaround is {{{--disable-gmpl-libcheck}}} or edit {{{configure.ac}}} to look for {{{_glp_mpl_initialize}}}. * '''"./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. == Compilation == * '''On Cygwin, GNU make version 3.81-1 delivered by the default setup program doesn't work''' with the automatic header file dependencies, generated by the compilers. The error message you will see because of this bug will look something like this: {{{ make[2]: Entering directory `/home/andreasw/COIN-svn/OBJgcc-debug/Clp/trunk/Clp/src' .deps/ClpCholeskyBase.Plo:1: *** multiple target patterns. Stop. }}} Here are two suggested fixes: 1. Try to obtain the previous version (3.80); for example, you can download it from [http://cygwin.paracoda.com/release/make/make-3.80-1.tar.bz2 http://cygwin.paracoda.com/release/make/make-3.80-1.tar.bz2]. 1. Obtain a fixed 3.81 version, for example from [http://www.cmake.org/files/cygwin/make.exe http://www.cmake.org/files/cygwin/make.exe]. (See the Cygwin mailing list postings [http://cygwin.com/ml/cygwin/2006-09/msg00315.html http://cygwin.com/ml/cygwin/2006-09/msg00315.html] and [http://cygwin.com/ml/cygwin/2006-09/msg00153.html http://cygwin.com/ml/cygwin/2006-09/msg00153.html]) * '''On AIX, with the xlC compiler''' the CXX flag -qrtti has been needed. {{{ ./configure ADD_CXXFLAGS="-qrtti" }}} * '''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 [https://projects.coin-or.org/BuildTools/attachment/wiki/current-issues/libstdc%2B%2B.la?format=raw fixed one]. This currently affects only the unit test of Ipopt (as far as I know). == Execution == * '''--omit-frame-pointer leads to failure of C++ throw''' for some GCC compiler versions (GCC 3.3, 3.4, and 4.0.2, for example). Suggested solutions: 1. If possible, upgrade to a GCC version which does not have this problem. GCC 4.1.1 is known to work correctly in many environments. 1. Use the variables OPT_CXXFLAGS, OPT_CFLAGS, and OPT_FFLAGS to override the default optimisation options when executing {{{configure}}}. To determine the correct set of options, look for the string {{{omit-frame-pointer}}} in !BuildTools/coin.m4. Currently (06.10.20), adding {{{ OPT_CXXFLAGS="-O3" OPT_CFLAGS="-O3" OPT_FFLAGS="-O3" }}} to the command line options for {{{configure}}} should do the trick. 1. It is also worth to try the flags {{{ OPT_CXXFLAGS="-O2 -fno-omit-frame-pointer -momit-leaf-frame-pointer -DNDEBUG }}} * '''Ampl Solver Library crashes with new GNU compiler''' (e.g., version 4.4.1), it segfaults in la_replace, see Ipopt ticket https://projects.coin-or.org/Ipopt/ticket/118. Solution is to use an older compiler.