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?
Thanks a lot in advance and best regards,
Ulrich
[Bioc-devel] package 'msa' not building on veracruz2, but on toluca2 and other Mac OS systems
5 messages · Martin Morgan, Coffey, David G, Hervé Pagès +1 more
7 days later
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 mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel
This email message may contain legally privileged and/or...{{dropped:2}}
2 days later
Hello, My Bioconductor Package ?LymphoSeq? received the following build error<http://bioconductor.org/checkResults/3.5/bioc-LATEST/LymphoSeq/veracruz2-buildsrc.html> 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=
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=
Herv? Pag?s Program in Computational Biology Division of Public Health Sciences Fred Hutchinson Cancer Research Center 1100 Fairview Ave. N, M1-B514 P.O. Box 19024 Seattle, WA 98109-1024 E-mail: hpages at fredhutch.org Phone: (206) 667-5791 Fax: (206) 667-1319
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=