tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Tinycc-devel] SQLite miscompiles on Windows 32-bit


From: Christian Jullien
Subject: Re: [Tinycc-devel] SQLite miscompiles on Windows 32-bit
Date: Sun, 16 Dec 2018 10:24:27 +0100

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:address@hidden On Behalf Of Christian Jullien
Sent: dimanche 16 décembre 2018 08:21
To: address@hidden
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:address@hidden On Behalf Of Jonathan Newman
Sent: dimanche 16 décembre 2018 04:28
To: address@hidden
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:

 

 

(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...


reply via email to

[Prev in Thread] Current Thread [Next in Thread]