[Bioc-devel] package 'msa' not building on veracruz2, but on toluca2 and other Mac OS systems

Ulrich Bodenhofer bodenhofer at bioinf.jku.at
Mon Apr 17 22:17:30 CEST 2017


Thanks for this great solution, Hervé! Though it is finally very simple, 
I would never have figured it out by myself. I already updated the code 
in that way and checked it in (after having performed a check). I hope 
that everything works as soon as the changes have propagated into the 
build server. David, I hope that your troubles are also gone then. Sorry 
for any inconveniences and thanks to everybody for your help and patience!

Best regards,
Ulrich



Am 17.04.17 um 01:26 schrieb Hervé Pagès:
> Hi David,
>
> Yes, definitely related to this thread.
>
> FWIW the msa compilation problem on veracruz2 seems to be caused by
> some recent changes to the clang compiler. Following the CRAN folks
> lead, we use clang 4 on veracruz2, which is a more recent version
> than the one shipped with Xcode. It's available here:
>
>   http://r.research.att.com/libs/
>
> Seems that the following simple change solves msa compilation problem:
>
> veracruz2:msa biocbuild$ svn diff
> Index: src/ClustalOmega/src/hhalign/util-C.h
> ===================================================================
> --- src/ClustalOmega/src/hhalign/util-C.h    (revision 128757)
> +++ src/ClustalOmega/src/hhalign/util-C.h    (working copy)
> @@ -50,8 +50,8 @@
>  inline double fmean(double x, double y, double d) { return pow( 
> (pow(x,d)+pow(y,d))/2 ,1./d);}
>
>  // log base 2
> -inline float log2(float x)  {return (x<=0? 
> (float)(-100000):1.442695041*log(x));}
> -inline float log10(float x) {return (x<=0? 
> (float)(-100000):0.434294481*log(x));}
> +#define log2 log2f
> +#define log10 log10f
>
> Ideally, this kind of fix should be applied upstream to the ClustalOmega
> source.
>
> Cheers,
> H.
>
>
> On 04/16/2017 01:24 PM, Coffey, David G wrote:
>> Hello,
>>
>> My Bioconductor Package ‘LymphoSeq’ received the following build 
>> error<https://urldefense.proofpoint.com/v2/url?u=http-3A__bioconductor.org_checkResults_3.5_bioc-2DLATEST_LymphoSeq_veracruz2-2Dbuildsrc.html&d=DwIGaQ&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=jnChabNsv9hAlCjUWK2OZaz9ASgV9yIlOrr4v73R5_Y&s=Bu3zpsOOHDUFFPyTen53BCscwlG7cLKR9zFvmS878V4&e= 
>> > on veracruz2:
>>
>> ERROR: dependency ‘msa’ is not available for package ‘LymphoSeq’
>>
>> Indeed, ‘msa’ is one of my package dependencies.  The package was 
>> built under the latest version of MacOS on my computer and I have 
>> never see this error before.  I am wondering if this problem is 
>> related to this thread.  Will my package not be pushed to the release 
>> version because of this error?
>>
>> Thank you,
>>
>> David
>>
>> On Apr 14, 2017, at 12:50 PM, Martin Morgan 
>> <martin.morgan at roswellpark.org<mailto:martin.morgan at roswellpark.org>> 
>> wrote:
>>
>> On 04/07/2017 11:26 AM, Ulrich Bodenhofer wrote:
>> Hi,
>>
>> The devel version of our package 'msa' currently does not compile on
>> veracruz2 (R 3.4.0 alpha under OS X 10.11.6 El Capitan), but it seems to
>> work on toluca2 (R-devel on OS X 10.9.5 Mavericks). I also checked on my
>> Mac at home (R 3.3.3 under macOS 10.12.3 Sierra using the very latest
>> version of Xcode), and it also compiles without any problems.
>>
>> The error stems from a conflicting definition of the math functions
>> 'log2' and 'log10' in the source code of the ClustalOmega library which
>> is integrated into 'msa' (the same error appears for the inline
>> definition of 'log10'):
>>
>>   hhalign/util-C.h:53:14: error: 'log2' is missing exception
>> specification 'throw()'
>>   inline float log2(float x)  {return (x<=0?
>> (float)(-100000):1.442695041*log(x));}
>>
>> Any ideas? 'log2' and 'log10' are defined in the standard math library.
>> The definitions work well on Linux along with '#include <cmath>' , while
>> Windows requires '#include <math.h>'. So far, '#include <cmath>' also
>> worked on Mac OS, but it seems that now, on veracruz2, neither one nor
>> the other works. Any thoughts? Is this something I should care about or
>> is there something exotic about veracruz2 such that I can simply ignore
>> this issue?
>>
>> I guess the minimal reproducible example is
>>
>> $ cat log2.cpp
>> #include <cmath>  // or <math.h>
>>
>> inline float log2(float x) {return (x<=0? 
>> (float)(-100000):1.442695041*log(x));}
>>
>> $ R CMD SHLIB log2.cpp
>> clang++  -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG 
>> -I/usr/local/include -I/opt/X11/include   -fPIC  -Wall -g -O2  -c 
>> log2.cpp -o log2.o
>> log2.cpp:3:14: error: 'log2' is missing exception specification 
>> 'throw()'
>> inline float log2(float x) {return (x<=0? 
>> (float)(-100000):1.442695041*...
>>             ^
>>                           throw()
>> /usr/local/clang+llvm-4.0.0-x86_64-apple-darwin/bin/../include/c++/v1/math.h:1221:46: 
>> note:
>>      previous declaration is here
>> inline _LIBCPP_INLINE_VISIBILITY float       log2(float __lcpp_x) 
>> _NOEX...
>>                                             ^
>> 1 error generated.
>> make: *** [log2.o] Error 1
>>
>> It could be that final changes in the compiler used by R to build mac 
>> binaries could change, but at this point I think it would be prudent 
>> to implement a work-around; veracruz2 will be our main macOS builder 
>> for the release, and if the package is not building on it then the 
>> package will not be available to macOS users.
>>
>> I am not enough of a C++ programmer to be able to give concrete 
>> advice on how the problem should be addressed; maybe others on the 
>> list have insight...?
>>
>> Martin
>>
>>
>> Thanks a lot in advance and best regards,
>>
>> Ulrich
>>
>> _______________________________________________
>> Bioc-devel at r-project.org<mailto:Bioc-devel at r-project.org> mailing list
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__stat.ethz.ch_mailman_listinfo_bioc-2Ddevel&d=DwICAg&c=eRAMFD45gAfqt84VtBcfhQ&r=HjFin7ZZwuYWdlO8wvE3KmoPwjRiq-bV_UKHWdKLLP4&m=q0lYA_4-5lp09oKeciuTpv2FDm4ZddBJHxUO8yw2Tys&s=jeKQlveT4DG2tLfM8ykFwfCXpfvgOHoAQDuZ_1hjVVY&e= 
>>
>>
>>
>> This email message may contain legally privileged and/or...{{dropped:2}}
>>
>> _______________________________________________
>> Bioc-devel at r-project.org<mailto:Bioc-devel at r-project.org> mailing list
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__stat.ethz.ch_mailman_listinfo_bioc-2Ddevel&d=DwICAg&c=eRAMFD45gAfqt84VtBcfhQ&r=HjFin7ZZwuYWdlO8wvE3KmoPwjRiq-bV_UKHWdKLLP4&m=q0lYA_4-5lp09oKeciuTpv2FDm4ZddBJHxUO8yw2Tys&s=jeKQlveT4DG2tLfM8ykFwfCXpfvgOHoAQDuZ_1hjVVY&e= 
>>
>>
>>
>>     [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> Bioc-devel at r-project.org mailing list
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__stat.ethz.ch_mailman_listinfo_bioc-2Ddevel&d=DwIGaQ&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=jnChabNsv9hAlCjUWK2OZaz9ASgV9yIlOrr4v73R5_Y&s=oDD2_encverkZOMDMsj6H8TdvzaHmyOMuqf638eCsxE&e= 
>>
>>
>



More information about the Bioc-devel mailing list