Trunk does not compile with MinGW [gcc version 4.8.1 (GCC)] on Windows.

sqlite3x.c: In function 'sqlite3MemoryBarrier':
sqlite3x.c:20410:17: error: expected expression before ')' token
   MemoryBarrier();

/*
** Try to provide a memory barrier operation, needed for initialization only.
*/
SQLITE_PRIVATE void sqlite3MemoryBarrier(void){
  MemoryBarrier();
}

This references a definition in winnt.h

#if _WIN32_WINNT >= _WIN32_WINNT_VISTA
# if defined(_AMD64_) || defined(__X86_64)
#  define MemoryBarrier __faststorefence

# elif defined(_IA64_)

#  define MemoryBarrier __mf
# else

   void __mingworg_MemoryBarrier(void);
#  define MemoryBarrier __mingworg_MemoryBarrier
# endif

#else

# define MemoryBarrier
#endif

If the _WIN32_WINNT value is less than Windows 6/Vista [0x600] then the error 
is generated.  If the version is 0x600 or greater, it compiles just fine.

Of course, versions of WinNT less than 6 are "no longer diddled by Microsoft" 
(meaning they are stable development targets).


> -----Original Message-----
> From: sqlite-users-bounces at mailinglists.sqlite.org [mailto:sqlite-users-
> bounces at mailinglists.sqlite.org] On Behalf Of Richard Hipp
> Sent: Saturday, 5 September, 2015 21:02
> To: General Discussion of SQLite Database
> Cc: Michael Catanzaro
> Subject: Re: [sqlite] Thread safety problem encountered by people working
> on WebKit
> 
> On 9/5/15, Darin Adler <darin at apple.com> wrote:
> > Hi folks.
> >
> > I?m sending this on behalf of Michael Catanzaro, a contributor to the
> WebKit
> > open source project, who is working on a WebKit bug report, "Crash when
> > WebCore::SQLiteFileSystem::openDatabase is called from multiple threads"
> > <https://bugs.webkit.org/show_bug.cgi?id=143245>, which seems to be
> caused
> > by an issue in SQLite. In short, we've noticed many applications that
> use
> > WebKit crash when sqlite3_initialize is called simultaneously in
> multiple
> > threads in the Fedora platform
> > <https://bugzilla.redhat.com/show_bug.cgi?id=1201823>
> > <https://bugzilla.redhat.com/show_bug.cgi?id=1217952>
> > <https://bugzilla.redhat.com/show_bug.cgi?id=1228391>
> > <https://bugzilla.redhat.com/show_bug.cgi?id=1207221>  despite the fact
> that
> > sqlite3_initialize is documented to be thread-safe and called
> automatically
> > by the library when needed < https://sqlite.org/c3ref/initialize.html>.
> >
> > Michael is planning a workaround in WebKit that will call
> sqlite3_initialize
> > manually exactly once before WebKit uses sqlite, using std::once to deal
> > with the thread safety issue.
> >
> > We?d like to file an SQLite bug report about this, and as I understand
> it,
> > the proper way for a newcomer to do that is to send mail here.
> >
> > In the process of trying to report this, Michael discovered that the
> page
> > explaining how to report bugs against SQLite
> > <https://www.sqlite.org/src/wiki?name=Bug+Reports> lists an incorrect
> email
> > address, <sqlite-users at sqlite.org>. Mail to that address is rejected.
> >
> 
> Thanks for the bug report.  Code which might fix this has been checked
> into trunk.  I have also corrected the email address on the bug-report
> procedures page.
> 
> --
> D. Richard Hipp
> drh at sqlite.org
> _______________________________________________
> sqlite-users mailing list
> sqlite-users at mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users



Reply via email to