+++ /dev/null
-From 3bfcb171026c4fd5c7caf807f79184a81c8af5b2 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=B6rg=20Krause?= <joerg.krause@embedded.rocks>
-Date: Sun, 11 Sep 2016 21:09:22 +0200
-Subject: [PATCH] Check for std::future
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-std::future is not available for all architectures, e.g. it is missing
-for ARMv5 (soft-float).
-
-The problem is that libstdc++ only enables `std::future` if
-`ATOMIC_INT_LOCK_FREE > 1` which is not true for the ARMv5 target.
-
-As the future functionality is not used for much we just ifdef out the
-parts from `std::future`.
-
-Upstream-status: https://github.com/medoc92/libupnpp/issues/8
-
-This patch is squashed from two upstream commits:
-1/ d3e3cada667cca5b70693b351e5865231275dd82
-2/ 90407dcc206987c8e58d61c64db539489f0717d2
-
-Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
----
- configure.ac | 17 +++++++++++++++++
- libupnpp/config.h.in | 3 +++
- libupnpp/workqueue.h | 14 +++++++++++++-
- 3 files changed, 33 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 877a773..9ff2058 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -47,6 +47,23 @@ AC_DEFINE([_FILE_OFFSET_BITS], [64], [File Offset size])
- AC_CHECK_LIB([rt], [clock_gettime], [], [])
- AC_CHECK_LIB([pthread], [pthread_create], [], [])
-
-+# Check that std::future is available.
-+AC_LANG_PUSH([C++])
-+CXXFLAGS="-std=c++11 $CXXFLAGS"
-+AC_MSG_CHECKING([whether std::future is available])
-+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <future>]],
-+ [[std::future<int> f;]])],
-+ [ AC_DEFINE([HAVE_STD_FUTURE], [1],
-+ [Define to 1 if you have the `std::future`.])
-+ have_std_future=yes
-+ ],
-+ [
-+ have_std_future=no
-+ ]
-+)
-+AC_MSG_RESULT([$have_std_future])
-+AC_LANG_POP
-+
- # The 2 following checks for libthreadutil and libixml are normally
- # unnecessary and even problematic. libupnpp does not use them directly,
- # and they should be used automatically because libupnpp is linked with them.
-diff --git a/libupnpp/config.h.in b/libupnpp/config.h.in
-index 39fa410..4471855 100644
---- a/libupnpp/config.h.in
-+++ b/libupnpp/config.h.in
-@@ -36,6 +36,9 @@
- /* Define to 1 if you have the <stdlib.h> header file. */
- #undef HAVE_STDLIB_H
-
-+/* Define to 1 if you have the `std::future`. */
-+#undef HAVE_STD_FUTURE
-+
- /* Define to 1 if you have the <strings.h> header file. */
- #undef HAVE_STRINGS_H
-
-diff --git a/libupnpp/workqueue.h b/libupnpp/workqueue.h
-index 52a6138..9c0ec02 100644
---- a/libupnpp/workqueue.h
-+++ b/libupnpp/workqueue.h
-@@ -18,7 +18,9 @@
- #define _WORKQUEUE_H_INCLUDED_
-
- #include <thread>
-+#if HAVE_STD_FUTURE
- #include <future>
-+#endif
- #include <string>
- #include <queue>
- #include <list>
-@@ -76,10 +78,14 @@ public:
- bool start(int nworkers, void *(workproc)(void *), void *arg) {
- std::unique_lock<std::mutex> lock(m_mutex);
- for (int i = 0; i < nworkers; i++) {
-- std::packaged_task<void *(void *)> task(workproc);
- Worker w;
-+#if HAVE_STD_FUTURE
-+ std::packaged_task<void *(void *)> task(workproc);
- w.res = task.get_future();
- w.thr = std::thread(std::move(task), arg);
-+#else
-+ w.thr = std::thread(workproc, arg);
-+#endif
- m_worker_threads.push_back(std::move(w));
- }
- return true;
-@@ -189,7 +195,11 @@ public:
- // Workers return (void*)1 if ok
- void *statusall = (void*)1;
- while (!m_worker_threads.empty()) {
-+#if HAVE_STD_FUTURE
- void *status = m_worker_threads.front().res.get();
-+#else
-+ void *status = (void*) 1;
-+#endif
- m_worker_threads.front().thr.join();
- if (status == (void *)0) {
- statusall = status;
-@@ -305,7 +315,9 @@ private:
-
- struct Worker {
- std::thread thr;
-+#if HAVE_STD_FUTURE
- std::future<void *> res;
-+#endif
- };
-
- // Configuration
---
-2.9.3
-
+++ /dev/null
-From 22ec8e3a2b54a4e1fd1340a592f49829d6cde735 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=B6rg=20Krause?= <joerg.krause@embedded.rocks>
-Date: Sun, 11 Sep 2016 22:26:33 +0200
-Subject: [PATCH] Add pkg-config file
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Add a pkg-config file.
-
-Fetched from:
-https://github.com/medoc92/libupnpp/commit/9f03bb0e7b47e2843edea6f25ed9eabbfb6412df
-
-Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
----
- Makefile.am | 3 +++
- configure.ac | 1 +
- libupnpp.pc.in | 12 ++++++++++++
- 3 files changed, 16 insertions(+)
- create mode 100644 libupnpp.pc.in
-
-diff --git a/Makefile.am b/Makefile.am
-index 2d20b9b..39559e9 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -112,3 +112,6 @@ nobase_include_HEADERS = \
- libupnpp_la_LDFLAGS = -version-info $(VERSION_INFO)
-
- libupnpp_la_LIBADD = $(LIBUPNPP_LIBS)
-+
-+pkgconfigdir = $(libdir)/pkgconfig
-+pkgconfig_DATA = libupnpp.pc
-diff --git a/configure.ac b/configure.ac
-index 9ff2058..89525b3 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -90,4 +90,5 @@ AC_SUBST(LIBUPNPP_LIBS)
- AC_SUBST(VERSION_INFO)
-
- AC_CONFIG_FILES([Makefile])
-+AC_CONFIG_FILES([libupnpp.pc])
- AC_OUTPUT
-diff --git a/libupnpp.pc.in b/libupnpp.pc.in
-new file mode 100644
-index 0000000..90f4b2b
---- /dev/null
-+++ b/libupnpp.pc.in
-@@ -0,0 +1,12 @@
-+prefix=@prefix@
-+exec_prefix=@exec_prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: @PACKAGE_NAME@
-+Description: C++ wrapper for libupnp
-+Version: @PACKAGE_VERSION@
-+Requires: libcurl libupnp
-+Libs: -L${libdir} -lupnpp
-+Libs.private: -lexpat -lpthread -lrt
-+Cflags: -I${includedir}
---
-2.9.3
-