[Bioclusters] mpiBlast OS X

Aaron Darling bioclusters@bioinformatics.org
Fri, 01 Oct 2004 09:13:47 -0500


I haven't tried it (I don't have an OS X machine handy at the moment), 
but based on a perusal of NCBI's darwin.ncbi.mk file, it looks like they 
add "-framework CoreServices" and "-lc" to the link command.  You may 
also need "-framework Carbon", but I'm guessing not since that looks 
like it's just for gui apps on OS X.
Good luck, hope it works this time around!
-Aaron

Nick Brockner wrote:

> 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
>>
>
> _______________________________________________
> Bioclusters maillist  -  Bioclusters@bioinformatics.org
> https://bioinformatics.org/mailman/listinfo/bioclusters