Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#5042 closed Bugs (wontfix)

error: redefinition of 'size_t boost::asio::detail::calculate_hash_value(SOCKET)'

Reported by: Vladislav <phprus@…> Owned by: chris_kohlhoff
Milestone: Boost 1.46.0 Component: asio
Version: Boost 1.44.0 Severity: Problem
Keywords: Cc: phprus@…

Description

Hello!

I am using compiler i686-pc-mingw32-g++ from openSUSE repository:

phprus@notebook-hp6730b:/usr/lib> i686-pc-mingw32-g++ -v
Using built-in specs.
COLLECT_GCC=i686-pc-mingw32-g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-pc-mingw32/4.5.2/lto-wrapper
Target: i686-pc-mingw32
Configured with: ../configure --prefix=/usr --bindir=/usr/bin --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=i686-pc-mingw32 --with-gnu-as --with-gnu-ld --verbose --without-newlib --disable-multilib --disable-plugin --with-system-zlib --disable-nls --without-included-gettext --disable-win32-registry --enable-version-specific-runtime-libs --with-sysroot=/usr/i686-pc-mingw32/sys-root --enable-languages=c,c++,fortran,objc,obj-c++ --without-x --enable-hash-synchronization
Thread model: win32
gcc version 4.5.2 (GCC) 

Boost version 1.44.0

At header-file <boost/asio.hpp> usage there is a compilation error:

In file included from /usr/i686-pc-mingw32/sys-root/mingw/include/boost/asio/detail/reactor_op_queue.hpp:19:0,
                 from /usr/i686-pc-mingw32/sys-root/mingw/include/boost/asio/detail/select_reactor.hpp:29,
                 from /usr/i686-pc-mingw32/sys-root/mingw/include/boost/asio/detail/reactor.hpp:27,
                 from /usr/i686-pc-mingw32/sys-root/mingw/include/boost/asio/detail/win_iocp_socket_service.hpp:35,
                 from /usr/i686-pc-mingw32/sys-root/mingw/include/boost/asio/datagram_socket_service.hpp:24,
                 from /usr/i686-pc-mingw32/sys-root/mingw/include/boost/asio/basic_datagram_socket.hpp:21,
                 from /usr/i686-pc-mingw32/sys-root/mingw/include/boost/asio.hpp:20,
                 from ********/SimpleClient.cpp:17:
/usr/i686-pc-mingw32/sys-root/mingw/include/boost/asio/detail/hash_map.hpp: In function 'size_t boost::asio::detail::calculate_hash_value(SOCKET)':
/usr/i686-pc-mingw32/sys-root/mingw/include/boost/asio/detail/hash_map.hpp:46:20: error: redefinition of 'size_t boost::asio::detail::calculate_hash_value(SOCKET)'
/usr/i686-pc-mingw32/sys-root/mingw/include/boost/asio/detail/hash_map.hpp:34:20: error: 'size_t boost::asio::detail::calculate_hash_value(int)' previously defined here

SOCKET type equal INT_PTR (/usr/i686-pc-mingw32/sys-root/mingw/include/mingw_inc/_socket_types.h) On win32 INT_PTR equal int (/usr/i686-pc-mingw32/sys-root/mingw/include/basetds.h)

It possible usage boost::enable_if for detect this collision.

Change History (3)

comment:1 by chris_kohlhoff, 12 years ago

Resolution: wontfix
Status: newclosed

MinGW bug. SOCKET should be an unsigned int on Windows. It looks correct in older versions of MinGW, so please take it up with them.

comment:2 by Vladislav <phprus@…>, 12 years ago

Cc: phprus@… added

Please, tell in what versions MinGW it works?

comment:3 by chris_kohlhoff, 12 years ago

My debian box says:

Package: mingw32
Priority: optional
Section: devel
Installed-Size: 142880
Maintainer: Ron Lee <ron@debian.org>
Architecture: amd64
Version: 4.2.1.dfsg-2
Depends: mingw32-binutils, mingw32-runtime (>= 3.7), libc6 (>= 2.7)
Suggests: gcc-doc, cpp-doc
Filename: pool/main/m/mingw32/mingw32_4.2.1.dfsg-2_amd64.deb
Size: 20918294
MD5sum: 5a552eefd2481123e151607a83c9f699
SHA1: 64e359780ce6337da4d2652be191022554111ea1
SHA256: 972f1220a277c680a520ea890f72904771e93a444c99b880ad315eda5c74b8db
Description: Minimalist GNU win32 (cross) compiler
 A Linux hosted, win32 target, cross compiler for C/C++
 .
 Freedom through obsolescence.  Those who still really need to
 can now build windows executables from the comfort of Debian.
 .
 This package contains the C and C++ cross compilers.
Tag: devel::{compiler,lang:c,lang:c++}, interface::commandline, role::program, scope::utility, works-with::software:source
Note: See TracTickets for help on using tickets.