Closed epruesse closed 4 years ago
Technically, MUSCLE, MAFFT & Co should probably be built from their own recipes, perhaps even made optional. MUSCLE is not crucial to running ARB.
Sounds like a bug in arb. I've filed it here: http://bugs.arb-home.de/ticket/830
I've patched the subfams.cpp delivered with arb. Please retry.
Thank you @rwestram
Hi @epruesse , sorry for joining the issue late. It seems that the problem occurs only with Catalina 10.15.7 and then not even with all setups. The builds in the GitHub VMs still work without the patch from Ralf but after having updated my macOS to Catalina, I get the same issue locally. So, I think it is caused by something both of us have installed which is not part of a default macOS installation. Do you have any idea what it could be? If I know what it causes I could adopt the formula to declare the production version of ARB incompatible with it or to use a "tap" only dependency on the thing that is replaced by it.
The conflicting #define
came out of math.h
, so probably just developer tools - compiler and matching library header files. I didn't look at Ralf's patch, but I think having
#ifndef INFINITY
#define INFINITY bla
#endif
or
#undef INFINITY
#define INFINITY bla
is the way to go and easier than trying to control the header files via dependencies.
I presume it is the new version of clang that's in Xcode 12. I presume that there has been some change to the way that the system headers include each other such that math.h now gets included automatically whereas before it did not. There is no need to mark anything incompatible with anything. Just fix the problem, either the way the developers of arb did by renaming INFINITY
to something else, or change it the way @epruesse suggested so that INFINITY
is only defined if it has not already been defined, which is a strategy already used elsewhere in the arb code.
The problem is now fixed in the production version, too. If you want to switch back to the production version run
brew unlink arb-project/arb/arb
brew install arb-project/arb/arb
Installing ARB as per instructions fails on
brew install arb-project/arb/arb
. The error appears during compilation of MUSCLE:Looks like the
INFINITY
definition needs an#ifdef
around it, in case it is already defined bymath.h
.