mirror of
https://github.com/libssh2/libssh2.git
synced 2025-11-06 20:49:29 +03:00
- in `hostkey.c` check the result of `libssh2_sha256_init()` and `libssh2_sha512_init()` calls. This avoid the warning that we're ignoring the return values. - fix code using `int` (or `SOCKET`) for sockets. Use libssh2's dedicated `libssh2_socket_t` and `LIBSSH2_INVALID_SOCKET` instead. - fix compiler warnings due to `STATUS_*` macro redefinitions between `ntstatus.h` / `winnt.h`. Solve it by manually defining the single `STATUS` value we need from `ntstatus.h` and stop including the whole header. Fixes #733 - improve Windows UWP/WinRT builds by detecting it with code copied from the curl project. Then excluding problematic libssh2 parts according to PR by Dmitry Kostjučenko. Fixes #734 - always use `SecureZeroMemory()` on Windows. We can tweak this if not found or not inlined by a C compiler which we otherwise support. Same if it causes issues with UWP apps. Ref: https://learn.microsoft.com/en-us/previous-versions/windows/desktop/legacy/aa366877(v=vs.85) Ref: https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/nf-wdm-rtlsecurezeromemory - always enable `LIBSSH2_CLEAR_MEMORY` on Windows. CMake and curl-for-win builds already did that. Delete `SecureZeroMemory()` detection from autotools' WinCNG backend logic, that this setting used to depend on. TODO: Enable it for all platforms in a separate PR. TODO: For clearing buffers in WinCNG, call `_libssh2_explicit_zero()`, insead of a local function or explicit `SecureZeroMemory()`. - Makefile.inc: move `os400qc3.h` to `HEADERS`. This fixes compilation on non-unixy platforms. Recent regression. - `libssh2.rc`: replace copyright with plain ASCII, as in curl. Ref: curl/curl@1ca62bb Ref: curl/curl#7765 Ref: curl/curl#7776 - CMake fixes and improvements: - enable warnings with llvm/clang. - enable more comprehensive warnings with gcc and llvm/clang. Logic copied from curl:233810bb5f/CMakeLists.txt (L131-L148)- fix `Policy CMP0080` CMake warning by deleting that reference. - add `ENABLE_WERROR` (default: `OFF`) option. Ported from curl. - add `PICKY_COMPILER` (default: `ON`) option, as known from curl. It controls both the newly added picky warnings for llvm/clang and gcc, and also the pre-existing ones for MSVC. - `win32/GNUmakefile` fixes and improvements: - delete `_AMD64_` and add missing `-m64` for x64 builds under test. - add support for `ARCH=custom`. It disables hardcoded Intel 64-bit and Intel 32-bit options, allowing ARM64 builds. - add support for `LIBSSH2_RCFLAG_EXTRAS`. To pass custom options to windres, e.g. in ARM64 builds. - add support for `LIBSSH2_RC`. To override `windres`. - delete support for Metrowerks C. Last released in 2004. - `win32/libssh2_config.h`: delete unnecessary socket #includes `src/libssh2_priv.h` includes `winsock2.h` and `ws2tcpip.h` further down the line, triggered by `HAVE_WINSOCK2_H`. `mswsock.h` does not seem to be necessary anymore. Double-including these (before `windows.h`) caused compiler failures when building against BoringSSL and warnings with LibreSSL. We could work this around by passing `-DNOCRYPT`. Deleting the duplicates fixes these issues. Timeline: 2013:c910cd382ddeleted `mswsock.h` from `src/libssh2_priv.h` 2008:8c43bc52b1added `winsock2.h` and `ws2tcpip.h` to `src/libssh2_priv.h` 2005:dc4bb1af96added the now deleted #includes - delete or replace `LIBSSH2_WIN32` with `WIN32`. - replace hand-rolled `HAVE_WINDOWS_H` macro with `WIN32`. Also delete its detections/definitions. - delete unused `LIBSSH2_DARWIN` macro. - delete unused `writev()` Windows implementation There is no reference to `writev()` since 2007-02-02, commit9d55db6501. - fix a bunch of MSVC / llvm/clang / gcc compiler warnings: - `warning C4100: '...': unreferenced formal parameter` - using value of undefined PP macro `LIBSSH2DEBUG` - missing void from function definition - `if()` block missing in non-debug builds - unreferenced variable in non-debug builds - `warning: must specify at least one argument for '...' parameter of variadic macro [-Wgnu-zero-variadic-macro-arguments]` in `_libssh2_debug()` - `warning C4295: 'ciphertext' : array is too small to include a terminating null character` - `warning C4706: assignment within conditional expression` - `warning C4996: 'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings` By suppressning it. Would be best to use inet_pton() as suggested. On Windows this needs Vista though. - `warning C4152: nonstandard extension, function/data pointer conversion in expression` (silenced locally) - `warning C4068: unknown pragma` Ref: https://ci.appveyor.com/project/libssh2org/libssh2/builds/46354480/job/j7d0m34qgq8rag5w Closes #808
103 lines
4.6 KiB
Plaintext
103 lines
4.6 KiB
Plaintext
# Microsoft Developer Studio Project File - Name="tests" - Package Owner=<4>
|
|
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
|
# ** DO NOT EDIT **
|
|
|
|
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
|
|
|
CFG=tests - Win32 Debug
|
|
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
|
!MESSAGE use the Export Makefile command and run
|
|
!MESSAGE
|
|
!MESSAGE NMAKE /f "tests.mak".
|
|
!MESSAGE
|
|
!MESSAGE You can specify a configuration when running NMAKE
|
|
!MESSAGE by defining the macro CFG on the command line. For example:
|
|
!MESSAGE
|
|
!MESSAGE NMAKE /f "tests.mak" CFG="tests - Win32 Debug"
|
|
!MESSAGE
|
|
!MESSAGE Possible choices for configuration are:
|
|
!MESSAGE
|
|
!MESSAGE "tests - Win32 Release" (based on "Win32 (x86) Console Application")
|
|
!MESSAGE "tests - Win32 Debug" (based on "Win32 (x86) Console Application")
|
|
!MESSAGE
|
|
|
|
# Begin Project
|
|
# PROP AllowPerConfigDependencies 0
|
|
# PROP Scc_ProjName ""
|
|
# PROP Scc_LocalPath ""
|
|
CPP=cl.exe
|
|
RSC=rc.exe
|
|
|
|
!IF "$(CFG)" == "tests - Win32 Release"
|
|
|
|
# PROP BASE Use_MFC 0
|
|
# PROP BASE Use_Debug_Libraries 0
|
|
# PROP BASE Output_Dir "tests___Win32_Release"
|
|
# PROP BASE Intermediate_Dir "tests___Win32_Release"
|
|
# PROP BASE Target_Dir ""
|
|
# PROP Use_MFC 0
|
|
# PROP Use_Debug_Libraries 0
|
|
# PROP Output_Dir "Release"
|
|
# PROP Intermediate_Dir "Release"
|
|
# PROP Ignore_Export_Lib 0
|
|
# PROP Target_Dir ""
|
|
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
|
# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\include" /I "..\win32" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
|
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
|
# ADD RSC /l 0x409 /d "NDEBUG"
|
|
BSC32=bscmake.exe
|
|
# ADD BASE BSC32 /nologo
|
|
# ADD BSC32 /nologo
|
|
LINK32=link.exe
|
|
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
|
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libeay32.lib ssleay32.lib ws2_32.lib zlib.lib libssh2.lib /nologo /subsystem:console /machine:I386 /libpath:"Release" /out:"simple.exe"
|
|
|
|
!ELSEIF "$(CFG)" == "tests - Win32 Debug"
|
|
|
|
# PROP BASE Use_MFC 0
|
|
# PROP BASE Use_Debug_Libraries 1
|
|
# PROP BASE Output_Dir "tests___Win32_Debug"
|
|
# PROP BASE Intermediate_Dir "tests___Win32_Debug"
|
|
# PROP BASE Target_Dir ""
|
|
# PROP Use_MFC 0
|
|
# PROP Use_Debug_Libraries 1
|
|
# PROP Output_Dir "Debug"
|
|
# PROP Intermediate_Dir "Debug"
|
|
# PROP Ignore_Export_Lib 0
|
|
# PROP Target_Dir ""
|
|
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
|
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\include" /I "..\win32" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
|
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
|
# ADD RSC /l 0x409 /d "_DEBUG"
|
|
BSC32=bscmake.exe
|
|
# ADD BASE BSC32 /nologo
|
|
# ADD BSC32 /nologo
|
|
LINK32=link.exe
|
|
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
|
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libeay32.lib ssleay32.lib ws2_32.lib zlib.lib libssh2d.lib /nologo /subsystem:console /debug /machine:I386 /nodefaultlib:"msvcrt.lib" /pdbtype:sept /libpath:"Debug" /out:"simple.exe"
|
|
|
|
!ENDIF
|
|
|
|
# Begin Target
|
|
|
|
# Name "tests - Win32 Release"
|
|
# Name "tests - Win32 Debug"
|
|
# Begin Group "Source Files"
|
|
|
|
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
|
# Begin Source File
|
|
|
|
SOURCE=..\tests\simple.c
|
|
# End Source File
|
|
# End Group
|
|
# Begin Group "Header Files"
|
|
|
|
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
|
# End Group
|
|
# Begin Group "Resource Files"
|
|
|
|
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
|
# End Group
|
|
# End Target
|
|
# End Project
|