The current compile/link system results in numerous uninteresting warnings about "register" not being supported by C++11 when we build DM stack code. These are so numerous as to make it hard to detect useful warnings. These are caused by boost and Eigen.
Some possible solutions:
- Upgrade boost and Eigen. This would be optimal (assuming that newer versions have indeed stopped using "register"), but may be difficult. Boost, in particular, seems to require several patches to build successfully.
- Suppress the warnings by explicitly testing if the compiler accepts a flag to suppress them and use that flag if so. If we go this route we should explicitly undo it once we upgrade boost and Eigen.
- Suppress the warnings using -isystem, as per John Swinbank. Again, undo this once we upgrade boost and Eigen.
We have lived with this for a long time, but it is very unpleasant. At this point I'd like to push it up in priority and accept solutions that paper over the problem if necessary.
There is another class of warning that is less numerous but still a nuisance: warnings about using an outdated API for numpy. I am not sure where those come from, and there are few enough that I feel we can live with them if no easy solution presents itself. I suspect fixing them will require a different ticket.
DM-869 is related, but appears to focus on a different class of warnings from boost (one that I don't usually see).
Update: Ticket has been updated to just refer to Eigen as the boost upgrade was covered in
DM-2384 and Eigen is the remaining source of register warnings.