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.mor...@roswellpark.org<mailto:martin.mor...@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@r-project.org<mailto:Bioc-devel@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@r-project.org<mailto:Bioc-devel@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@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=



_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel

Reply via email to