the 3.53.1 binary build on llvm-mingw output mode changes when call with timer64
(1) By l1t (lu2tao) on 2026-05-10 01:49:43 [link] [source]
llvm-mingw build has two problems:
outputs two
sqlite>strings in a rowrun sql scripts with timer64, it outputs no grid lines, return to the behaviour of sqlite 3.51
https://github.com/mstorsjo/llvm-mingw/releases/download/20260505/llvm-mingw-20260505-msvcrt-x86_64.zip
gcc -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION shell.c sqlite3.c -lm -o sqlite3.exe
C:\d\sqlite35301>sqlite3
SQLite version 3.53.1 2026-05-05 10:34:17
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> select 1 a;
╭───╮
│ a │
╞═══╡
│ 1 │
╰───╯
sqlite> sqlite>
sqlite> sqlite> .exit
C:\d\sqlite35301>sqlite3 < ..\sum.sql
╭──────────────────╮
│ sum(value) │
╞══════════════════╡
│ 5000000050000000 │
╰──────────────────╯
C:\d\sqlite35301>..\timer64 sqlite3 < ..\sum.sql
5000000050000000
Kernel Time = 0.031 = 1%
User Time = 1.531 = 95%
Process Time = 1.562 = 97% Virtual Memory = 1 MB
Global Time = 1.600 = 100% Physical Memory = 6 MB
binary build by gcc-mcf outputs as normal.
https://gcc-mcf.lhmouse.com/mingw-w64-gcc-mcf_20260508_16.1.1_x64-ucrt_636a212a8559650efbca51d209aca770c4d18b71.7z
C:\d\sqlite35301>sqlite3m
SQLite version 3.53.1 2026-05-05 10:34:17
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> select 1 a;
╭───╮
│ a │
╞═══╡
│ 1 │
╰───╯
sqlite> .exit
C:\d\sqlite35301>..\timer64 sqlite3m < ..\sum.sql
╭──────────────────╮
│ sum(value) │
╞══════════════════╡
│ 5000000050000000 │
╰──────────────────╯
Kernel Time = 0.031 = 1%
User Time = 1.609 = 98%
Process Time = 1.640 = 99% Virtual Memory = 1 MB
Global Time = 1.641 = 100% Physical Memory = 5 MB
the offical builds outputs
C:\d>timer64 sqlite353 < sum.sql
╭──────────────────╮
│ sum(value) │
╞══════════════════╡
│ 5000000050000000 │
╰──────────────────╯
Kernel Time = 0.031 = 1%
User Time = 1.625 = 94%
Process Time = 1.656 = 96% Virtual Memory = 1 MB
Global Time = 1.714 = 100% Physical Memory = 6 MB
C:\d>timer64 sqlite351 < sum.sql
5000000050000000
Kernel Time = 0.031 = 1%
User Time = 1.515 = 95%
Process Time = 1.546 = 97% Virtual Memory = 1 MB
Global Time = 1.581 = 100% Physical Memory = 6 MB
(2) By Stephan Beal (stephan) on 2026-05-10 06:07:36 in reply to 1 [link] [source]
outputs two sqlite> strings in a row
We're aware of this problem, but don't know of a workaround. It's an environment-specific bug.
run sql scripts with timer64, it outputs no grid lines, return to the behaviour of sqlite 3.51
If someone knows an easy solution to this then great, otherwise it's not likely to gain much traction. We very specifically do not actively support non-MS-compiler builds on Windows123 because they have too many quirks (like the one above).
(3) By anonymous on 2026-05-11 16:22:00 in reply to 2 [link] [source]
We very specifically do not actively support non-MS-compiler builds on Windows.
Does this only refer to the CLI or also to the library?
(4) By Richard Hipp (drh) on 2026-05-11 17:09:21 in reply to 3 [source]
I used to try to keep up with all the various Windows compilers. What I found is that no two of them worked alike and it was a maintenance nightmare. Because of that, and because Microsoft now makes MSVC available for free, I stopped trying to keep up. We support enough platforms already without having to add 3 or 4 or more different non-Windows compilers to the list.
If you have suggested patches to the Makefiles or maybe some #if macros for the code that will help you to build on your non-Microsoft compiler for Windows, then you are welcomed to post them here, and we'll look into incorporating them. But we aren't going to test them. And if you have a problem using a non-Microsoft compiler for Windows, we aren't going to debug it for you.