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

Reply via email to