Date: Wed, 26 Jan 2005 17:08:59 -0500 (EST) From: "Mark A. Wicks" <mwicks@kettering.edu> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/76730: [patch] dynamic_bitset broken in boost 1.32 Message-ID: <200501262208.j0QM8xTr021520@gaspra.kettering.edu> Resent-Message-ID: <200501262210.j0QMAD8D032696@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 76730 >Category: ports >Synopsis: [patch] dynamic_bitset broken in boost 1.32 >Confidential: no >Severity: serious >Priority: high >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Wed Jan 26 22:10:12 GMT 2005 >Closed-Date: >Last-Modified: >Originator: Mark A. Wicks >Release: FreeBSD 5.3-RELEASE-p5 i386 >Organization: Kettering University >Environment: System: FreeBSD gaspra.kettering.edu 5.3-RELEASE-p5 FreeBSD 5.3-RELEASE-p5 #13: Fri Jan 21 09:14:40 EST 2005 mwicks@gaspra.kettering.edu:/usr/obj/usr/src/sys/gaspra-5.3 i386 gcc version 3.4.2 [FreeBSD] 20040728 >Description: Having BOOST_NO_INCLASS_MEMBER_INITIALIZATION defined in bsd.hpp causes boost to use anonymous enums. Anonymous enums are considered to be different types in gcc 3.4.0 even when declared identically. As a result, any ports using dynamic_bitset won't compile. >How-To-Repeat: Compile the following program: #include <boost/dynamic_bitset.hpp> int main(int, char*[]) { boost::dynamic_bitset<> x(2); return 0; } This produces the following errors: usr/local/include/boost/dynamic_bitset/dynamic_bitset.hpp: In constructor `boost::dynamic_bitset<Block, Allocator>::dynamic_bitset(size_t, long unsigned int, const Allocator&) [with Block = long unsigned int, Allocator = std::allocator<long unsigned int>]': foo.cc:4: instantiated from here /usr/local/include/boost/dynamic_bitset/dynamic_bitset.hpp:541: warning: comparison between `enum boost::dynamic_bitset<long unsigned int, std::allocator<long unsigned int> >::<anonymous>' and `enum boost::dynamic_bitset<long unsigned int, std::allocator<long unsigned int> >::<anonymous>' foo.cc:4: instantiated from here /usr/local/include/boost/dynamic_bitset/dynamic_bitset.hpp:548: error: no matching function for call to `make_non_const(boost::dynamic_bitset<long unsigned int, std::allocator<long unsigned int> >::<anonymous enum>)' >Fix: *** ./bsd.hpp-orig Wed Jan 26 15:29:17 2005 --- ./bsd.hpp Wed Jan 26 16:17:59 2005 *************** *** 52,59 **** # define BOOST_NO_CWCTYPE #endif - #define BOOST_NO_INCLASS_MEMBER_INITIALIZATION - // // The BSD <ctype.h> has macros only, no functions: // --- 52,57 ---- Not defining BOOST_NO_INCLASS_MEMBER_INITIALIZATION produces standard code. This #define shouldn't be required on compilers that follow standards. I don't know if this definition was necessary on older versions of GCC. >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200501262208.j0QM8xTr021520>