Merge pull request #5204 from str4d/win-7
build: Set minimum required Windows version to Windows 7
This commit is contained in:
commit
5869a48f0d
57
configure.ac
57
configure.ac
|
@ -370,33 +370,29 @@ use_pkgconfig=yes
|
|||
case $host in
|
||||
*mingw*)
|
||||
|
||||
#pkgconfig does more harm than good with MinGW
|
||||
dnl pkgconfig does more harm than good with MinGW
|
||||
use_pkgconfig=no
|
||||
|
||||
TARGET_OS=windows
|
||||
AC_CHECK_LIB([mingwthrd], [main],, AC_MSG_ERROR(lib missing))
|
||||
AC_CHECK_LIB([kernel32], [main],, AC_MSG_ERROR(lib missing))
|
||||
AC_CHECK_LIB([user32], [main],, AC_MSG_ERROR(lib missing))
|
||||
AC_CHECK_LIB([gdi32], [main],, AC_MSG_ERROR(lib missing))
|
||||
AC_CHECK_LIB([comdlg32], [main],, AC_MSG_ERROR(lib missing))
|
||||
AC_CHECK_LIB([winspool], [main],, AC_MSG_ERROR(lib missing))
|
||||
AC_CHECK_LIB([winmm], [main],, AC_MSG_ERROR(lib missing))
|
||||
AC_CHECK_LIB([shell32], [main],, AC_MSG_ERROR(lib missing))
|
||||
AC_CHECK_LIB([comctl32], [main],, AC_MSG_ERROR(lib missing))
|
||||
AC_CHECK_LIB([ole32], [main],, AC_MSG_ERROR(lib missing))
|
||||
AC_CHECK_LIB([oleaut32], [main],, AC_MSG_ERROR(lib missing))
|
||||
AC_CHECK_LIB([uuid], [main],, AC_MSG_ERROR(lib missing))
|
||||
AC_CHECK_LIB([rpcrt4], [main],, AC_MSG_ERROR(lib missing))
|
||||
AC_CHECK_LIB([advapi32], [main],, AC_MSG_ERROR(lib missing))
|
||||
AC_CHECK_LIB([ws2_32], [main],, AC_MSG_ERROR(lib missing))
|
||||
AC_CHECK_LIB([mswsock], [main],, AC_MSG_ERROR(lib missing))
|
||||
AC_CHECK_LIB([shlwapi], [main],, AC_MSG_ERROR(lib missing))
|
||||
AC_CHECK_LIB([iphlpapi], [main],, AC_MSG_ERROR(lib missing))
|
||||
AC_CHECK_LIB([crypt32], [main],, AC_MSG_ERROR(lib missing))
|
||||
AC_CHECK_LIB([ntdll], [main],, AC_MSG_ERROR(lib missing))
|
||||
AC_CHECK_LIB([kernel32], [GetModuleFileNameA],, AC_MSG_ERROR(libkernel32 missing))
|
||||
AC_CHECK_LIB([user32], [main],, AC_MSG_ERROR(libuser32 missing))
|
||||
AC_CHECK_LIB([gdi32], [main],, AC_MSG_ERROR(libgdi32 missing))
|
||||
AC_CHECK_LIB([comdlg32], [main],, AC_MSG_ERROR(libcomdlg32 missing))
|
||||
AC_CHECK_LIB([winmm], [main],, AC_MSG_ERROR(libwinmm missing))
|
||||
AC_CHECK_LIB([shell32], [SHGetSpecialFolderPathW],, AC_MSG_ERROR(libshell32 missing))
|
||||
AC_CHECK_LIB([comctl32], [main],, AC_MSG_ERROR(libcomctl32 missing))
|
||||
AC_CHECK_LIB([ole32], [CoCreateInstance],, AC_MSG_ERROR(libole32 missing))
|
||||
AC_CHECK_LIB([oleaut32], [main],, AC_MSG_ERROR(liboleaut32 missing))
|
||||
AC_CHECK_LIB([uuid], [main],, AC_MSG_ERROR(libuuid missing))
|
||||
AC_CHECK_LIB([advapi32], [CryptAcquireContextW],, AC_MSG_ERROR(libadvapi32 missing))
|
||||
AC_CHECK_LIB([ws2_32], [WSAStartup],, AC_MSG_ERROR(libws2_32 missing))
|
||||
AC_CHECK_LIB([shlwapi], [PathRemoveFileSpecW],, AC_MSG_ERROR(libshlwapi missing))
|
||||
AC_CHECK_LIB([iphlpapi], [GetAdaptersAddresses],, AC_MSG_ERROR(libiphlpapi missing))
|
||||
AC_CHECK_LIB([ntdll], [main],, AC_MSG_ERROR(libntdll missing))
|
||||
AC_CHECK_LIB([bcrypt], [main],, AC_MSG_ERROR(libbcrypt missing))
|
||||
|
||||
# -static is interpreted by libtool, where it has a different meaning.
|
||||
# In libtool-speak, it's -all-static.
|
||||
dnl -static is interpreted by libtool, where it has a different meaning.
|
||||
dnl In libtool-speak, it's -all-static.
|
||||
AX_CHECK_LINK_FLAG([[-static]],[LIBTOOL_APP_LDFLAGS="$LIBTOOL_APP_LDFLAGS -all-static"])
|
||||
|
||||
AC_PATH_PROG([MAKENSIS], [makensis], none)
|
||||
|
@ -406,17 +402,8 @@ case $host in
|
|||
|
||||
ZC_REQUIRE_TOOL(WINDRES, windres)
|
||||
|
||||
CPPFLAGS="$CPPFLAGS -D_MT -DWIN32 -D_WINDOWS -DBOOST_THREAD_USE_LIB"
|
||||
CPPFLAGS="$CPPFLAGS -D_MT -DWIN32 -D_WINDOWS -DBOOST_THREAD_USE_LIB -D_WIN32_WINNT=0x0601 -D_WIN32_IE=0x0501 -DWIN32_LEAN_AND_MEAN"
|
||||
LEVELDB_TARGET_FLAGS="-DOS_WINDOWS"
|
||||
if test "x$CXXFLAGS_overridden" = "xno"; then
|
||||
CXXFLAGS="$CXXFLAGS -w"
|
||||
fi
|
||||
case $host in
|
||||
i?86-*) WINDOWS_BITS=32 ;;
|
||||
x86_64-*) WINDOWS_BITS=64 ;;
|
||||
*) AC_MSG_ERROR("Could not determine win32/win64 for installer") ;;
|
||||
esac
|
||||
AC_SUBST(WINDOWS_BITS)
|
||||
|
||||
dnl libtool insists upon adding -nostdlib and a list of objects/libs to link against.
|
||||
dnl That breaks our ability to build dll's with static libgcc/libstdc++/libssp. Override
|
||||
|
@ -426,6 +413,8 @@ case $host in
|
|||
archive_cmds_CXX="\$CC -shared \$libobjs \$deplibs \$compiler_flags -static -o \$output_objdir/\$soname \${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker \$lib"
|
||||
postdeps_CXX=
|
||||
|
||||
dnl We require Windows 7 (NT 6.1) or later
|
||||
AX_CHECK_LINK_FLAG([[-Wl,--major-subsystem-version -Wl,6 -Wl,--minor-subsystem-version -Wl,1]],[LDFLAGS="$LDFLAGS -Wl,--major-subsystem-version -Wl,6 -Wl,--minor-subsystem-version -Wl,1"],,[[$LDFLAG_WERROR]])
|
||||
;;
|
||||
*darwin*)
|
||||
TARGET_OS=darwin
|
||||
|
@ -561,8 +550,6 @@ if test x$ac_cv_sys_large_files != x &&
|
|||
CPPFLAGS="$CPPFLAGS -D_LARGE_FILES=$ac_cv_sys_large_files"
|
||||
fi
|
||||
|
||||
AX_CHECK_LINK_FLAG([[-Wl,--large-address-aware]], [LDFLAGS="$LDFLAGS -Wl,--large-address-aware"])
|
||||
|
||||
AX_GCC_FUNC_ATTRIBUTE([visibility])
|
||||
AX_GCC_FUNC_ATTRIBUTE([dllexport])
|
||||
AX_GCC_FUNC_ATTRIBUTE([dllimport])
|
||||
|
|
|
@ -4,17 +4,23 @@ $(package)_download_path=https://github.com/libevent/libevent/archive/
|
|||
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
||||
$(package)_download_file=release-$($(package)_version)-stable.tar.gz
|
||||
$(package)_sha256_hash=7180a979aaa7000e1264da484f712d403fcf7679b1e9212c4e3d09f5c93efc24
|
||||
$(package)_patches=0001-fix-windows-getaddrinfo.patch
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 < $($(package)_patch_dir)/0001-fix-windows-getaddrinfo.patch && \
|
||||
./autogen.sh
|
||||
endef
|
||||
|
||||
# When building for Windows, we set _WIN32_WINNT to target the same Windows
|
||||
# version as we do in configure. Due to quirks in libevents build system, this
|
||||
# is also required to enable support for ipv6. See #19375.
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-shared --disable-openssl --disable-libevent-regress
|
||||
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
|
||||
$(package)_config_opts_release=--disable-debug-mode
|
||||
$(package)_config_opts_linux=--with-pic
|
||||
$(package)_config_opts_freebsd=--with-pic
|
||||
$(package)_cppflags_mingw32=-D_WIN32_WINNT=0x0601
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
diff -ur libevent-2.1.8-stable.orig/configure.ac libevent-2.1.8-stable/configure.ac
|
||||
--- libevent-2.1.8-stable.orig/configure.ac 2017-01-29 17:51:00.000000000 +0000
|
||||
+++ libevent-2.1.8-stable/configure.ac 2020-03-07 01:11:16.311335005 +0000
|
||||
@@ -389,6 +389,10 @@
|
||||
#ifdef HAVE_NETDB_H
|
||||
#include <netdb.h>
|
||||
#endif
|
||||
+#ifdef _WIN32
|
||||
+#include <winsock2.h>
|
||||
+#include <ws2tcpip.h>
|
||||
+#endif
|
||||
]],
|
||||
[[
|
||||
getaddrinfo;
|
||||
Only in libevent-2.1.8-stable: configure.ac~
|
|
@ -4,3 +4,9 @@ release-notes at release time)
|
|||
Notable changes
|
||||
===============
|
||||
|
||||
Build system changes
|
||||
--------------------
|
||||
|
||||
- Cross-compilation support for Windows XP, Windows Vista, and 32-bit Windows
|
||||
binaries, has been removed. Cross-compiled Windows binaries are now 64-bit
|
||||
only, and target a minimum of Windows 7.
|
||||
|
|
|
@ -25,7 +25,7 @@ LEVELDB_CPPFLAGS_INT += -DLEVELDB_ATOMIC_PRESENT
|
|||
LEVELDB_CPPFLAGS_INT += -D__STDC_LIMIT_MACROS
|
||||
|
||||
if TARGET_WINDOWS
|
||||
LEVELDB_CPPFLAGS_INT += -DLEVELDB_PLATFORM_WINDOWS -DWINVER=0x0500 -D__USE_MINGW_ANSI_STDIO=1
|
||||
LEVELDB_CPPFLAGS_INT += -DLEVELDB_PLATFORM_WINDOWS -D__USE_MINGW_ANSI_STDIO=1
|
||||
else
|
||||
LEVELDB_CPPFLAGS_INT += -DLEVELDB_PLATFORM_POSIX
|
||||
endif
|
||||
|
|
|
@ -11,13 +11,6 @@
|
|||
#endif
|
||||
|
||||
#ifdef WIN32
|
||||
#ifdef _WIN32_WINNT
|
||||
#undef _WIN32_WINNT
|
||||
#endif
|
||||
#define _WIN32_WINNT 0x0501
|
||||
#ifndef WIN32_LEAN_AND_MEAN
|
||||
#define WIN32_LEAN_AND_MEAN 1
|
||||
#endif
|
||||
#ifndef NOMINMAX
|
||||
#define NOMINMAX
|
||||
#endif
|
||||
|
|
11
src/init.cpp
11
src/init.cpp
|
@ -890,16 +890,7 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler)
|
|||
#endif
|
||||
#ifdef WIN32
|
||||
// Enable Data Execution Prevention (DEP)
|
||||
// Minimum supported OS versions: WinXP SP3, WinVista >= SP1, Win Server 2008
|
||||
// A failure is non-critical and needs no further attention!
|
||||
#ifndef PROCESS_DEP_ENABLE
|
||||
// We define this here, because GCCs winbase.h limits this to _WIN32_WINNT >= 0x0601 (Windows 7),
|
||||
// which is not correct. Can be removed, when GCCs winbase.h is fixed!
|
||||
#define PROCESS_DEP_ENABLE 0x00000001
|
||||
#endif
|
||||
typedef BOOL (WINAPI *PSETPROCDEPPOL)(DWORD);
|
||||
PSETPROCDEPPOL setProcDEPPol = (PSETPROCDEPPOL)GetProcAddress(GetModuleHandleA("Kernel32.dll"), "SetProcessDEPPolicy");
|
||||
if (setProcDEPPol != NULL) setProcDEPPol(PROCESS_DEP_ENABLE);
|
||||
SetProcessDEPPolicy(PROCESS_DEP_ENABLE);
|
||||
#endif
|
||||
|
||||
if (!SetupNetworking())
|
||||
|
|
11
src/net.cpp
11
src/net.cpp
|
@ -39,17 +39,6 @@
|
|||
#define MSG_NOSIGNAL 0
|
||||
#endif
|
||||
|
||||
// Fix for ancient MinGW versions, that don't have defined these in ws2tcpip.h.
|
||||
// Todo: Can be removed when our pull-tester is upgraded to a modern MinGW version.
|
||||
#ifdef WIN32
|
||||
#ifndef PROTECTION_LEVEL_UNRESTRICTED
|
||||
#define PROTECTION_LEVEL_UNRESTRICTED 10
|
||||
#endif
|
||||
#ifndef IPV6_PROTECTION_LEVEL
|
||||
#define IPV6_PROTECTION_LEVEL 23
|
||||
#endif
|
||||
#endif
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace {
|
||||
|
|
|
@ -123,11 +123,7 @@ bool static LookupIntern(const char *pszName, std::vector<CNetAddr>& vIP, unsign
|
|||
aiHint.ai_socktype = SOCK_STREAM;
|
||||
aiHint.ai_protocol = IPPROTO_TCP;
|
||||
aiHint.ai_family = AF_UNSPEC;
|
||||
#ifdef WIN32
|
||||
aiHint.ai_flags = fAllowLookup ? 0 : AI_NUMERICHOST;
|
||||
#else
|
||||
aiHint.ai_flags = fAllowLookup ? AI_ADDRCONFIG : AI_NUMERICHOST;
|
||||
#endif
|
||||
|
||||
struct addrinfo *aiRes = NULL;
|
||||
#ifdef HAVE_GETADDRINFO_A
|
||||
|
|
|
@ -10,11 +10,6 @@
|
|||
#endif
|
||||
|
||||
#ifdef WIN32
|
||||
#ifdef _WIN32_WINNT
|
||||
#undef _WIN32_WINNT
|
||||
#endif
|
||||
#define _WIN32_WINNT 0x0501
|
||||
#define WIN32_LEAN_AND_MEAN 1
|
||||
#ifndef NOMINMAX
|
||||
#define NOMINMAX
|
||||
#endif
|
||||
|
|
11
src/util.cpp
11
src/util.cpp
|
@ -52,17 +52,6 @@
|
|||
#pragma warning(disable:4717)
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32_WINNT
|
||||
#undef _WIN32_WINNT
|
||||
#endif
|
||||
#define _WIN32_WINNT 0x0501
|
||||
|
||||
#ifdef _WIN32_IE
|
||||
#undef _WIN32_IE
|
||||
#endif
|
||||
#define _WIN32_IE 0x0501
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN 1
|
||||
#ifndef NOMINMAX
|
||||
#define NOMINMAX
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue