mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-05-25 16:42:41 +03:00
Merge pull request #8392 from lpy4105/backport-2.28/issue/support-cpuid-for-win32
Backport 2.28: Support cpuid for win32
This commit is contained in:
commit
c6d562815d
4
ChangeLog.d/fix-mingw32-build.txt
Normal file
4
ChangeLog.d/fix-mingw32-build.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
Bugfix
|
||||||
|
* Fix an inconsistency between implementations and usages of `__cpuid`,
|
||||||
|
which mainly causes failures when building Windows target using
|
||||||
|
mingw or clang. Fixes #8334 & #8332.
|
@ -39,10 +39,12 @@
|
|||||||
#if defined(MBEDTLS_AESNI_HAVE_CODE)
|
#if defined(MBEDTLS_AESNI_HAVE_CODE)
|
||||||
|
|
||||||
#if MBEDTLS_AESNI_HAVE_CODE == 2
|
#if MBEDTLS_AESNI_HAVE_CODE == 2
|
||||||
#if !defined(_WIN32)
|
#if defined(__GNUC__)
|
||||||
#include <cpuid.h>
|
#include <cpuid.h>
|
||||||
#else
|
#elif defined(_MSC_VER)
|
||||||
#include <intrin.h>
|
#include <intrin.h>
|
||||||
|
#else
|
||||||
|
#error "`__cpuid` required by MBEDTLS_AESNI_C is not supported by the compiler"
|
||||||
#endif
|
#endif
|
||||||
#include <immintrin.h>
|
#include <immintrin.h>
|
||||||
#endif
|
#endif
|
||||||
@ -57,7 +59,7 @@ int mbedtls_aesni_has_support(unsigned int what)
|
|||||||
|
|
||||||
if (!done) {
|
if (!done) {
|
||||||
#if MBEDTLS_AESNI_HAVE_CODE == 2
|
#if MBEDTLS_AESNI_HAVE_CODE == 2
|
||||||
static unsigned info[4] = { 0, 0, 0, 0 };
|
static int info[4] = { 0, 0, 0, 0 };
|
||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
__cpuid(info, 1);
|
__cpuid(info, 1);
|
||||||
#else
|
#else
|
||||||
|
@ -3339,6 +3339,15 @@ component_build_mingw () {
|
|||||||
make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror -Wall -Wextra' WINDOWS_BUILD=1 SHARED=1 lib programs
|
make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror -Wall -Wextra' WINDOWS_BUILD=1 SHARED=1 lib programs
|
||||||
make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror -Wall -Wextra' WINDOWS_BUILD=1 SHARED=1 tests
|
make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror -Wall -Wextra' WINDOWS_BUILD=1 SHARED=1 tests
|
||||||
make WINDOWS_BUILD=1 clean
|
make WINDOWS_BUILD=1 clean
|
||||||
|
|
||||||
|
msg "build: Windows cross build - mingw64, make (Library only, AESNI intrinsics)" # ~ 30s
|
||||||
|
make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror -Wall -Wextra -maes -msse2 -mpclmul' WINDOWS_BUILD=1 lib
|
||||||
|
make WINDOWS_BUILD=1 clean
|
||||||
|
|
||||||
|
msg "build: Windows cross build - mingw64, make (Library only, default config without MBEDTLS_AESNI_C)" # ~ 30s
|
||||||
|
./scripts/config.py unset MBEDTLS_AESNI_C
|
||||||
|
make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror -Wall -Wextra' WINDOWS_BUILD=1 lib
|
||||||
|
make WINDOWS_BUILD=1 clean
|
||||||
}
|
}
|
||||||
support_build_mingw() {
|
support_build_mingw() {
|
||||||
case $(i686-w64-mingw32-gcc -dumpversion 2>/dev/null) in
|
case $(i686-w64-mingw32-gcc -dumpversion 2>/dev/null) in
|
||||||
|
Loading…
x
Reference in New Issue
Block a user