[Boost-bugs] [Boost C++ Libraries] #9301: Error when attempting to boot strap boost

Subject: [Boost-bugs] [Boost C++ Libraries] #9301: Error when attempting to boot strap boost
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-10-25 16:38:30


#9301: Error when attempting to boot strap boost
--------------------------------+-------------------------------------
 Reporter: Ben Key <BKey76@…> | Type: Bugs
   Status: new | Milestone: Boost 1.55.0
Component: Building Boost | Version: Boost Development Trunk
 Severity: Showstopper | Keywords:
--------------------------------+-------------------------------------
 Error when attempting to bootstrap boost

 Hello,

 I am getting the following error when attempting to run "bootstrap.bat
 mingw."

 Building Boost.Build engine
 builtins.c: In function 'builtin_readlink':
 builtins.c:1879:39: error: 'FSCTL_GET_REPARSE_POINT' undeclared (first use
 in this function)
      int okay = DeviceIoControl(hLink, FSCTL_GET_REPARSE_POINT, NULL, 0,
 &buf, sizeof(buf), &n, NULL);
                                        ^
 builtins.c:1879:39: note: each undeclared identifier is reported only once
 for each function it appears in

 Failed to build Boost.Build engine.
 Please consult bootstrap.log for further diagnostics.

 This error does not happen with MSVC but it does happen with MinGW.

 For both MinGW and MSVC, FSCTL_GET_REPARSE_POINT is defined in winioctl.h.
 However, this header file is not directly included in builtins.c. Only
 Windows.h is directly included in builtins.c.

 This compiles for MSVC because winioctl.h is included by winscard.h which
 is in turn included by Windows.h. But winscard.h does not even exist in
 the MinGW header files and the MinGW version of Windows.h does not include
 winioctl.h. Thus winioctl.h is not indirectly included as it is in MSVC.

 The solution is obvious. Do not assume that the header fill will be
 indirectly included as a side effect of including Windows.h. Instead
 modify builtins.c to directly include winioctl.h. With this one line
 change the error is resolved.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/9301>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:14 UTC