Skip to content
Snippets Groups Projects
Commit 71ce5247 authored by Deucе's avatar Deucе :ok_hand_tone4:
Browse files

Some more patches for mingw64

parent a04316c4
No related branches found
No related tags found
No related merge requests found
Pipeline #6786 passed
...@@ -96,6 +96,9 @@ set(PATCHES ...@@ -96,6 +96,9 @@ set(PATCHES
cl-ssh-sbbs-id-string.patch cl-ssh-sbbs-id-string.patch
cl-channel-select-both.patch cl-channel-select-both.patch
cl-allow-none-auth-svr.patch cl-allow-none-auth-svr.patch
cl-mingw64-thread-handles.patch
cl-mingw64-is-really-new.patch
cl-lowercase-versionhelpers.patch
) )
set(SOURCE set(SOURCE
......
...@@ -70,6 +70,9 @@ set(PATCHES ...@@ -70,6 +70,9 @@ set(PATCHES
${CMAKE_CURRENT_SOURCE_DIR}/cl-ssh-sbbs-id-string.patch ${CMAKE_CURRENT_SOURCE_DIR}/cl-ssh-sbbs-id-string.patch
${CMAKE_CURRENT_SOURCE_DIR}/cl-channel-select-both.patch ${CMAKE_CURRENT_SOURCE_DIR}/cl-channel-select-both.patch
${CMAKE_CURRENT_SOURCE_DIR}/cl-allow-none-auth-svr.patch ${CMAKE_CURRENT_SOURCE_DIR}/cl-allow-none-auth-svr.patch
${CMAKE_CURRENT_SOURCE_DIR}/cl-mingw64-thread-handles.patch
${CMAKE_CURRENT_SOURCE_DIR}/cl-mingw64-is-really-new.patch
${CMAKE_CURRENT_SOURCE_DIR}/cl-lowercase-versionhelpers.patch
) )
FetchContent_Declare(CryptLib FetchContent_Declare(CryptLib
......
...@@ -107,7 +107,7 @@ $(CRYPT_SRC): | $(3RDPSRCDIR) ...@@ -107,7 +107,7 @@ $(CRYPT_SRC): | $(3RDPSRCDIR)
$(CRYPT_IDIR): | $(3RDPODIR) $(CRYPT_IDIR): | $(3RDPODIR)
$(QUIET)$(IFNOTEXIST) mkdir $(CRYPT_IDIR) $(QUIET)$(IFNOTEXIST) mkdir $(CRYPT_IDIR)
$(CRYPTLIB_BUILD): $(3RDP_ROOT)/dist/cryptlib.zip $(3RDP_ROOT)/build/cl-fix-test-select.patch $(3RDP_ROOT)/build/cl-terminal-params.patch $(3RDP_ROOT)/build/cl-mingw32-static.patch $(3RDP_ROOT)/build/cl-ranlib.patch $(3RDP_ROOT)/build/cl-win32-noasm.patch $(3RDP_ROOT)/build/cl-zz-country.patch $(3RDP_ROOT)/build/cl-algorithms.patch $(3RDP_ROOT)/build/cl-allow-duplicate-ext.patch $(3RDP_ROOT)/build/cl-macosx-minver.patch $(3RDP_ROOT)/build/cl-posix-me-gently.patch $(3RDP_ROOT)/build/cl-PAM-noprompts.patch $(3RDP_ROOT)/build/cl-zlib.patch $(3RDP_ROOT)/build/cl-Dynamic-linked-static-lib.patch $(3RDP_ROOT)/build/cl-SSL-fix.patch $(3RDP_ROOT)/build/cl-bigger-maxattribute.patch $(3RDP_ROOT)/build/cl-endian.patch $(3RDP_ROOT)/build/cl-vcxproj.patch $(3RDP_ROOT)/build/cl-mingw-vcver.patch $(3RDP_ROOT)/build/cl-win32-build-fix.patch $(3RDP_ROOT)/build/cl-no-odbc.patch $(3RDP_ROOT)/build/cl-noasm-defines.patch $(3RDP_ROOT)/build/cl-bn-noasm64-fix.patch $(3RDP_ROOT)/build/cl-prefer-ECC.patch $(3RDP_ROOT)/build/cl-prefer-ECC-harder.patch $(3RDP_ROOT)/build/cl-clear-GCM-flag.patch $(3RDP_ROOT)/build/cl-use-ssh-ctr.patch $(3RDP_ROOT)/build/cl-ssl-suite-blocksizes.patch $(3RDP_ROOT)/build/cl-no-tpm.patch $(3RDP_ROOT)/build/cl-no-via-aes.patch $(3RDP_ROOT)/build/cl-fix-ssh-ecc-ephemeral.patch $(3RDP_ROOT)/build/cl-just-use-cc.patch $(3RDP_ROOT)/build/cl-no-safe-stack.patch $(3RDP_ROOT)/build/cl-allow-pkcs12.patch $(3RDP_ROOT)/build/cl-openbsd-threads.patch $(3RDP_ROOT)/build/cl-allow-none-auth.patch $(3RDP_ROOT)/build/cl-mingw-add-m32.patch $(3RDP_ROOT)/build/cl-poll-not-select.patch $(3RDP_ROOT)/build/cl-good-sockets.patch $(3RDP_ROOT)/build/cl-moar-objects.patch $(3RDP_ROOT)/build/cl-server-term-support.patch $(3RDP_ROOT)/build/cl-add-pubkey-attribute.patch $(3RDP_ROOT)/build/cl-allow-ssh-auth-retries.patch $(3RDP_ROOT)/build/cl-fix-ssh-channel-close.patch $(3RDP_ROOT)/build/cl-vt-lt-2005-always-defined.patch $(3RDP_ROOT)/build/cl-no-pie.patch $(3RDP_ROOT)/build/cl-no-testobjs.patch $(3RDP_ROOT)/build/cl-win32-lean-and-mean.patch $(3RDP_ROOT)/build/cl-thats-not-asm.patch $(3RDP_ROOT)/build/cl-make-channels-work.patch $(3RDP_ROOT)/build/cl-allow-ssh-2.0-go.patch $(3RDP_ROOT)/build/cl-read-timeout-every-time.patch $(3RDP_ROOT)/build/cl-allow-servercheck-pubkeys.patch $(3RDP_ROOT)/build/cl-pass-after-pubkey.patch $(3RDP_ROOT)/build/cl-ssh-list-ctr-modes.patch $(3RDP_ROOT)/build/cl-double-delete-fine-on-close.patch $(3RDP_ROOT)/build/cl-handle-unsupported-pubkey.patch $(3RDP_ROOT)/build/cl-add-patches-info.patch $(3RDP_ROOT)/build/cl-netbsd-hmac-symbol.patch $(3RDP_ROOT)/build/cl-netbsd-no-getfsstat.patch GNUmakefile $(3RDP_ROOT)/build/cl-remove-march.patch $(3RDP_ROOT)/build/cl-fix-shell-exec-types.patch $(3RDP_ROOT)/build/cl-ssh-eof-half-close.patch $(3RDP_ROOT)/build/cl-add-win64.patch $(3RDP_ROOT)/build/cl-fix-mb-w-conv-warnings.patch $(3RDP_ROOT)/build/cl-fix-ssh-header-read.patch $(3RDP_ROOT)/build/cl-ssh-service-type-for-channel.patch $(3RDP_ROOT)/build/cl-ssh-sbbs-id-string.patch $(3RDP_ROOT)/build/cl-channel-select-both.patch $(3RDP_ROOT)/build/cl-allow-none-auth-svr.patch $(3RDP_ROOT)/build/cl-quote-cc.patch | $(CRYPT_SRC) $(CRYPT_IDIR) $(CRYPTLIB_BUILD): $(3RDP_ROOT)/dist/cryptlib.zip $(3RDP_ROOT)/build/cl-fix-test-select.patch $(3RDP_ROOT)/build/cl-terminal-params.patch $(3RDP_ROOT)/build/cl-mingw32-static.patch $(3RDP_ROOT)/build/cl-ranlib.patch $(3RDP_ROOT)/build/cl-win32-noasm.patch $(3RDP_ROOT)/build/cl-zz-country.patch $(3RDP_ROOT)/build/cl-algorithms.patch $(3RDP_ROOT)/build/cl-allow-duplicate-ext.patch $(3RDP_ROOT)/build/cl-macosx-minver.patch $(3RDP_ROOT)/build/cl-posix-me-gently.patch $(3RDP_ROOT)/build/cl-PAM-noprompts.patch $(3RDP_ROOT)/build/cl-zlib.patch $(3RDP_ROOT)/build/cl-Dynamic-linked-static-lib.patch $(3RDP_ROOT)/build/cl-SSL-fix.patch $(3RDP_ROOT)/build/cl-bigger-maxattribute.patch $(3RDP_ROOT)/build/cl-endian.patch $(3RDP_ROOT)/build/cl-vcxproj.patch $(3RDP_ROOT)/build/cl-mingw-vcver.patch $(3RDP_ROOT)/build/cl-win32-build-fix.patch $(3RDP_ROOT)/build/cl-no-odbc.patch $(3RDP_ROOT)/build/cl-noasm-defines.patch $(3RDP_ROOT)/build/cl-bn-noasm64-fix.patch $(3RDP_ROOT)/build/cl-prefer-ECC.patch $(3RDP_ROOT)/build/cl-prefer-ECC-harder.patch $(3RDP_ROOT)/build/cl-clear-GCM-flag.patch $(3RDP_ROOT)/build/cl-use-ssh-ctr.patch $(3RDP_ROOT)/build/cl-ssl-suite-blocksizes.patch $(3RDP_ROOT)/build/cl-no-tpm.patch $(3RDP_ROOT)/build/cl-no-via-aes.patch $(3RDP_ROOT)/build/cl-fix-ssh-ecc-ephemeral.patch $(3RDP_ROOT)/build/cl-just-use-cc.patch $(3RDP_ROOT)/build/cl-no-safe-stack.patch $(3RDP_ROOT)/build/cl-allow-pkcs12.patch $(3RDP_ROOT)/build/cl-openbsd-threads.patch $(3RDP_ROOT)/build/cl-allow-none-auth.patch $(3RDP_ROOT)/build/cl-mingw-add-m32.patch $(3RDP_ROOT)/build/cl-poll-not-select.patch $(3RDP_ROOT)/build/cl-good-sockets.patch $(3RDP_ROOT)/build/cl-moar-objects.patch $(3RDP_ROOT)/build/cl-server-term-support.patch $(3RDP_ROOT)/build/cl-add-pubkey-attribute.patch $(3RDP_ROOT)/build/cl-allow-ssh-auth-retries.patch $(3RDP_ROOT)/build/cl-fix-ssh-channel-close.patch $(3RDP_ROOT)/build/cl-vt-lt-2005-always-defined.patch $(3RDP_ROOT)/build/cl-no-pie.patch $(3RDP_ROOT)/build/cl-no-testobjs.patch $(3RDP_ROOT)/build/cl-win32-lean-and-mean.patch $(3RDP_ROOT)/build/cl-thats-not-asm.patch $(3RDP_ROOT)/build/cl-make-channels-work.patch $(3RDP_ROOT)/build/cl-allow-ssh-2.0-go.patch $(3RDP_ROOT)/build/cl-read-timeout-every-time.patch $(3RDP_ROOT)/build/cl-allow-servercheck-pubkeys.patch $(3RDP_ROOT)/build/cl-pass-after-pubkey.patch $(3RDP_ROOT)/build/cl-ssh-list-ctr-modes.patch $(3RDP_ROOT)/build/cl-double-delete-fine-on-close.patch $(3RDP_ROOT)/build/cl-handle-unsupported-pubkey.patch $(3RDP_ROOT)/build/cl-add-patches-info.patch $(3RDP_ROOT)/build/cl-netbsd-hmac-symbol.patch $(3RDP_ROOT)/build/cl-netbsd-no-getfsstat.patch GNUmakefile $(3RDP_ROOT)/build/cl-remove-march.patch $(3RDP_ROOT)/build/cl-fix-shell-exec-types.patch $(3RDP_ROOT)/build/cl-ssh-eof-half-close.patch $(3RDP_ROOT)/build/cl-add-win64.patch $(3RDP_ROOT)/build/cl-fix-mb-w-conv-warnings.patch $(3RDP_ROOT)/build/cl-fix-ssh-header-read.patch $(3RDP_ROOT)/build/cl-ssh-service-type-for-channel.patch $(3RDP_ROOT)/build/cl-ssh-sbbs-id-string.patch $(3RDP_ROOT)/build/cl-channel-select-both.patch $(3RDP_ROOT)/build/cl-allow-none-auth-svr.patch $(3RDP_ROOT)/build/cl-quote-cc.patch $(3RDP_ROOT)/build/cl-mingw64-thread-handles.patch $(3RDP_ROOT)/build/cl-mingw64-is-really-new.patch $(3RDP_ROOT)/build/cl-lowercase-versionhelpers.patch | $(CRYPT_SRC) $(CRYPT_IDIR)
@echo Creating $@ ... @echo Creating $@ ...
$(QUIET)-rm -rf $(CRYPT_SRC)/* $(QUIET)-rm -rf $(CRYPT_SRC)/*
$(QUIET)unzip -oa $(3RDPDISTDIR)/cryptlib.zip -d $(CRYPT_SRC) $(QUIET)unzip -oa $(3RDPDISTDIR)/cryptlib.zip -d $(CRYPT_SRC)
...@@ -182,6 +182,9 @@ $(CRYPTLIB_BUILD): $(3RDP_ROOT)/dist/cryptlib.zip $(3RDP_ROOT)/build/cl-fix-test ...@@ -182,6 +182,9 @@ $(CRYPTLIB_BUILD): $(3RDP_ROOT)/dist/cryptlib.zip $(3RDP_ROOT)/build/cl-fix-test
$(QUIET)patch -b -p0 -d $(CRYPT_SRC) < cl-channel-select-both.patch $(QUIET)patch -b -p0 -d $(CRYPT_SRC) < cl-channel-select-both.patch
$(QUIET)patch -b -p0 -d $(CRYPT_SRC) < cl-allow-none-auth-svr.patch $(QUIET)patch -b -p0 -d $(CRYPT_SRC) < cl-allow-none-auth-svr.patch
$(QUIET)patch -b -p0 -d $(CRYPT_SRC) < cl-quote-cc.patch $(QUIET)patch -b -p0 -d $(CRYPT_SRC) < cl-quote-cc.patch
$(QUIET)patch -b -p0 -d $(CRYPT_SRC) < cl-mingw64-thread-handles.patch
$(QUIET)patch -b -p0 -d $(CRYPT_SRC) < cl-mingw64-is-really-new.patch
$(QUIET)patch -b -p0 -d $(CRYPT_SRC) < cl-lowercase-versionhelpers.patch
$(QUIET)perl -pi.bak -e 's/^(#define CRYPTLIB_VERSION.*)$$/"$$1\n#define CRYPTLIB_PATCHES \"" . (chomp($$val = `cat cl-*.patch | if (which md5sum > \/dev\/null 2>&1); then md5sum; else md5; fi`), $$val) . "\""/e' $(CRYPT_SRC)/cryptlib.h $(QUIET)perl -pi.bak -e 's/^(#define CRYPTLIB_VERSION.*)$$/"$$1\n#define CRYPTLIB_PATCHES \"" . (chomp($$val = `cat cl-*.patch | if (which md5sum > \/dev\/null 2>&1); then md5sum; else md5; fi`), $$val) . "\""/e' $(CRYPT_SRC)/cryptlib.h
$(QUIET)sed -E -iorig 's/%%MIN_MAC_OSX_VERSION%%/${MIN_MAC_OSX_VERSION}/g' $(CRYPT_SRC)/tools/ccopts.sh $(QUIET)sed -E -iorig 's/%%MIN_MAC_OSX_VERSION%%/${MIN_MAC_OSX_VERSION}/g' $(CRYPT_SRC)/tools/ccopts.sh
ifdef FIXED_FIXED_SEED ifdef FIXED_FIXED_SEED
......
--- io/file.c.orig 2024-10-12 01:53:03.081690000 -0400
+++ io/file.c 2024-10-12 01:53:29.042894000 -0400
@@ -5996,7 +5996,7 @@
#if VC_GE_2005( _MSC_VER )
#pragma warning( push )
#pragma warning( disable : 4255 ) /* Errors in VersionHelpers.h */
- #include <VersionHelpers.h>
+ #include <versionhelpers.h>
#pragma warning( pop )
#endif /* VC++ >= 2005 */
#ifdef __WIN64__
--- misc/os_spec.c.orig 2024-10-12 01:53:13.741978000 -0400
+++ misc/os_spec.c 2024-10-12 01:53:36.082901000 -0400
@@ -1203,7 +1203,7 @@
#if VC_GE_2005( _MSC_VER )
#pragma warning( push )
#pragma warning( disable : 4255 ) /* Errors in VersionHelpers.h */
- #include <VersionHelpers.h>
+ #include <versionhelpers.h>
#pragma warning( pop )
#endif /* VC++ >= 2005 */
--- misc/os_detect.h.orig 2024-10-12 01:44:33.718810000 -0400
+++ misc/os_detect.h 2024-10-12 01:46:02.749506000 -0400
@@ -266,22 +266,41 @@
#define VC_GE_2017( version ) ( ( version ) >= 1910 )
#define VC_GE_2019( version ) ( ( version ) >= 1920 )
#else
- /* These aren't specifically required on non-VC++ systems, but some
- preprocessors get confused if they aren't defined */
- #define VC_16BIT( version ) 0
- #define VC_LE_VC6( version ) 0
- #define VC_GE_2002( version ) 1
- #define VC_LT_2005( version ) 1
- #define VC_GE_2005( version ) 0
- #define VC_GE_2008( version ) 0
- #define VC_LT_2010( version ) 1
- #define VC_GE_2010( version ) 0
- #define VC_GE_2012( version ) 0
- #define VC_GE_2013( version ) 0
- #define VC_GE_2015( version ) 0
- #define VC_LT_2017( version ) 0
- #define VC_GE_2017( version ) 0
- #define VC_GE_2019( version ) 0
+ #ifdef __MINGW64_VERSION_MAJOR
+ /* These aren't specifically required on non-VC++ systems, but
+ cryptlib code get confused if they aren't defined */
+ #define VC_16BIT( version ) 0
+ #define VC_LE_VC6( version ) 0
+ #define VC_GE_2002( version ) 1
+ #define VC_LT_2005( version ) 0
+ #define VC_GE_2005( version ) 1
+ #define VC_GE_2008( version ) 1
+ #define VC_LT_2010( version ) 0
+ #define VC_GE_2010( version ) 1
+ #define VC_GE_2012( version ) 1
+ #define VC_GE_2013( version ) 1
+ #define VC_GE_2015( version ) 1
+ #define VC_LT_2017( version ) 0
+ #define VC_GE_2017( version ) 1
+ #define VC_GE_2019( version ) 1
+ #else
+ /* These aren't specifically required on non-VC++ systems, but some
+ preprocessors get confused if they aren't defined */
+ #define VC_16BIT( version ) 0
+ #define VC_LE_VC6( version ) 0
+ #define VC_GE_2002( version ) 1
+ #define VC_LT_2005( version ) 1
+ #define VC_GE_2005( version ) 0
+ #define VC_GE_2008( version ) 0
+ #define VC_LT_2010( version ) 1
+ #define VC_GE_2010( version ) 0
+ #define VC_GE_2012( version ) 0
+ #define VC_GE_2013( version ) 0
+ #define VC_GE_2015( version ) 0
+ #define VC_LT_2017( version ) 0
+ #define VC_GE_2017( version ) 0
+ #define VC_GE_2019( version ) 0
+ #endif
#endif /* Visual C++ */
/* If we're compiling under VC++ with the maximum level of warnings, turn
--- kernel/thread.h.orig 2024-10-12 01:31:26.417813000 -0400
+++ kernel/thread.h 2024-10-12 01:38:37.740140000 -0400
@@ -3529,7 +3529,7 @@
/* Object handles */
-#define THREAD_HANDLE DWORD
+#define THREAD_HANDLE unsigned int
#define MUTEX_HANDLE HANDLE
/* Mutex management functions. InitializeCriticalSection() doesn't return
@@ -3647,7 +3647,7 @@
#if defined( __WIN32__ )
#define THREADFUNC_DEFINE( name, arg ) \
unsigned __stdcall name( void *arg )
- #if defined( _MSC_VER ) && VC_GE_2005( _MSC_VER )
+ #if (defined( _MSC_VER ) && VC_GE_2005( _MSC_VER )) || defined(__MINGW64_VERSION_MAJOR)
#define THREAD_CREATE( function, arg, threadHandle, syncHandle, status ) \
{ \
uintptr_t hThread; \
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment