BIND 10 #1991: boost/numeric/conversion/detail/meta.hpp:30: warning: comparison between 'enum mpl_::integral_c<boost::numeric::sign_mixture_enum, unsigned_to_unsigned>::<anonymous>' and 'enum mpl_::integral_c<boost::numeric::sign_mixture_enum, unsigned_to_signed>::<anonymous>'
BIND 10 Development
do-not-reply at isc.org
Fri Dec 28 07:48:24 UTC 2012
#1991: boost/numeric/conversion/detail/meta.hpp:30: warning: comparison between
'enum mpl_::integral_c<boost::numeric::sign_mixture_enum,
unsigned_to_unsigned>::<anonymous>' and 'enum
mpl_::integral_c<boost::numeric::sign_mixture_enum,
unsigned_to_signed>::<anonymous>'
-------------------------------------+-------------------------------------
Reporter: jreed | Owner:
Type: defect | jinmei
Priority: medium | Status:
Component: Unclassified | accepted
Keywords: | Milestone:
Sensitive: 0 | Sprint-20130108
Sub-Project: Core | Resolution:
Estimated Difficulty: 6 | CVSS Scoring:
Total Hours: 0 | Defect Severity: N/A
| Feature Depending on Ticket:
| Add Hours to Ticket: 0
| Internal?: 0
-------------------------------------+-------------------------------------
Comment (by jinmei):
trac1991 is ready for review.
I figured out the cause of the error: it looks like a bug (or at least
some kind of unexpected bad effect) of a local patch in the FreeBSD
port of boost-libs. I've reported it to FreeBSD:
http://www.freebsd.org/cgi/query-pr.cgi?pr=174753
Until/unless it's fixed in FreeBSD, I think the only feasible action
we can take is to disable -Werror (or use workable clang++, or use
manually extracted boost header files). So my proposed "fix" for this
task is to detect the failure in the ./configure script and suggests
--without-werror when it's detected.
One possible controversial point would be that it may be
"automagically" disable -Werror and continue ./configure when this
issue is detected. There should certainly be people who simply give
up once the build failure occurs, no matter how we try to be helpful
in the error message, so the automatic suppression will definitely
help increase the user base. I personally still thought weakening
compile-time checks should be based on informed consent, and hence the
current implementation. But we can discuss it if necessary.
I also used this opportunity to make our configure script more
modular: by extracting Boost-related checks into a separate m4 macro.
It was not necessary for the purpose of this task, but it helps keep
the already-bloated ./configure script concise and more readable.
And, for a longer term, I think it helps implement more selective
build (e.g., by checking/enabling Boost features that are only
necessary for DNS or DHCP).
The diff is still quite small and should be easy to review.
Proposed changelog:
{{{
536.? [build] jinmei
Detect a build issue on FreeBSD with g++ 4.2 and Boost installed
via
FreeBSD ports at ./configure time. This seems to be a bug of
FreeBSD ports setup and has been reported to the maintainer:
http://www.freebsd.org/cgi/query-pr.cgi?pr=174753
Until it's fixed, you need to build BIND 10 for FreeBSD that has
this problem with specifying --without-werror, with clang++
(development version), or with manually extracted Boost header
files (no compiled Boost library is necessary).
(Trac #1991, git TBD)
}}}
--
Ticket URL: <https://bind10.isc.org/ticket/1991#comment:9>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list