ANN: wxSQLite3 4.6.3 released

Do you like to promote your wxWidgets based application or component!? Post it here and let's see what the critics have to say. Also, if you found that ONE wx component the world needs to know about, put it here for future reference.
Post Reply
utelle
Moderator
Moderator
Posts: 1125
Joined: Tue Jul 05, 2005 10:00 pm
Location: Cologne, Germany
Contact:

ANN: wxSQLite3 4.6.3 released

Post by utelle »

Version 4.6.3 of wxSQLite3 has been released. It supports version 3.34.0 of SQLite. This version is compatible with wxWidgets 2.8.12, wxWidgets 3.0.x, and wxWidgets 3.1.x.

What's new in this release
Notes
  • SQLite3 Multiple Ciphers version 1.1.2 adds hardware support for the AES based encryption schemes on x86 / x86_64 platforms resulting in better performance.
Edited on December 12, 2020:
Although wxSQLite3 was not directly affected by recently detected bugs in SQLite3 Multiple Ciphers, I made a new release to be on the safe side. At the same time a few build issues with GCC/MinGW were fixed, too.

As always, feedback is welcome.

Regards,

Ulrich
User avatar
xaviou
Super wx Problem Solver
Super wx Problem Solver
Posts: 437
Joined: Mon Aug 21, 2006 3:18 pm
Location: Annecy - France
Contact:

Re: ANN: wxSQLite3 4.6.2 released

Post by xaviou »

Hi Ulrich

I've tried to build this last release with MinGW (Version 8.1.0 - 32 bits from MinGW-w64), but I failed.
I tried with the default options with the following command line :

Code: Select all

mingw32-make config=release_x32 wxsqlite3
Here are the output I obtain:

Code: Select all

"==== Building wxsqlite3 (release_x32) ===="
sqlite3mc_amalgamation.c
../src/sqlite3mc_amalgamation.c: In function 'aesKey128Assist':
../src/sqlite3mc_amalgamation.c:247924:1: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
 {
 ^
In file included from G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:31,
                 from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/emmintrin.h:1290:1: error: inlining failed in call to always_inline '_mm_xor_si128': target specific option mismatch
 _mm_xor_si128 (__m128i __A, __m128i __B)
 ^~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247933:11: note: called from here
   temp1 = _mm_xor_si128(temp1, temp2);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:31,
                 from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/emmintrin.h:1290:1: error: inlining failed in call to always_inline '_mm_xor_si128': target specific option mismatch
 _mm_xor_si128 (__m128i __A, __m128i __B)
 ^~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247932:11: note: called from here
   temp1 = _mm_xor_si128(temp1, temp3);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:31,
                 from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/emmintrin.h:1190:1: error: inlining failed in call to always_inline '_mm_slli_si128': target specific option mismatch
 _mm_slli_si128 (__m128i __A, const int __N)
 ^~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247931:11: note: called from here
   temp3 = _mm_slli_si128(temp3, 0x4);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:31,
                 from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/emmintrin.h:1290:1: error: inlining failed in call to always_inline '_mm_xor_si128': target specific option mismatch
 _mm_xor_si128 (__m128i __A, __m128i __B)
 ^~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247930:11: note: called from here
   temp1 = _mm_xor_si128(temp1, temp3);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:31,
                 from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/emmintrin.h:1190:1: error: inlining failed in call to always_inline '_mm_slli_si128': target specific option mismatch
 _mm_slli_si128 (__m128i __A, const int __N)
 ^~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247929:11: note: called from here
   temp3 = _mm_slli_si128(temp3, 0x4);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:31,
                 from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/emmintrin.h:1290:1: error: inlining failed in call to always_inline '_mm_xor_si128': target specific option mismatch
 _mm_xor_si128 (__m128i __A, __m128i __B)
 ^~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247928:11: note: called from here
   temp1 = _mm_xor_si128(temp1, temp3);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:31,
                 from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/emmintrin.h:1190:1: error: inlining failed in call to always_inline '_mm_slli_si128': target specific option mismatch
 _mm_slli_si128 (__m128i __A, const int __N)
 ^~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247927:11: note: called from here
   temp3 = _mm_slli_si128(temp1, 0x4);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:31,
                 from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/emmintrin.h:1419:1: error: inlining failed in call to always_inline '_mm_shuffle_epi32': target specific option mismatch
 _mm_shuffle_epi32 (__m128i __A, const int __mask)
 ^~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247926:11: note: called from here
   temp2 = _mm_shuffle_epi32(temp2, 0xff);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mingw32-make[1]: *** [wxsqlite3.make:249: obj/x32/Release/wxsqlite3/sqlite3mc_amalgamation.o] Error 1
mingw32-make: *** [Makefile:86: wxsqlite3] Error 2
I have also tested with MinGW-Gcc-8.1.0 64 bits and it also fails (with same types of errors but for differents functions)

Can you tell me what I've done wrong please ?

Regards
Xav'
My wxWidgets stuff web page : X@v's wxStuff
utelle
Moderator
Moderator
Posts: 1125
Joined: Tue Jul 05, 2005 10:00 pm
Location: Cologne, Germany
Contact:

Re: ANN: wxSQLite3 4.6.2 released

Post by utelle »

Hi Xav'
xaviou wrote: Fri Dec 11, 2020 1:54 pm I've tried to build this last release with MinGW (Version 8.1.0 - 32 bits from MinGW-w64), but I failed.
I tried with the default options with the following command line :

Code: Select all

mingw32-make config=release_x32 wxsqlite3
Here are the output I obtain:

Code: Select all

"==== Building wxsqlite3 (release_x32) ===="
sqlite3mc_amalgamation.c
../src/sqlite3mc_amalgamation.c: In function 'aesKey128Assist':
../src/sqlite3mc_amalgamation.c:247924:1: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
 {
 ^
In file included from G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:31,
                 from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/emmintrin.h:1290:1: error: inlining failed in call to always_inline '_mm_xor_si128': target specific option mismatch
 _mm_xor_si128 (__m128i __A, __m128i __B)
 ^~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247933:11: note: called from here
   temp1 = _mm_xor_si128(temp1, temp2);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:31,
                 from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/emmintrin.h:1290:1: error: inlining failed in call to always_inline '_mm_xor_si128': target specific option mismatch
 _mm_xor_si128 (__m128i __A, __m128i __B)
 ^~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247932:11: note: called from here
   temp1 = _mm_xor_si128(temp1, temp3);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:31,
                 from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/emmintrin.h:1190:1: error: inlining failed in call to always_inline '_mm_slli_si128': target specific option mismatch
 _mm_slli_si128 (__m128i __A, const int __N)
 ^~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247931:11: note: called from here
   temp3 = _mm_slli_si128(temp3, 0x4);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:31,
                 from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/emmintrin.h:1290:1: error: inlining failed in call to always_inline '_mm_xor_si128': target specific option mismatch
 _mm_xor_si128 (__m128i __A, __m128i __B)
 ^~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247930:11: note: called from here
   temp1 = _mm_xor_si128(temp1, temp3);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:31,
                 from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/emmintrin.h:1190:1: error: inlining failed in call to always_inline '_mm_slli_si128': target specific option mismatch
 _mm_slli_si128 (__m128i __A, const int __N)
 ^~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247929:11: note: called from here
   temp3 = _mm_slli_si128(temp3, 0x4);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:31,
                 from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/emmintrin.h:1290:1: error: inlining failed in call to always_inline '_mm_xor_si128': target specific option mismatch
 _mm_xor_si128 (__m128i __A, __m128i __B)
 ^~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247928:11: note: called from here
   temp1 = _mm_xor_si128(temp1, temp3);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:31,
                 from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/emmintrin.h:1190:1: error: inlining failed in call to always_inline '_mm_slli_si128': target specific option mismatch
 _mm_slli_si128 (__m128i __A, const int __N)
 ^~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247927:11: note: called from here
   temp3 = _mm_slli_si128(temp1, 0x4);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:31,
                 from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/emmintrin.h:1419:1: error: inlining failed in call to always_inline '_mm_shuffle_epi32': target specific option mismatch
 _mm_shuffle_epi32 (__m128i __A, const int __mask)
 ^~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247926:11: note: called from here
   temp2 = _mm_shuffle_epi32(temp2, 0xff);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mingw32-make[1]: *** [wxsqlite3.make:249: obj/x32/Release/wxsqlite3/sqlite3mc_amalgamation.o] Error 1
mingw32-make: *** [Makefile:86: wxsqlite3] Error 2
I have also tested with MinGW-Gcc-8.1.0 64 bits and it also fails (with same types of errors but for differents functions)

Can you tell me what I've done wrong please ?
*Ouch*. Thanks for reporting this issue. I'm to blame for it. Although I tested compiling the encryption extension (SQLite3 Multiple Ciphers) separately with MinGW, I did not the same for wxSQLite3, but was satisfied with compiling it with Visual C++.

For the latest version of the encryption extension I added support for hardware aided AES encryption. While Visual C++ doesn't need special action to generate code for AES instructions, MinGW resp GCC does. And I simply forgot to update the makefiles. I'm sorry. I will fix this with the next release, which will be done soon, because I have fixed some bugs in the encryption extension itself.

In the meantime you can try to add the compile option -march=native to the defintion of the symbol ALL_CFLAGS (and maybe ALL_CXXFLAGS) in the makefile for wxSQLite3. This should allow MinGW to compile wxSQLite3 successfully.
User avatar
xaviou
Super wx Problem Solver
Super wx Problem Solver
Posts: 437
Joined: Mon Aug 21, 2006 3:18 pm
Location: Annecy - France
Contact:

Re: ANN: wxSQLite3 4.6.2 released

Post by xaviou »

utelle wrote: Fri Dec 11, 2020 4:06 pm In the meantime you can try to add the compile option -march=native to the defintion of the symbol ALL_CFLAGS (and maybe ALL_CXXFLAGS) in the makefile for wxSQLite3. This should allow MinGW to compile wxSQLite3 successfully.
Tested : I've added -march=native at the end of lines 64 and 65 of sqlite3.make (witch corresponds to the tested target's config):

Code: Select all

ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m32 -O2 -march=native
ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS) -m32 -O2 -march=native
I obtain a lot more errors :

Code: Select all

"==== Building wxsqlite3 (release_x32) ===="
Creating obj/x32/Release/wxsqlite3
wxsqlite3_version.rc
sqlite3mc_amalgamation.c
In file included from ../src/sqlite3mc_amalgamation.c:247920:
../src/sqlite3mc_amalgamation.c: In function 'aesKey128Expansion':
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247971:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x36);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247968:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x1b);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247965:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x80);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247962:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x40);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247959:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x20);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247956:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x10);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247953:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x8);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247950:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x4);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247947:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x2);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247944:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x1);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247971:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x36);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247968:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x1b);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247965:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x80);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247962:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x40);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247959:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x20);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247956:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x10);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247953:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x8);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247950:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x4);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247947:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x2);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247944:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x1);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247971:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x36);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247968:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x1b);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247965:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x80);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247962:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x40);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247959:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x20);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247956:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x10);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247953:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x8);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247950:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x4);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247947:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x2);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247944:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x1);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247947:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x2);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247950:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x4);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247953:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x8);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247956:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x10);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247959:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x20);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247962:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x40);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247965:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x80);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247968:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x1b);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247971:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x36);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mingw32-make[1]: *** [wxsqlite3.make:249: obj/x32/Release/wxsqlite3/sqlite3mc_amalgamation.o] Error 1
mingw32-make: *** [Makefile:86: wxsqlite3] Error 2
There is already the -m32 or -m64 option present in these lines (depending on the target) : are they not enough ?

Regards
Xav'
My wxWidgets stuff web page : X@v's wxStuff
utelle
Moderator
Moderator
Posts: 1125
Joined: Tue Jul 05, 2005 10:00 pm
Location: Cologne, Germany
Contact:

Re: ANN: wxSQLite3 4.6.2 released

Post by utelle »

xaviou wrote: Fri Dec 11, 2020 4:46 pm
utelle wrote: Fri Dec 11, 2020 4:06 pm In the meantime you can try to add the compile option -march=native to the defintion of the symbol ALL_CFLAGS (and maybe ALL_CXXFLAGS) in the makefile for wxSQLite3. This should allow MinGW to compile wxSQLite3 successfully.
Tested : I've added -march=native at the end of lines 64 and 65 of sqlite3.make (witch corresponds to the tested target's config):

Code: Select all

ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m32 -O2 -march=native
ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS) -m32 -O2 -march=native
I obtain a lot more errors :
For my own tests of compiling the underlying encryption extension with MinGW specifying -march=native was enough to make it compile. However, I don't have much experience with MinGW, so please try additionally the following options -msse4.2 and -maes.
xaviou wrote: Fri Dec 11, 2020 4:46 pm

Code: Select all

"==== Building wxsqlite3 (release_x32) ===="
Creating obj/x32/Release/wxsqlite3
wxsqlite3_version.rc
sqlite3mc_amalgamation.c
In file included from ../src/sqlite3mc_amalgamation.c:247920:
../src/sqlite3mc_amalgamation.c: In function 'aesKey128Expansion':
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247971:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x36);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247968:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x1b);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247965:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x80);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247962:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x40);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247959:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x20);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247956:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x10);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247953:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x8);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247950:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x4);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247947:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x2);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247944:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x1);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247971:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x36);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247968:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x1b);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247965:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x80);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247962:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x40);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247959:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x20);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247956:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x10);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247953:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x8);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247950:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x4);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247947:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x2);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247944:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x1);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247971:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x36);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247968:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x1b);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247965:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x80);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247962:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x40);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247959:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x20);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247956:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x10);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247953:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x8);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247950:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x4);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247947:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x2);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247944:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x1);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247947:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x2);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247950:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x4);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247953:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x8);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247956:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x10);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247959:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x20);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247962:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x40);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247965:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x80);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247968:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x1b);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../src/sqlite3mc_amalgamation.c:247920:
G:/MinGW810-32/lib/gcc/i686-w64-mingw32/8.1.0/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
 _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/sqlite3mc_amalgamation.c:247971:11: note: called from here
   temp2 = _mm_aeskeygenassist_si128(temp1, 0x36);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mingw32-make[1]: *** [wxsqlite3.make:249: obj/x32/Release/wxsqlite3/sqlite3mc_amalgamation.o] Error 1
mingw32-make: *** [Makefile:86: wxsqlite3] Error 2
There is already the -m32 or -m64 option present in these lines (depending on the target) : are they not enough ?
No, according to what I had found out about GCC behaviour it is necessary to explicitly enable the capability to generate code for certain hardware instructions (like for AES). -march=native should enable all platform capabilities, but it might be that different GCC/MinGW versions behave differently. Please try the other 2 options mentioned above. Hopefully they will work.
User avatar
xaviou
Super wx Problem Solver
Super wx Problem Solver
Posts: 437
Joined: Mon Aug 21, 2006 3:18 pm
Location: Annecy - France
Contact:

Re: ANN: wxSQLite3 4.6.2 released

Post by xaviou »

utelle wrote: Fri Dec 11, 2020 5:19 pm ......
For my own tests of compiling the underlying encryption extension with MinGW specifying -march=native was enough to make it compile. However, I don't have much experience with MinGW, so please try additionally the following options -msse4.2 and -maes.
With these options, the builds succeeds (MinGW-GCC-8.1.0, Static/Shared, Multilibs, Release/Debug, 32 and 64 bits).
I have added the options to content of the line 23 of wxsqlite.make:

Code: Select all

ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -msse4.2 -maes -march=native  $(DEFINES) $(INCLUDES)
The ALL_CPPFLAGS value is added to the ALL_CFLAGS's one

I will make more build tests (others versions of MinGW, monolithic, minimal and treeview samples).
I'll give you feedback here when all will be done.

Thank you.
Regards

Xav'
My wxWidgets stuff web page : X@v's wxStuff
utelle
Moderator
Moderator
Posts: 1125
Joined: Tue Jul 05, 2005 10:00 pm
Location: Cologne, Germany
Contact:

Re: ANN: wxSQLite3 4.6.2 released

Post by utelle »

xaviou wrote: Fri Dec 11, 2020 5:41 pm
utelle wrote: Fri Dec 11, 2020 5:19 pm For my own tests of compiling the underlying encryption extension with MinGW specifying -march=native was enough to make it compile. However, I don't have much experience with MinGW, so please try additionally the following options -msse4.2 and -maes.
With these options, the builds succeeds (MinGW-GCC-8.1.0, Static/Shared, Multilibs, Release/Debug, 32 and 64 bits).
In the meantime I tested to build wxSQLite3 with MinGW myself, too. I tested the 64-bit and 32-bit build using prebuilt wxWidgets libraries (version 3.1.4). The MinGW compiler versions are reported as

64-bit: gcc (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0

32-bit: gcc (i686-posix-sjlj-rev0, Built by MinGW-W64 project) 8.1.0

Interestingly, I needed only the option -march=native to compile without any warning or error messages.
xaviou wrote: Fri Dec 11, 2020 5:41 pm I have added the options to content of the line 23 of wxsqlite.make:

Code: Select all

ALL_CPPFLAGS += $(CPPFLAGS) -MMD -MP -msse4.2 -maes -march=native  $(DEFINES) $(INCLUDES)
The ALL_CPPFLAGS value is added to the ALL_CFLAGS's one
I generated the makefiles with premake5 and the options were added to ALL_CFLAGS and ALL_CXXFLAGS. However, adding the additional options to ALL_CFLAGS should be enough, because they are only necessary to compile the SQLite3MC amalgamation C file.
xaviou wrote: Fri Dec 11, 2020 5:41 pm I will make more build tests (others versions of MinGW, monolithic, minimal and treeview samples).
I'll give you feedback here when all will be done.
Thanks in advance. I would really like to understand, why just option -march=native works for me, but not for you. Maybe explicitly using both options -msse4.2 and -maes is better than -march=native anyway.

I'll wait for your feedback, before making a new wxSQLite3 release with updated build files.
User avatar
xaviou
Super wx Problem Solver
Super wx Problem Solver
Posts: 437
Joined: Mon Aug 21, 2006 3:18 pm
Location: Annecy - France
Contact:

Re: ANN: wxSQLite3 4.6.2 released

Post by xaviou »

utelle wrote: Fri Dec 11, 2020 6:05 pm In the meantime I tested to build wxSQLite3 with MinGW myself, too. I tested the 64-bit and 32-bit build using prebuilt wxWidgets libraries (version 3.1.4). The MinGW compiler versions are reported as

64-bit: gcc (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0

32-bit: gcc (i686-posix-sjlj-rev0, Built by MinGW-W64 project) 8.1.0

Interestingly, I needed only the option -march=native to compile without any warning or error messages.
Really strange : I'm sure I have the same compiler as I am the one who made the prebuild binaries.

I've re-tested with only -march=native in ALL_CFLAGS (to be sure) and it failed.
If I add -msse4.2 -maes it works, and it also works if I add the 3 options.
utelle wrote: Fri Dec 11, 2020 6:05 pm I'll wait for your feedback, before making a new wxSQLite3 release with updated build files.
Ok : I'll try to finalize my tests ASAP.

Regards
Xav'
My wxWidgets stuff web page : X@v's wxStuff
utelle
Moderator
Moderator
Posts: 1125
Joined: Tue Jul 05, 2005 10:00 pm
Location: Cologne, Germany
Contact:

Re: ANN: wxSQLite3 4.6.2 released

Post by utelle »

xaviou wrote: Fri Dec 11, 2020 8:33 pm
utelle wrote: Fri Dec 11, 2020 6:05 pm In the meantime I tested to build wxSQLite3 with MinGW myself, too. I tested the 64-bit and 32-bit build using prebuilt wxWidgets libraries (version 3.1.4). The MinGW compiler versions are reported as

64-bit: gcc (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0

32-bit: gcc (i686-posix-sjlj-rev0, Built by MinGW-W64 project) 8.1.0

Interestingly, I needed only the option -march=native to compile without any warning or error messages.
Really strange : I'm sure I have the same compiler as I am the one who made the prebuild binaries.
So, it can only have to do with the computer your system is running on, although that is hard to believe. From the GCC documentation:
-march=native - This selects the CPU to generate code for at compilation time by determining the processor type of the compiling machine. Using -march=native enables all instruction subsets supported by the local machine ...
This gives the impression that it would not be necessary to explicitly specify any specific instruction subsets, if they are available on the compiling machine. Maybe GCC makes invalid assumptions about your local machine, or there is a hidden set of default compiler options somewhere ... I really don't know.
xaviou wrote: Fri Dec 11, 2020 8:33 pm I've re-tested with only -march=native in ALL_CFLAGS (to be sure) and it failed.
If I add -msse4.2 -maes it works, and it also works if I add the 3 options.
My conclusion is that it may be the best choice to use the compiler options -msse4.2 -maes. As far as I can tell those 2 options should be sufficient to generate the used AES-NI instructions.

BTW, I intend to at least try to add code for AES hardware support for ARM platforms, too. I'm already curious which compiler options I will have to add for that to function properly ...
xaviou wrote: Fri Dec 11, 2020 8:33 pm
utelle wrote: Fri Dec 11, 2020 6:05 pm I'll wait for your feedback, before making a new wxSQLite3 release with updated build files.
Ok : I'll try to finalize my tests ASAP.
Thanks.
User avatar
xaviou
Super wx Problem Solver
Super wx Problem Solver
Posts: 437
Joined: Mon Aug 21, 2006 3:18 pm
Location: Annecy - France
Contact:

Re: ANN: wxSQLite3 4.6.2 released

Post by xaviou »

Hi.
I've done the tests.
I've tried to build wxSQLite using the following configurations :
  • MinGW-w64 Gcc-7.3.0 / MinGW-w64 Gcc-8.1.0 / Gcc-9.2.0-TDM / MSYS2 Gcc-10.2.0
  • 32 and 64 bits
  • Shared and Static
  • Multi-libs and Monolithic
  • Release and Debug
I also tried to build the 2 samples (minimal and treeview) but only for the release configurations
I have added ALL_CFLAGS = -msse4.2 -maes -march=native to the beginning of wxsqlite3.make and wxsqlite3_mono.make so these options were used for each configurations (but only to build sqlite3mc_amalgamation).

Everything went fine while building wxSQLite3 itself, except for Gcc-9.2.0-TDM (it sometimes failed due to linking errors undefined reference to `SystemFunction036@8').
For the 2 samples, I was forced to add some wxlibs to the linking process for the static-monolithic builds : libwxpng, libwxjpeg, libwxzlib, libwxregex. All the other builds were ok.

Attached is the main build log: it just contains lines saying what it was trying to build, and what was the result.

As I've said before, the only errors that remains are relatives to Gcc-9.2.0-TDM and are due to the fact that it doesn't export SystemFunction from libadvapi32.a.

Regards
Xav'
Attachments
BuildLog-wxWidgets-3.1.4-wxSQLite3.txt
(6.58 KiB) Downloaded 245 times
My wxWidgets stuff web page : X@v's wxStuff
utelle
Moderator
Moderator
Posts: 1125
Joined: Tue Jul 05, 2005 10:00 pm
Location: Cologne, Germany
Contact:

Re: ANN: wxSQLite3 4.6.2 released

Post by utelle »

Hi Xav'
xaviou wrote: Sat Dec 12, 2020 6:04 pm I've done the tests.
I've tried to build wxSQLite using the following configurations :
  • MinGW-w64 Gcc-7.3.0 / MinGW-w64 Gcc-8.1.0 / Gcc-9.2.0-TDM / MSYS2 Gcc-10.2.0
  • 32 and 64 bits
  • Shared and Static
  • Multi-libs and Monolithic
  • Release and Debug
Great. Thanks a lot for doing all this work!
xaviou wrote: Sat Dec 12, 2020 6:04 pm I also tried to build the 2 samples (minimal and treeview) but only for the release configurations
I have added ALL_CFLAGS = -msse4.2 -maes -march=native to the beginning of wxsqlite3.make and wxsqlite3_mono.make so these options were used for each configurations (but only to build sqlite3mc_amalgamation).
AFAICT it should be enough to add the flags -msse4.2 -maes. The option -march=native might get in the way if someone uses GCC for cross-compiling.
xaviou wrote: Sat Dec 12, 2020 6:04 pm Everything went fine while building wxSQLite3 itself, except for Gcc-9.2.0-TDM (it sometimes failed due to linking errors undefined reference to `SystemFunction036@8').
Years ago (in early 2018) I tested with GCC-5.1.0-TDM. Back then the compiler suffered from the very same problem. A pity that this didn't change for GCC-9.2.0-TDM; the MinGW compilers do export this function. The implementation of the ChaCha20 cipher scheme uses the function RtlGenRandom (a synonym for SystemFunction036). For a future wxSQLite3 version I will check whether some other method can be used.
xaviou wrote: Sat Dec 12, 2020 6:04 pm For the 2 samples, I was forced to add some wxlibs to the linking process for the static-monolithic builds : libwxpng, libwxjpeg, libwxzlib, libwxregex. All the other builds were ok.
I have to admit that I myself never used the monolithic wxWidgets build. And obviously it is rarely used by others, because up to now no one complained. Nevertheless, I will check whether this can be fixed with not too much effort.
xaviou wrote: Sat Dec 12, 2020 6:04 pm Attached is the main build log: it just contains lines saying what it was trying to build, and what was the result.
Thanks for providing this build log.
xaviou wrote: Sat Dec 12, 2020 6:04 pm As I've said before, the only errors that remains are relatives to Gcc-9.2.0-TDM and are due to the fact that it doesn't export SystemFunction from libadvapi32.a.
This seems to be a compiler resp import library issue, and there is not much I can do about it. I have no idea why this function is not exported by TDM, while MinGW's link library exports the symbol.

Again, thanks a lot for giving wxSQLite3 such a thorough testing. I really appreciate that!
User avatar
xaviou
Super wx Problem Solver
Super wx Problem Solver
Posts: 437
Joined: Mon Aug 21, 2006 3:18 pm
Location: Annecy - France
Contact:

Re: ANN: wxSQLite3 4.6.2 released

Post by xaviou »

Hi.

I have just a small (and not very important) question : is there a reason for using other build targets names than the ones used for wxPdfDocument ?
  • wxPdfDoc has targets names like debug/release_win32/64
  • wxSQLite3 has targets names like debug/release_x32/64
utelle wrote: Sat Dec 12, 2020 7:05 pm Again, thanks a lot for giving wxSQLite3 such a thorough testing. I really appreciate that!
No problem.
In the future, if you need others tests like these ones, don't hesitate to ask for and it will be a pleasure for me to try to make them.

As I am already providing wxWidgets binaries on my own website, the original goal for me was to also provide binaries for some wxWidgets addons like wxPdfDoc and wxSQLite3.

Regards
Xav'
My wxWidgets stuff web page : X@v's wxStuff
utelle
Moderator
Moderator
Posts: 1125
Joined: Tue Jul 05, 2005 10:00 pm
Location: Cologne, Germany
Contact:

Re: ANN: wxSQLite3 4.6.2 released

Post by utelle »

xaviou wrote: Sat Dec 12, 2020 7:25 pm I have just a small (and not very important) question : is there a reason for using other build targets names than the ones used for wxPdfDocument ?
  • wxPdfDoc has targets names like debug/release_win32/64
  • wxSQLite3 has targets names like debug/release_x32/64
Well, to be frank, there is no specific reason for the deviating target names. As far as I can remember this happened when I moved away from bakefile to premake5. Depending on the platform architecture, Visual C++ displayed Win32 or x64 for the platform. I tweaked the premake5 configuration, until I got Win32 and Win64. As a side effect the target names in the GCC makefile changed, too.

Probably I should try to be consistent.

I was recently asked to adjust the configuration names, so that vcpkg would be able to automatically detect whether a build is a release or debug build by just checking the build name prefix. This currently doesn't work for the configurations DLL Debug and DLL Release. I intend to rename these 2 configurations. In the same course I could adjust the platform ids, so that identical names are used in both projects.
xaviou wrote: Sat Dec 12, 2020 7:25 pm In the future, if you need others tests like these ones, don't hesitate to ask for and it will be a pleasure for me to try to make them.
Thanks, that's great. It would be fantastic to do such a thorough test for wxPdfDocument, too. However, this is not urgent. I intend to make a release for wxPdfDocument in the hopefully not too far future - there occured several bug fixes and feature additions justifying a release. A thorough test In conjunction with the release would be great.
xaviou wrote: Sat Dec 12, 2020 7:25 pm As I am already providing wxWidgets binaries on my own website, the original goal for me was to also provide binaries for some wxWidgets addons like wxPdfDoc and wxSQLite3.
Providing precompiled DLLs for wxPdfDocument would make things certainly easier for users of the component.

However, regarding wxSQLite3 I usually recommend to link it statically to the application. DLLs make it rather easy to intercept calls to the Open method of a database connection. This could be a security issue in case of encrypted databases.
Post Reply