boost: mingw-w64 4.01 compatibility fix

This reverts commit 65ca33b218.
This commit is contained in:
Mark Brand 2015-03-29 13:49:14 +02:00
parent 5327759c33
commit a8df43d132
3 changed files with 131 additions and 114 deletions

View File

@ -1,12 +1,18 @@
This file is part of MXE.
See index.html for further information.
From 7b1ff5c3a275e2903a7f35a3817d00f8a75b47d0 Mon Sep 17 00:00:00 2001
From: Tony Theodore <tonyt@logyst.com>
Date: Sun, 29 Mar 2015 12:55:15 +0200
Subject: [PATCH 1/3] fixes
This patch has been taken from:
https://aur.archlinux.org/packages/mingw-w64-boost/
diff -urN boost_1_57_0.orig/boost/detail/interlocked.hpp boost_1_57_0/boost/detail/interlocked.hpp
--- boost_1_57_0.orig/boost/detail/interlocked.hpp 2014-12-05 20:22:34.000000000 +1100
+++ boost_1_57_0/boost/detail/interlocked.hpp 2014-12-05 20:22:53.000000000 +1100
diff --git a/boost/detail/interlocked.hpp b/boost/detail/interlocked.hpp
index 2c91ce2..abc7c6d 100644
--- a/boost/detail/interlocked.hpp
+++ b/boost/detail/interlocked.hpp
@@ -1,6 +1,10 @@
#ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
#define BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
@ -18,9 +24,11 @@ diff -urN boost_1_57_0.orig/boost/detail/interlocked.hpp boost_1_57_0/boost/deta
//
// boost/detail/interlocked.hpp
//
diff -urN boost_1_57_0.orig/boost/detail/interlocked.hpp.orig boost_1_57_0/boost/detail/interlocked.hpp.orig
--- boost_1_57_0.orig/boost/detail/interlocked.hpp.orig 1970-01-01 10:00:00.000000000 +1000
+++ boost_1_57_0/boost/detail/interlocked.hpp.orig 2014-10-02 02:40:51.000000000 +1000
diff --git a/boost/detail/interlocked.hpp.orig b/boost/detail/interlocked.hpp.orig
new file mode 100644
index 0000000..2c91ce2
--- /dev/null
+++ b/boost/detail/interlocked.hpp.orig
@@ -0,0 +1,218 @@
+#ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
+#define BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
@ -240,10 +248,11 @@ diff -urN boost_1_57_0.orig/boost/detail/interlocked.hpp.orig boost_1_57_0/boost
+#endif
+
+#endif // #ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
diff -urN boost_1_57_0.orig/libs/context/build/Jamfile.v2 boost_1_57_0/libs/context/build/Jamfile.v2
--- boost_1_57_0.orig/libs/context/build/Jamfile.v2 2014-12-05 20:22:38.000000000 +1100
+++ boost_1_57_0/libs/context/build/Jamfile.v2 2014-12-05 20:22:53.000000000 +1100
@@ -581,6 +581,17 @@
diff --git a/libs/context/build/Jamfile.v2 b/libs/context/build/Jamfile.v2
index 7cc8a07..2143ed3 100644
--- a/libs/context/build/Jamfile.v2
+++ b/libs/context/build/Jamfile.v2
@@ -581,6 +581,17 @@ alias asm_context_sources
;
alias asm_context_sources
@ -261,7 +270,7 @@ diff -urN boost_1_57_0.orig/libs/context/build/Jamfile.v2 boost_1_57_0/libs/cont
: asm/make_i386_ms_pe_masm.asm
asm/jump_i386_ms_pe_masm.asm
dummy.cpp
@@ -715,6 +726,17 @@
@@ -715,6 +726,17 @@ alias asm_context_sources
;
alias asm_context_sources
@ -279,9 +288,11 @@ diff -urN boost_1_57_0.orig/libs/context/build/Jamfile.v2 boost_1_57_0/libs/cont
: asm/make_x86_64_ms_pe_masm.asm
asm/jump_x86_64_ms_pe_masm.asm
dummy.cpp
diff -urN boost_1_57_0.orig/libs/context/build/Jamfile.v2.orig boost_1_57_0/libs/context/build/Jamfile.v2.orig
--- boost_1_57_0.orig/libs/context/build/Jamfile.v2.orig 1970-01-01 10:00:00.000000000 +1000
+++ boost_1_57_0/libs/context/build/Jamfile.v2.orig 2014-10-20 17:26:00.000000000 +1100
diff --git a/libs/context/build/Jamfile.v2.orig b/libs/context/build/Jamfile.v2.orig
new file mode 100644
index 0000000..7cc8a07
--- /dev/null
+++ b/libs/context/build/Jamfile.v2.orig
@@ -0,0 +1,775 @@
+
+# Boost.Context Library Build Jamfile
@ -1058,9 +1069,11 @@ diff -urN boost_1_57_0.orig/libs/context/build/Jamfile.v2.orig boost_1_57_0/libs
+ ;
+
+boost-install boost_context ;
diff -urN boost_1_57_0.orig/libs/context/src/asm/jump_i386_ms_pe_gas.S boost_1_57_0/libs/context/src/asm/jump_i386_ms_pe_gas.S
--- boost_1_57_0.orig/libs/context/src/asm/jump_i386_ms_pe_gas.S 1970-01-01 10:00:00.000000000 +1000
+++ boost_1_57_0/libs/context/src/asm/jump_i386_ms_pe_gas.S 2014-12-05 20:22:53.000000000 +1100
diff --git a/libs/context/src/asm/jump_i386_ms_pe_gas.S b/libs/context/src/asm/jump_i386_ms_pe_gas.S
new file mode 100644
index 0000000..84ab084
--- /dev/null
+++ b/libs/context/src/asm/jump_i386_ms_pe_gas.S
@@ -0,0 +1,108 @@
+/*
+ Copyright Oliver Kowalke 2009.
@ -1170,9 +1183,11 @@ diff -urN boost_1_57_0.orig/libs/context/src/asm/jump_i386_ms_pe_gas.S boost_1_5
+ movl 0x14(%ecx), %ecx /* fetch the address to return to */
+
+ jmp *%ecx /* indirect jump to context */
diff -urN boost_1_57_0.orig/libs/context/src/asm/jump_x86_64_ms_pe_gas.S boost_1_57_0/libs/context/src/asm/jump_x86_64_ms_pe_gas.S
--- boost_1_57_0.orig/libs/context/src/asm/jump_x86_64_ms_pe_gas.S 1970-01-01 10:00:00.000000000 +1000
+++ boost_1_57_0/libs/context/src/asm/jump_x86_64_ms_pe_gas.S 2014-12-05 20:22:53.000000000 +1100
diff --git a/libs/context/src/asm/jump_x86_64_ms_pe_gas.S b/libs/context/src/asm/jump_x86_64_ms_pe_gas.S
new file mode 100644
index 0000000..32aa2a5
--- /dev/null
+++ b/libs/context/src/asm/jump_x86_64_ms_pe_gas.S
@@ -0,0 +1,189 @@
+/*
+ Copyright Oliver Kowalke 2009.
@ -1363,9 +1378,11 @@ diff -urN boost_1_57_0.orig/libs/context/src/asm/jump_x86_64_ms_pe_gas.S boost_1
+
+ jmp *%r10 /* indirect jump to caller */
+.seh_endproc
diff -urN boost_1_57_0.orig/libs/context/src/asm/make_i386_ms_pe_gas.S boost_1_57_0/libs/context/src/asm/make_i386_ms_pe_gas.S
--- boost_1_57_0.orig/libs/context/src/asm/make_i386_ms_pe_gas.S 1970-01-01 10:00:00.000000000 +1000
+++ boost_1_57_0/libs/context/src/asm/make_i386_ms_pe_gas.S 2014-12-05 20:22:53.000000000 +1100
diff --git a/libs/context/src/asm/make_i386_ms_pe_gas.S b/libs/context/src/asm/make_i386_ms_pe_gas.S
new file mode 100644
index 0000000..1b57faa
--- /dev/null
+++ b/libs/context/src/asm/make_i386_ms_pe_gas.S
@@ -0,0 +1,115 @@
+/*
+ Copyright Oliver Kowalke 2009.
@ -1482,9 +1499,11 @@ diff -urN boost_1_57_0.orig/libs/context/src/asm/make_i386_ms_pe_gas.S boost_1_5
+ hlt
+
+.def __exit; .scl 2; .type 32; .endef /* standard C library function */
diff -urN boost_1_57_0.orig/libs/context/src/asm/make_x86_64_ms_pe_gas.S boost_1_57_0/libs/context/src/asm/make_x86_64_ms_pe_gas.S
--- boost_1_57_0.orig/libs/context/src/asm/make_x86_64_ms_pe_gas.S 1970-01-01 10:00:00.000000000 +1000
+++ boost_1_57_0/libs/context/src/asm/make_x86_64_ms_pe_gas.S 2014-12-05 20:22:53.000000000 +1100
diff --git a/libs/context/src/asm/make_x86_64_ms_pe_gas.S b/libs/context/src/asm/make_x86_64_ms_pe_gas.S
new file mode 100644
index 0000000..5bfeeb1
--- /dev/null
+++ b/libs/context/src/asm/make_x86_64_ms_pe_gas.S
@@ -0,0 +1,132 @@
+/*
+ Copyright Oliver Kowalke 2009.
@ -1618,3 +1637,89 @@ diff -urN boost_1_57_0.orig/libs/context/src/asm/make_x86_64_ms_pe_gas.S boost_1
+.seh_endproc
+
+.def _exit; .scl 2; .type 32; .endef /* standard C library function */
--
2.1.0
From eddef4ea6e60df241c9afa9a6adc909c57f8095c Mon Sep 17 00:00:00 2001
From: Pavel Vatagin <pavelvat@gmail.com>
Date: Sun, 29 Mar 2015 12:57:11 +0200
Subject: [PATCH 2/3] more fixes
taken from https://github.com/boostorg/interprocess/pull/15
diff --git a/boost/interprocess/detail/win32_api.hpp b/boost/interprocess/detail/win32_api.hpp
index d9d3e70..7fcc907 100644
--- a/boost/interprocess/detail/win32_api.hpp
+++ b/boost/interprocess/detail/win32_api.hpp
@@ -28,11 +28,18 @@
#include <vector>
#include <memory>
+#if defined (BOOST_INTERPROCESS_WINDOWS)
+# include <cstdarg>
+# include <boost/detail/interlocked.hpp>
+#else
+# error "This file can only be included in Windows OS"
+#endif
+
#ifdef BOOST_USE_WINDOWS_H
#include <windows.h>
-#include <Wbemidl.h>
-#include <Objbase.h>
-#include <Shlobj.h>
+#include <wbemidl.h>
+#include <objbase.h>
+#include <shlobj.h>
#endif
#if defined(_MSC_VER)
@@ -44,13 +51,6 @@
# pragma comment( lib, "Shell32.lib" ) //SHGetSpecialFolderPathA
#endif
-#if defined (BOOST_INTERPROCESS_WINDOWS)
-# include <cstdarg>
-# include <boost/detail/interlocked.hpp>
-#else
-# error "This file can only be included in Windows OS"
-#endif
-
//////////////////////////////////////////////////////////////////////////////
//
// Declaration of Windows structures or typedefs if BOOST_USE_WINDOWS_H is used
@@ -2252,7 +2252,7 @@ inline bool get_last_bootup_time(std::string &stamp)
// Print the contents of each record in the buffer.
if(find_record_in_buffer(heap_deleter.get(), dwBytesRead, provider_name, event_id, pTypedRecord)){
char stamp_str[sizeof(unsigned long)*3+1];
- std::sprintf(&stamp_str[0], "%u", ((unsigned int)pTypedRecord->TimeGenerated));
+ sprintf(&stamp_str[0], "%u", ((unsigned int)pTypedRecord->TimeGenerated));
stamp = stamp_str;
break;
}
--
2.1.0
From 9081374d788ead34e417f0fe1aa34310156eb14f Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Sun, 29 Mar 2015 13:00:45 +0200
Subject: [PATCH 3/3] add missing winsock2.h
Otherwise windows.h might default to winsock.h.
diff --git a/boost/detail/interlocked.hpp b/boost/detail/interlocked.hpp
index abc7c6d..2cd60c1 100644
--- a/boost/detail/interlocked.hpp
+++ b/boost/detail/interlocked.hpp
@@ -24,6 +24,7 @@
#if defined( BOOST_USE_WINDOWS_H )
+# include <winsock2.h>
# include <windows.h>
# define BOOST_INTERLOCKED_INCREMENT InterlockedIncrement
--
2.1.0

View File

@ -1,48 +0,0 @@
diff -urN boost_1_57_0.orig/boost/interprocess/detail/win32_api.hpp boost_1_57_0/boost/interprocess/detail/win32_api.hpp
--- boost_1_57_0.orig/boost/interprocess/detail/win32_api.hpp 2014-10-18 19:58:22.000000000 +0400
+++ boost_1_57_0/boost/interprocess/detail/win32_api.hpp 2014-12-27 21:48:50.726444568 +0300
@@ -28,11 +28,18 @@
#include <vector>
#include <memory>
+#if defined (BOOST_INTERPROCESS_WINDOWS)
+# include <cstdarg>
+# include <boost/detail/interlocked.hpp>
+#else
+# error "This file can only be included in Windows OS"
+#endif
+
#ifdef BOOST_USE_WINDOWS_H
#include <windows.h>
-#include <Wbemidl.h>
-#include <Objbase.h>
-#include <Shlobj.h>
+#include <wbemidl.h>
+#include <objbase.h>
+#include <shlobj.h>
#endif
#if defined(_MSC_VER)
@@ -44,13 +51,6 @@
# pragma comment( lib, "Shell32.lib" ) //SHGetSpecialFolderPathA
#endif
-#if defined (BOOST_INTERPROCESS_WINDOWS)
-# include <cstdarg>
-# include <boost/detail/interlocked.hpp>
-#else
-# error "This file can only be included in Windows OS"
-#endif
-
//////////////////////////////////////////////////////////////////////////////
//
// Declaration of Windows structures or typedefs if BOOST_USE_WINDOWS_H is used
@@ -2252,7 +2252,7 @@
// Print the contents of each record in the buffer.
if(find_record_in_buffer(heap_deleter.get(), dwBytesRead, provider_name, event_id, pTypedRecord)){
char stamp_str[sizeof(unsigned long)*3+1];
- std::sprintf(&stamp_str[0], "%u", ((unsigned int)pTypedRecord->TimeGenerated));
+ sprintf(&stamp_str[0], "%u", ((unsigned int)pTypedRecord->TimeGenerated));
stamp = stamp_str;
break;
}

View File

@ -1,40 +0,0 @@
This file is part of MXE.
See index.html for further information.
From 85e9dfc67e95d8494372a8e23bca3c217b7b0599 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Sun, 29 Mar 2015 00:44:55 +0100
Subject: [PATCH] add missing includes
diff --git a/io/include/pcl/io/hdl_grabber.h b/io/include/pcl/io/hdl_grabber.h
index d86eda2..374ad2f 100644
--- a/io/include/pcl/io/hdl_grabber.h
+++ b/io/include/pcl/io/hdl_grabber.h
@@ -44,6 +44,9 @@
#include <pcl/io/impl/synchronized_queue.hpp>
#include <pcl/point_types.h>
#include <pcl/point_cloud.h>
+#ifdef WIN32
+#include <winsock2.h>
+#endif
#include <boost/asio.hpp>
#include <string>
diff --git a/io/include/pcl/io/robot_eye_grabber.h b/io/include/pcl/io/robot_eye_grabber.h
index 6045bfd..8593326 100644
--- a/io/include/pcl/io/robot_eye_grabber.h
+++ b/io/include/pcl/io/robot_eye_grabber.h
@@ -44,6 +44,9 @@
#include <pcl/io/impl/synchronized_queue.hpp>
#include <pcl/point_types.h>
#include <pcl/point_cloud.h>
+#ifdef WIN32
+#include <winsock2.h>
+#endif
#include <boost/asio.hpp>
#include <boost/thread/thread.hpp>
--
2.1.0