I hate correcting myself. You do not need the --export-all-symbols Using it will cause all non-static symbols to be exported (even without a specific dllexport) just like using -shared on unices.
--- Theory is when you know everything but nothing works. Practice is when everything works but no one knows why. Sometimes theory and practice are combined: nothing works and no one knows why. >-----Original Message----- >From: sqlite-users-bounces at mailinglists.sqlite.org [mailto:sqlite-users- >bounces at mailinglists.sqlite.org] On Behalf Of Keith Medcalf >Sent: Thursday, 2 April, 2015 17:51 >To: General Discussion of SQLite Database >Subject: Re: [sqlite] Windows 8.x security requirements / SafeSEHCheck - >NXCheck - DBCheck > > >BTW, I have verified that these options all work as described and the >options are recognized and processed properly by Windows, and that >BinScope is happy: > >Failed checks >d:\source\sqlite\sqlite3.dll - SafeSEHCheck ( FAIL ) > >Passed checks >d:\source\sqlite\sqlite3.dll - NXCheck ( PASS ) >d:\source\sqlite\sqlite3.dll - DBCheck ( PASS ) > >(Note, position independent code (PIC) is by definition loadable at any >base. Microsoft is just several decades behind in generating position >independent code.) > >--- >Theory is when you know everything but nothing works. Practice is when >everything works but no one knows why. Sometimes theory and practice are >combined: nothing works and no one knows why. > > >>-----Original Message----- >>From: sqlite-users-bounces at mailinglists.sqlite.org [mailto:sqlite-users- >>bounces at mailinglists.sqlite.org] On Behalf Of Keith Medcalf >>Sent: Thursday, 2 April, 2015 17:43 >>To: General Discussion of SQLite Database >>Subject: Re: [sqlite] Windows 8.x security requirements / SafeSEHCheck - >>NXCheck - DBCheck >> >> >>add the following linker options with MinGW: >> >>-static-libgcc -Wl,-Bstatic,--nxcompat,--dynamicbase,--export-all- >symbols >> >>You may or may not need -static-libgcc or the linker -Bstatic options >>unless you are also enabling things that require MingW DLL runtime >>support (such as using the -mthreads option to make the DLL thread >>exception safe). >> >>-Wl,--nxcompat,--dynamicbase,--export-all-symbols,--large-address-aware >> >>Sets the NXCOMPAT and DYNAMICBASE (ASLR) flags on the output of the >>linker (so you can add them to the shell tool and other pre-built >>executables as well). Files also need to export the symbol table (hence >>the --export-all-symbols). --large-address-aware sets the (you guessed >>it) large address aware flag which basically means that you are using >>unsigned pointers and not signed pointers (that is, you understand that >>neither disk space nor memory comes in negative sizes) and don't diddle >>with your pointers (eg, assigning magical meaning to bits in the >>pointer). This allows use of more than 2GB of virtual address space per >>process on systems that support it (ie, 32-bit userland on a 64-bit >>Windows -- on 64-bit Windows windows does not co-habitate with 32-bit >>processes, instead a wee trampoline is installed in the top 100MB or so >>of the virtual space to thunk back and forth to the OS -- making it >>impossible to insert code into the OS from a 32-bit process, while 64- >bit >>processes on 64 >> -bit windows have full and complete access to the OS as it resides in >>each processes address space) or if the /3GB boot option is set on 32- >bit >>OSes (so the OS is forced to shoehorn into the top 1GB of each process). >> >>The only thing this does not fix is the Exception Handlers. But that >>particular protection is not implemented by gcc (not needed because of >>non-ill-conceived design?). However, you might still want to add - >>mthreads and the static linking options to the build so that the GCC >>threadsafe exception handlers are used. >> >>--- >>Theory is when you know everything but nothing works. Practice is when >>everything works but no one knows why. Sometimes theory and practice >are >>combined: nothing works and no one knows why. >> >>>-----Original Message----- >>>From: sqlite-users-bounces at mailinglists.sqlite.org [mailto:sqlite- >users- >>>bounces at mailinglists.sqlite.org] On Behalf Of Richard Hipp >>>Sent: Thursday, 2 April, 2015 14:25 >>>To: General Discussion of SQLite Database >>>Subject: Re: [sqlite] Windows 8.x security requirements / SafeSEHCheck >- >>>NXCheck - DBCheck >>> >>>On 4/2/15, Random Coder <random.coder at gmail.com> wrote: >>>> >>>> I'd recommend the SQLite team turn them on for the version of the DLL >>>> they distribute, but I'm honestly not sure if there are negative side >>>> effects to doing so. >>> >>>That's not possible, unfortunately, We compile the published DLL >>>(the 32-bit DLL at least) with MinGW so that they will work on older >>>versions of Windows. If we used a recent MSVC then the resulting DLL >>>will not work on WinXP, I am told. >>> >>>If the published DLL is not to your liking, it is simple to make your >>>own. I suggest you do so. You can start with the amalgamated source >>>code file "sqlite3.c". All you need is to compile that one file into >>>a DLL that the security checker approves of. How hard can that be? >>> >>>-- >>>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 >> >> >> >>_______________________________________________ >>sqlite-users mailing list >>sqlite-users at mailinglists.sqlite.org >>http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > > > >_______________________________________________ >sqlite-users mailing list >sqlite-users at mailinglists.sqlite.org >http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users