Changes between Version 4 and Version 5 of user-troubleshooting


Ignore:
Timestamp:
Oct 6, 2006 2:21:52 PM (15 years ago)
Author:
andreasw
Comment:

added more detailed description on how to read the config.log files

Legend:

Unmodified
Added
Removed
Modified
  • user-troubleshooting

    v4 v5  
    11= Troubleshooting =
    22
    3 First a plea to be considerate:  The project managers for the packages provided on COIN try to make the usage of their code easy and will try to help in case you run into problems.  However, before contacting the project manager (via the project's mailing list or by submitting a trouble ticket), '''please make sure you carefully read and followed the instructions''' given on the project's home page and on these wiki pages for [http://projects.coin-or.org/BuildTools BuildTools].
     3The very first thing to do is have a look at the [wiki:current-issues current issues page] and see if your problem is known and if workarounds are posted there.
     4
     5The next is a plea to be considerate:  The project managers for the packages provided on COIN try to make the usage of their code easy and will try to help in case you run into problems.  However, before contacting the project manager (via the project's mailing list or by submitting a trouble ticket), '''please make sure you carefully read and followed the instructions''' given on the project's home page and on these wiki pages for [http://projects.coin-or.org/BuildTools BuildTools].
    46
    57== Problems During Downloading ==
    68
    7 If you want to use subversion from the command line (with the {{{svn}}} program), you need to make sure that you have a version of {{{svn}}} ''that is able to use the SSL layer'' and is able to connect to {{{https://...}}} URLs.  You can find out if your version of {{{svn}}} supports this by typing {{{svn --version}}}.  If it says "{{{handles 'https' scheme}}}," you are fine.  Otherwise, you need to obtain a different version, or compile the {{{svn}}} executable yourself.  In that case, make sure you specify {{{--with-ssl}}} when you run {{{configure}}} for subversion.  For information on how to obtain subversion, click [wiki:user-download here]. ''Note: We are successfully using '''subversion version 1.3.1''' to download the code; older versions might not work properly.''
     9If you want to use subversion from the command line (with the {{{svn}}} program), you need to '''make sure that you have a version of {{{svn}}} that is able to use the SSL layer''', i.e., that it is able to connect to {{{https://...}}} URLs.  You can find out if your version of {{{svn}}} supports this by typing {{{svn --version}}}.  If it says "{{{handles 'https' scheme}}}," you are fine.  Otherwise, you need to obtain a different version, or compile the {{{svn}}} executable yourself.  In that case, make sure you specify {{{--with-ssl}}} when you run {{{configure}}} for subversion.  For information on how to obtain subversion, click [wiki:user-download here]. ''Note: We are successfully using '''subversion version 1.3.1''' to download the code; older versions might not work properly.''
    810
    911For most of the COIN projects, we use the {{{externals}}} feature of subversion, which allows us to get the correct version for all dependencies for each project.  You might noticed that this slows the downloading down a bit; you just need to be patient ;)
     
    1315If you run {{{configure}}} and it doesn't complete with "{{{configuration of XXX successfull}}}", something went wrong.  There is no point in trying to do a {{{make}}} anyway, since the Makefiles will not have been created yet.  Make sure you read the [wiki:user-configure Preparing the compilation] information provided in these wiki pages.
    1416
    15 If you still run into trouble, the screen output or the output files {{{config.log}}} generated by {{{configure}}} might help.  It is important to know that for a COIN configuration usually several {{{configure}}} scripts are run recursively.  Therefore, '''you should try to find out which configuration script was the one that failed'''.  In the screen output, you find a line like "{{{configure: configuring in Clp}}}" just before a new configure script is started.  To see some more detailed output than what you see on the screen, you should then look at the '''config.log''' file in the subdirectory that corresponds to the {{{configure}}} script that failed.  In this output file, you should go to the bottom, and then page up a little bit; at the end of the file is some summary output even if the configuration failed, and the failed test is the one just before that output.
     17If you still run into trouble, the screen output or the output files {{{config.log}}} generated by {{{configure}}} might help.  It is important to know that for a COIN configuration usually several {{{configure}}} scripts are run recursively.  Therefore, '''you should try to find out which configuration script was the one that failed'''.  In the screen output, you find a line like "{{{configure: configuring in Clp}}}" just before a new configure script is started.  To see some more detailed output than what you see on the screen, you should then '''look at the config.log file in the subdirectory that corresponds to the configure script that failed''' (which is {{{Clp}}} for the example output).
     18
     19'''To locate the detailed error message in the config.log file''', open it with an editor, go to the end of the file, and search backwards for
     20
     21{{{
     22## ---------------- ##
     23## Cache variables. ##
     24## ---------------- ##
     25}}}
     26
     27Immediately before this you see details about the failure.  For example, you might see the following output:
     28{{{
     29configure:20593: checking whether symbol CPXgetstat is available with CPX
     30configure:20613: gcc -o conftest -O3 -fomit-frame-pointer -pipe -DNDEBUG -pedantic-errors -Wimplicit -Wparentheses -Wsequence-point -Wreturn-type -Wcast-qual -Wall     conftest.c -L/usr/local/cplex/cplex100/lib/x86_rhel4.0_3.4/static_pic/ -lcplex -lm >&5
     31/usr/local/cplex/cplex100/lib/x86_rhel4.0_3.4/static_pic//libcplex.a(par.o)(.text+0x1c6): In function `CPXPparfork':
     32: undefined reference to `pthread_create'
     33/usr/local/cplex/cplex100/lib/x86_rhel4.0_3.4/static_pic//libcplex.a(par.o)(.text+0x232): In function `CPXPparfork':
     34: undefined reference to `pthread_join'
     35/usr/local/cplex/cplex100/lib/x86_rhel4.0_3.4/static_pic//libcplex.a(par.o)(.text+0x4a3): In function `CPXPblocksigint':
     36: undefined reference to `pthread_sigmask'
     37collect2: ld returned 1 exit status
     38configure:20619: $? = 1
     39configure: failed program was:
     40| /* confdefs.h.  */
     41|
     42| #define PACKAGE_NAME "Osi"
     43| #define PACKAGE_TARNAME "osi"
     44| #define PACKAGE_VERSION "0.1"
     45| #define PACKAGE_STRING "Osi 0.1"
     46|
     47| [ MORE STUFF ]
     48|
     49| /* end confdefs.h.  */
     50| void CPXgetstat();
     51| int
     52| main ()
     53| {
     54| CPXgetstat()
     55|   ;
     56|   return 0;
     57| }
     58configure:20640: result: no
     59configure:20642: error: Cannot find symbol CPXgetstat with CPX
     60
     61## ---------------- ##
     62## Cache variables. ##
     63## ---------------- ##
     64}}}
     65This shows you that the error occurred during test of the library {{{libcplex.a}}}.  The problem here is that the symbols "{{{pthread_create}}}" etc. cannot be resolved.  In this example it means that you also have to provide the pthread library ({{{-lphtread}}}) in your flags for linking with the Cplex library ({{{--with-cplex-lib}}}).  As you see, the output also contains the source code for the test program, as well as the detailed compiler command, so that you can try to tracy down the problem separate from the configuration script.
    1666
    1767In case you are not able to resolve the problem on your own and want to ask for help, you should '''submit a ticket''' at the Trac home page for the COIN project that doesn't configure properly.  To submit a ticket, you click on the "New Ticket" tab at the top of the project's page and fill out the information (after you registered and logged into the Trac system).  It might be a good idea to attach the {{{config.log}}} file that represents your failed configuration run.  You should '''provide your email address''' in the first box of the page that comes up, so that you will be notified of changes to the ticket, and so that someone might be able to contact you in case more information is required.