It looks that instrinsic __faststorefence(), which “Guarantees that every previous memory reference, including both load and store memory references, is globally visible before any subsequent memory reference.” And declared in Windows header <intrin.h>
Generates: lock or DWORD PTR [rsp], 0 Now I’ve absolute no ideas how to explain tcc x86_64 backend to generate this code. M2c. C. From: Tinycc-devel [mailto:[email protected]] On Behalf Of Christian Jullien Sent: dimanche 16 décembre 2018 08:21 To: [email protected] Subject: Re: [Tinycc-devel] SQLite miscompiles on Windows 32-bit Jonathan, I second you for a full SQLite support with tcc. You may also ping SQLite guys to see if they see an interest to support tcc in their toolchain. Maybe they can do halt the road adapting the source code so that it better compiles with tcc? From: Tinycc-devel [mailto:[email protected]] On Behalf Of Jonathan Newman Sent: dimanche 16 décembre 2018 04:28 To: [email protected] Subject: [Tinycc-devel] SQLite miscompiles on Windows 32-bit Hello everyone, I reported this a few months ago, but since there has been recent activity and I've now prepared a test setup, I thought it would be worth checking to see if anyone can investigate again. Using the latest mob revision: * Single-threaded (SQLITE_THREADSAFE=0) 64-bit builds of SQLite work OK * Multi-threaded 64-bit builds fail with undefined symbol '__faststorefence' * Any 32-bit build succeeds, but the result segfaults. I've prepared a test setup including a Powershell script (test.ps1) that simply builds and runs each possible configuration: https://nyc3.digitaloceanspaces.com/ab1/sqlite_test.zip (External link instead of attachment, since it's ~2MB) sqlite3.c has been slightly modified from the official release to avoid the need to juggle different Windows headers around- an unmodified file demonstrates exactly the same behaviour. Many thanks to anyone who can track it down...
_______________________________________________ Tinycc-devel mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/tinycc-devel
