Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] OpenMPI build fails with "undefined reference to symbol 'opal_cmd_line_get_usage_msg'"
From: Alex Margolin (alex.margolin_at_[hidden])
Date: 2012-02-18 17:55:06


I've looked for errors/warning in the make, but didn't find anything
looking relevant. I've built a few tools "manually", so I'll write it
down here in case anyone comes across this (bug? compatibility issue?)
again.

Step #1: cd /home/alex/huji/openmpi-1.4.4/orte/tools/orte-clean
Step #2: make (Gives the error output - from here I grab the line for
the next state)
Step #3: /bin/bash ../../../libtool --tag=CC --mode=link gcc -O3
-DNDEBUG -finline-functions -fno-strict-aliasing -pthread
-fvisibility=hidden -export-dynamic -o orte-clean orte-clean.o
../../../orte/libopen-rte.la -lnsl -lutil -lm
../../../opal/libopen-pal.la (This last .la file contains the missing
symbol!)
Step #4: cd /home/alex/huji/openmpi-1.4.4
Step #5: make

I've repeated these five steps a few times to compile the following
tools (which gave the same error, so fixed the same way):
openmpi-1.4.4/orte/tools/orte-iof , orte-ps, orterun,
openmpi-1.4.4/ompi/tools/ompi_info, ompi-server (last two required both
libopen-pal.la and libopen-rte.la). I'm not sure about the cause of
these failures (is it related to x64? I trued w/ and w/o setting *FLAGS
like the FAQ suggests), but the version I've built seems to work (and
recognizes the new component - which is my next task).

Alex

On 02/11/2012 11:39 PM, Alex Margolin wrote:
> I've tried other versions and got the same error, so I have to assume
> the local software has something to do with it,
> so I've gathered the version information of everything that seemed
> relevat (I'm running a fully updated Ubuntu 11.10):
>
> alex_at_singularity:~/huji/openmpi-1.4.5rc6$ automake --version
> automake (GNU automake) 1.11.1
> Copyright (C) 2009 Free Software Foundation, Inc.
> License GPLv2+: GNU GPL version 2 or later
> <http://gnu.org/licenses/gpl-2.0.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
> Written by Tom Tromey <tromey_at_[hidden]>
> and Alexandre Duret-Lutz <adl_at_[hidden]>.
>
> alex_at_singularity:~/huji/openmpi-1.4.5rc6$ autoconf --version
> autoconf (GNU Autoconf) 2.68
> Copyright (C) 2010 Free Software Foundation, Inc.
> License GPLv3+/Autoconf: GNU GPL version 3 or later
> <http://gnu.org/licenses/gpl.html>,
> <http://gnu.org/licenses/exceptions.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
> Written by David J. MacKenzie and Akim Demaille.
>
> alex_at_singularity:~/huji/openmpi-1.4.5rc6$ libtool --version
> libtool (GNU libtool) 2.4
> Written by Gordon Matzigkeit <gord_at_[hidden]>, 1996
> Copyright (C) 2010 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions. There
> is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
> PURPOSE.
> alex_at_singularity:~/huji/openmpi-1.4.5rc6$
>
>
> On 02/11/2012 07:10 PM, Alex Margolin wrote:
>> Hi,
>>
>> I tried to unpack and build version 1.4.4 and run into a rare error,
>> and I didn't find any mention of it online.
>> I know I shouldn't run autogen.sh (builds OK without it) unless I
>> have a new MCA component, but this is the case here, so...
>> Does anyone else experience such errors (the command I ran appears at
>> the bottom)?
>> Any tips on how to solve or get around it?
>>
>> Thanks,
>> Alex
>>
>> Making install in tools/orte-clean
>> make[2]: Entering directory
>> `/home/alex/huji/openmpi-1.4.4/orte/tools/orte-clean'
>> /bin/bash ../../../libtool --tag=CC --mode=link gcc -O3 -DNDEBUG
>> -finline-functions -fno-strict-aliasing -pthread -fvisibility=hidden
>> -export-dynamic -o orte-clean orte-clean.o
>> ../../../orte/libopen-rte.la -lnsl -lutil -lm
>> libtool: link: gcc -O3 -DNDEBUG -finline-functions
>> -fno-strict-aliasing -pthread -fvisibility=hidden -o .libs/orte-clean
>> orte-clean.o -Wl,--export-dynamic ../../../orte/.libs/libopen-rte.so
>> -lnsl -lutil -lm -pthread -Wl,-rpath -Wl,/home/alex/huji/ompi4/lib
>> /usr/bin/ld: orte-clean.o: undefined reference to symbol
>> 'opal_cmd_line_get_usage_msg'
>> /usr/bin/ld: note: 'opal_cmd_line_get_usage_msg' is defined in DSO
>> /home/alex/huji/ompi4/lib/libopen-pal.so.0 so try adding it to the
>> linker command line
>> /home/alex/huji/ompi4/lib/libopen-pal.so.0: could not read symbols:
>> Invalid operation
>> collect2: ld returned 1 exit status
>> make[2]: *** [orte-clean] Error 1
>> make[2]: Leaving directory
>> `/home/alex/huji/openmpi-1.4.4/orte/tools/orte-clean'
>> make[1]: *** [install-recursive] Error 1
>> make[1]: Leaving directory `/home/alex/huji/openmpi-1.4.4/orte'
>> make: *** [install-recursive] Error 1
>> alex_at_singularity:~/huji/openmpi-1.4.4$ make clean ; ./autogen.sh ;
>> ./configure --prefix=/home/alex/huji/ompi4 ; make ; make install
>>
>>
>