sumo: Update to 1.3.1

Converted to CMake for simplicity.

Added upstream patch to use sleep_for instead of deprecated usleep.

Added patch to fix compilation with musl.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
(cherry picked from commit a9abe60ef4)
This commit is contained in:
Rosen Penev
2019-10-03 18:27:01 -07:00
committed by Josef Schlehofer
parent de41dcbf27
commit fa49751a8b
4 changed files with 106 additions and 27 deletions
+73
View File
@@ -0,0 +1,73 @@
From d35215b50bfea42c8a1d884c65fda1dee8b62d50 Mon Sep 17 00:00:00 2001
From: Michael Behrisch <michael.behrisch@dlr.de>
Date: Fri, 4 Oct 2019 11:41:29 +0200
Subject: [PATCH] removing usleep, refs #12, fix #6133
---
src/utils/foxtools/FXSingleEventThread.cpp | 9 +++------
src/utils/iodevices/OutputDevice_Network.cpp | 17 ++++-------------
2 files changed, 7 insertions(+), 19 deletions(-)
diff --git a/src/utils/foxtools/FXSingleEventThread.cpp b/src/utils/foxtools/FXSingleEventThread.cpp
index 4b12fb920f..f545c18439 100644
--- a/src/utils/foxtools/FXSingleEventThread.cpp
+++ b/src/utils/foxtools/FXSingleEventThread.cpp
@@ -35,6 +35,8 @@
#else
#include <process.h>
#endif
+#include <chrono>
+#include <thread>
#ifndef WIN32
# define PIPE_READ 0
@@ -137,12 +139,7 @@ FXSingleEventThread::onThreadEvent(FXObject*, FXSelector, void*) {
void
FXSingleEventThread::sleep(long ms) {
-#ifdef WIN32
- Sleep(ms);
-#else
- long long us = ms * 1000;
- usleep(us);
-#endif
+ std::this_thread::sleep_for(std::chrono::milliseconds(ms));
}
diff --git a/src/utils/iodevices/OutputDevice_Network.cpp b/src/utils/iodevices/OutputDevice_Network.cpp
index 2c20ce96aa..6bde32e1e6 100644
--- a/src/utils/iodevices/OutputDevice_Network.cpp
+++ b/src/utils/iodevices/OutputDevice_Network.cpp
@@ -21,15 +21,10 @@
// ==========================================================================
// included modules
// ==========================================================================
-#include <config.h> // #ifdef _MSC_VER
+#include <config.h>
-#ifdef WIN32
-#define NOMINMAX
-#include <windows.h>
-#undef NOMINMAX
-#else
-#include <unistd.h>
-#endif
+#include <thread>
+#include <chrono>
#include <vector>
#include "OutputDevice_Network.h"
#include "foreign/tcpip/socket.h"
@@ -57,11 +52,7 @@ OutputDevice_Network::OutputDevice_Network(const std::string& host,
if (wait == 9000) {
throw IOError(toString(e.what()) + " (host: " + host + ", port: " + toString(port) + ")");
}
-#ifdef WIN32
- Sleep(wait);
-#else
- usleep(wait * 1000);
-#endif
+ std::this_thread::sleep_for(std::chrono::milliseconds(wait));
}
}
myFilename = host + ":" + toString(port);
+26
View File
@@ -0,0 +1,26 @@
--- a/src/foreign/zstr/strict_fstream.hpp
+++ b/src/foreign/zstr/strict_fstream.hpp
@@ -33,17 +33,17 @@ static std::string strerror()
{
buff = "Unknown error";
}
-#elif __APPLE__ || ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE)
+#elif defined(__GLIBC__)
+// GNU-specific strerror_r()
+ auto p = strerror_r(errno, &buff[0], buff.size());
+ std::string tmp(p, std::strlen(p));
+ std::swap(buff, tmp);
+#else
// XSI-compliant strerror_r()
if (strerror_r(errno, &buff[0], buff.size()) != 0)
{
buff = "Unknown error";
}
-#else
-// GNU-specific strerror_r()
- auto p = strerror_r(errno, &buff[0], buff.size());
- std::string tmp(p, std::strlen(p));
- std::swap(buff, tmp);
#endif
buff.resize(buff.find('\0'));
return buff;
@@ -1,14 +0,0 @@
--- a/configure.ac
+++ b/configure.ac
@@ -87,11 +87,6 @@ dnl - - - - - - - - - - - - - - - - - -
case "$host" in
x86-*-linux* | ia64-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux*)
dnl Make sure we are on architecture that supports SIMD
- if test x$CXX = xclang++; then
- CXXFLAGS="-msse2 $CXXFLAGS"
- else
- CXXFLAGS="-msse2 -mfpmath=sse $CXXFLAGS"
- fi
;;
*-cygwin*)
AC_DEFINE([HAVE_CYGWIN], [1], [Define if compiling under cygwin])