Project

General

Profile

Feature #3910 » minGW - building boost.txt

build boost with minGW w.r.t. Wt - Стойчо Стефанов Stoycho Stefanov, 03/27/2015 09:42 AM

 
#builing BOOST for minGW (boost 1_55)
# extract boost packige in C:\MinGW\msys\1.0\
#in windows cmd propt (as Administrator):
cd C:\MinGW\msys\1.0\boost_1_55_0
./bootstrap.bat mingw
#Edit the file project-config.jam and replace 'mingw' by 'gcc'
#Then launch bjam.exe and it should work

BOOST patch for mingw

Note: If you get link errors with boost.thread, Tomasz Kalicki points out that you may want to fix the boost header files. This is not necessarily required for Wt versions newer than 3.1.5 as those will define BOOST_THREAD_USE_LIB when not linking to a dynamic boost (-DBOOST_DYNAMIC=OFF), but you may want to use it anyway if you use boost.thread in your own application.

in boost_1_55_0\boost\thread\detail\config.hpp:
--- oldconfig.hpp 2010-07-09 20:13:09.000000000 +0200
+++ config.hpp 2010-09-16 11:11:48.000000000 +0200
@@ -37,7 +37,7 @@
#elif defined(BOOST_THREAD_USE_LIB) //Use lib
#else //Use default
# if defined(BOOST_THREAD_PLATFORM_WIN32)
-# if defined(BOOST_MSVC) || defined(BOOST_INTEL_WIN)
+# if defined(BOOST_MSVC) || defined(BOOST_INTEL_WIN) || defined(__MINGW32__)
//For compilers supporting auto-tss cleanup
//with Boost.Threads lib, use Boost.Threads lib
# define BOOST_THREAD_USE_LIB

See https://svn.boost.org/trac/boost/ticket/4614

in boost_1_55_0\libs\thread\src\win32\tss_pe.cpp

--- libs/thread/src/win32/tss_pe.cpp.orig 2010-09-16 15:46:01.375000000 +0200
+++ libs/thread/src/win32/tss_pe.cpp 2010-09-16 15:46:53.906250000 +0200
@@ -54,6 +54,7 @@
PIMAGE_TLS_CALLBACK __crt_xl_end__ __attribute__ ((section(".CRT$XLZ"))) = 0;
}

+#if 0
extern "C" const IMAGE_TLS_DIRECTORY32 _tls_used __attribute__ ((section(".rdata$T"))) =
{
(DWORD) &__tls_start__,
@@ -63,6 +64,7 @@
(DWORD) 0,
(DWORD) 0
};
+#endif

#elif defined(_MSC_VER) && !defined(UNDER_CE)


See https://svn.boost.org/trac/boost/ticket/4258

dll:
bjam --toolset=gcc --build-dir="c:/boost-build" --prefix="c:/minGW_libs" --stagedir="c:/stage" --with-date_time --with-filesystem --with-program_options --with-random --with-regex --with-signals --with-system --with-thread --layout=system variant=release link=shared threading=multi stage
bjam --toolset=gcc --build-dir="c:/boost-build" --prefix="c:/minGW_libs" --stagedir="c:/stage" --with-date_time --with-filesystem --with-program_options --with-random --with-regex --with-signals --with-system --with-thread --layout=system variant=release link=shared threading=multi install
a:

bjam --toolset=gcc --build-dir="c:/boost-build" --prefix="c:/minGW_libs" --stagedir="c:/stage" --with-date_time --with-filesystem --with-program_options --with-random --with-regex --with-signals --with-system --with-thread --layout=system variant=release link=static threading=multi stage
bjam --toolset=gcc --build-dir="c:/boost-build" --prefix="c:/minGW_libs" --stagedir="c:/stage" --with-date_time --with-filesystem --with-program_options --with-random --with-regex --with-signals --with-system --with-thread --layout=system variant=release link=static threading=multi install
(1-1/2)