[Bioclusters] mpiBlast OS X

Nick Brockner bioclusters@bioinformatics.org
Fri, 01 Oct 2004 08:33:40 -0400


I now have it almost linking, except for this:

ld: Undefined symbols:
_DisposeHandle
_HLock
_HUnlock
_MemError
_NewHandle
_SetHandleSize
_FSPathMakeRef
mpiCC: No such file or directory

Using this command to link:

mpiCC  -O2 -DINSTALL_PREFIX="\"/usr/local\"" -g -O2   -o mpiblast  
mpiblast-blastjob.o mpiblast-db_spec.o mpiblast-blast_hooks.o 
mpiblast-embed_rank.o mpiblast-file_util.o mpiblast-fragment_list.o 
mpiblast-mpiblast_util.o mpiblast-mpiblast.o mpiblast-mpiblast_config.o 
mpiblast-ncbi_sizeof.o mpiblast-distributed_bioseq.o 
/usr/local/ncbi/build/ncbithr.o  -lncbitool -lncbiobj -lncbi 
-L/usr/local/ncbi/lib/  -lm -lpthread -lstdc++

I searched all over and cannot find what to link with for these.  I 
appreciate all the help you have given so far with this.

Thanks,

-Nick
On Sep 30, 2004, at 5:49 PM, Aaron Darling wrote:

> Yes, looks like something wrong with the build environment.  Looks 
> like it's not linking to the c++ library.  Usually the GNU standard 
> c++ library can be linked with -lstdc++.  You could either add that to 
> the CXXFLAGS environment variable and reconfigure or just copy the 
> link command, add -lstdc++, and run it from within the src dir.  In 
> the past we've only tested releases on Linux and Windows, sounds like 
> that needs to change :)
>
> -Aaron
>
> Nick Brockner wrote:
>
>> Ok, now that getopt() is out of the way it compiles, but then when it 
>> goes to link I get this garbage:
>>
>> ld: Undefined symbols:
>> std::basic_ostream<char, std::char_traits<char> 
>> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& 
>> (*)(std::basic_ostream<char, std::char_traits<char> >&))
>> std::basic_ostream<char, std::char_traits<char> >::operator<<(double)
>> std::basic_ostream<char, std::char_traits<char> >::operator<<(long)
>> std::basic_ostream<char, std::char_traits<char> 
>> >::operator<<(unsigned long)
>> std::basic_string<char, std::char_traits<char>, std::allocator<char> 
>> >::_Rep::_M_destroy(std::allocator<char> const&)
>> .
>> .
>> .
>>
>> I think this has nothing to do with the mpiBlast code, and has 
>> something to do with Apple's build environment.  Difficult build, 
>> this is.
>>
>> Thanks,
>>
>> -Nick Brockner
>> On Sep 30, 2004, at 3:35 PM, Aaron Darling wrote:
>>
>>> This happens on OS X, Solaris, and AIX because our getopt() 
>>> detection was broken in 1.2.1.  A quick fix is to comment out line 
>>> 147 of mpiBLAST-1.2.1/src/getopt.h
>>> e.g. change:
>>> extern int getopt ();
>>> to:
>>> /* extern int getopt (); */
>>>
>>> -Aaron
>>>
>>> Nick Brockner wrote:
>>>
>>>> Hi Aaron,
>>>>
>>>> Thanks for the pointer.  Using the Oct. 2003 ncbi toolkit worked 
>>>> for the previous error, but now I have a more sinister looking 
>>>> error:
>>>>
>>>> In file included from /usr/include/pthread.h:61,
>>>>                  from 
>>>> /usr/include/gcc/darwin/3.3/c++/ppc-darwin/bits/gthr-default.h:37,
>>>>                  from 
>>>> /usr/include/gcc/darwin/3.3/c++/ppc-darwin/bits/gthr.h:98,
>>>>                  from 
>>>> /usr/include/gcc/darwin/3.3/c++/ppc-darwin/bits/c++io.h:37,
>>>>                  from 
>>>> /usr/include/gcc/darwin/3.3/c++/bits/fpos.h:44,
>>>>                  from /usr/include/gcc/darwin/3.3/c++/iosfwd:49,
>>>>                  from 
>>>> /usr/include/gcc/darwin/3.3/c++/bits/stl_algobase.h:70,
>>>>                  from /usr/include/gcc/darwin/3.3/c++/algorithm:66,
>>>>                  from mpiblast.cpp:86:
>>>> /usr/include/unistd.h:183: error: declaration of C function `int 
>>>> getopt(int,
>>>>    char* const*, const char*)' conflicts with
>>>> getopt.h:147: error: previous declaration `int getopt()' here
>>>> In file included from file_util.hpp:58,
>>>>                  from mpiblast.hpp:71,
>>>>                  from mpiblast.cpp:88:
>>>>
>>>>
>>>> Has anyone seen this before? Looks OS X specific.
>>>>
>>>> Thanks,
>>>>
>>>> -Nick Brockner
>>>>
>>>> On Sep 30, 2004, at 2:51 PM, Aaron Darling wrote:
>>>>
>>>>> Assuming you are using mpiBLAST 1.2.1, you need to use the October 
>>>>> 2003 release of the NCBI Toolbox from here:
>>>>> ftp://ftp.ncbi.nih.gov/toolbox/ncbi_tools/old/
>>>>>
>>>>> Each version of mpiBLAST is designed to compile against a specific 
>>>>> version of the NCBI Toolbox, as mentioned on our download page 
>>>>> here:
>>>>>
>>>>> http://mpiblast.lanl.gov/download.html
>>>>>
>>>>> Later toolbox releases changed the API to BlastMakeMultQueries and 
>>>>> BXMLPrintOutput, which is why you are seeing those build errors.
>>>>>
>>>>> Regards,
>>>>> -Aaron
>>>>>
>>>>> Nick Brockner wrote:
>>>>>
>>>>>> Hi All,
>>>>>>
>>>>>> I think I am missing something here, but attempting to compile 
>>>>>> mpiBlast gets me the following:
>>>>>>
>>>>>> blast_hooks.c: In function `getFakeBioseq':
>>>>>> blast_hooks.c:785: error: too few arguments to function 
>>>>>> `BlastMakeMultQueries'
>>>>>> blast_hooks.c: In function `outputResults':
>>>>>> blast_hooks.c:1334: error: too few arguments to function 
>>>>>> `BXMLPrintOutput'
>>>>>> blast_hooks.c:1345: error: too few arguments to function 
>>>>>> `BXMLPrintOutput'
>>>>>> blast_hooks.c:1493: error: too few arguments to function 
>>>>>> `BXMLPrintOutput'
>>>>>> blast_hooks.c:1498: error: too few arguments to function 
>>>>>> `BXMLPrintOutput'
>>>>>> mpicc: No such file or directory
>>>>>> make[1]: *** [mpiblast-blast_hooks.o] Error 1
>>>>>> make: *** [all-recursive] Error 1
>>>>>>
>>>>>>
>>>>>> My setup:
>>>>>> OS X Server 10.3.5
>>>>>> gcc version 3.3 20030304 (Apple Computer, Inc. build 1495)
>>>>>> NCBI toolkit installed
>>>>>> LAM-MPI version 7.0.6
>>>>>>
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> -Nick Brockner
>>>>>>
>>>>>> _______________________________________________
>>>>>> Bioclusters maillist  -  Bioclusters@bioinformatics.org
>>>>>> https://bioinformatics.org/mailman/listinfo/bioclusters
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Bioclusters maillist  -  Bioclusters@bioinformatics.org
>>>>> https://bioinformatics.org/mailman/listinfo/bioclusters
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Bioclusters maillist  -  Bioclusters@bioinformatics.org
>>>> https://bioinformatics.org/mailman/listinfo/bioclusters
>>>
>>>
>>> _______________________________________________
>>> Bioclusters maillist  -  Bioclusters@bioinformatics.org
>>> https://bioinformatics.org/mailman/listinfo/bioclusters
>>>
>>>
>>
>> _______________________________________________
>> Bioclusters maillist  -  Bioclusters@bioinformatics.org
>> https://bioinformatics.org/mailman/listinfo/bioclusters
>
> _______________________________________________
> Bioclusters maillist  -  Bioclusters@bioinformatics.org
> https://bioinformatics.org/mailman/listinfo/bioclusters
>