Add support for building static lib with MSVC#195
Open
cmb69 wants to merge 7 commits intobesser82:developfrom
Open
Add support for building static lib with MSVC#195cmb69 wants to merge 7 commits intobesser82:developfrom
cmb69 wants to merge 7 commits intobesser82:developfrom
Conversation
MSVC doesn't define any endianness macros, but for x64 (and ARM64EC) as well as x86 processors MSVC uses little-endian order. We define that accordingly.
MSVC does not support any inline assembly (let alone symversioning).
`ssize_t` is not supported, but `SSIZE_T` with the same meaning.
MSVC doesn't support `explicit_memset()` nor `memset_s()`, but has `SecureZeroMemory()`, which appears to be more appropriate than falling back on an own function definition.
cmb69
added a commit
to cmb69/winlib-builder
that referenced
this pull request
Dec 11, 2024
This does a full client build of libxcrypt, using upstream's autotools based build chain on MSYS2, but using MSVC build tools. This requires wrappers for the MSVC build tools; ar-lib and compile are taken unmodified from automake; windres is a minimalist self-made wrapper. A prerequisite is a suitable libxcrypt patched to support MSVC builds[1]. [1] <besser82/libxcrypt#195>
cmb69
added a commit
to cmb69/winlib-builder
that referenced
this pull request
Dec 11, 2024
This does a full client build of libxcrypt, using upstream's autotools based build chain on MSYS2, but using MSVC build tools. This requires wrappers for the MSVC build tools; ar-lib and compile are taken unmodified from automake; windres is a minimalist self-made wrapper. A prerequisite is a suitable libxcrypt patched to support MSVC builds[1]. [1] <besser82/libxcrypt#195>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR solves a couple of mostly minor issues (see individual commit messages for details) which prevent building the static crypt.lib with MSVC on Windows. For building a shared library (DLL) exported functions would need to be decorated with
__declspec(dllexport)and__declspec(dllimport), respectively (see 'win32-dll' argument ofLT_INIT()).The biggest hurdle is that autoconf currently (2.72) does not properly recognize C11 support (only has recently been fixed in the development branch). I worked around that with the following hack:
Closes #193.