Those functions are not exported from the dll on Windows, -only specific marked functions are, ulike unix where we export everything- so a workaround was needed to access those functions from our test suite.
This patch will break testing on Windows, but with +- all the buildings down for different forms of maintenance nobody notices. The old issue was test only, and I don't think just breaking all WC test on Windows just for build sanityvreasond is a proper fix. This will need a proper fix to allow release testing on Windows again. Bert Sent from Outlook for Android<https://aka.ms/AAb9ysg> ________________________________ From: Nathan Hartman <hartman.nat...@gmail.com> Sent: Sunday, May 28, 2023 4:12:25 PM To: Daniel Sahlberg <daniel.l.sahlb...@gmail.com> Cc: Jun Omae <jun6...@gmail.com>; phi...@apache.org <phi...@apache.org>; dev@subversion.apache.org <dev@subversion.apache.org> Subject: Re: svn commit: r1908545 - /subversion/trunk/build.conf On Sun, May 28, 2023 at 5:11 AM Daniel Sahlberg <daniel.l.sahlb...@gmail.com> wrote: > > Good catch Jun! > > Den sön 28 maj 2023 kl 07:33 skrev Jun Omae <jun6...@gmail.com>: >> >> Hi, >> >> On 2023/03/20 10:20, phi...@apache.org wrote: > > [...] >> >> > ============================================================================== >> > --- subversion/trunk/build.conf (original) >> > +++ subversion/trunk/build.conf Mon Mar 20 01:20:29 2023 >> > @@ -1337,7 +1337,7 @@ msvc-force-static = yes >> > description = Test Sqlite query evaluation >> > type = exe >> > path = subversion/tests/libsvn_wc >> > -sources = wc-queries-test.c ../../libsvn_subr/sqlite3wrapper.c >> > +sources = wc-queries-test.c >> > install = test >> > libs = libsvn_test libsvn_wc libsvn_subr apriconv apr sqlite > > > This reverts the first half of half of r1536364: > > [[[ > Don't compile the SQLite amalgamation twice. The WC test can use the same > wrapper as libsvn_subr. > > * build.conf (wc-queries-test): Add sqlite3wrapper from libsvn_subr to > sources. > * subversion/tests/libsvn_wc/wc-queries-test.c: Don't include sqlite3.c; > Instead, use the same method as libsvn_subr/sqlite.c to import the > wrapped functions from sqlite3wrapper.c > (test_sqlite_version): Call sqlite3_libversion instead of using the > sqlite3_version array directly, since the latter is not exported from > sqlite3wrapper.c. > ]]] > > The code in wc-queries-test.c and sqlite.c seems to be exactly the same. > > @philip: What was the exact error message from the gcc sanitizer and can you > dig a little deeper to see if it could be resolved in another way? > > Kind regards, > Daniel Sahlberg svn_sqlite3__api_initialize, svn_sqlite3__api_funcs, etc., not being exported under Windows build? Or are exported with mangled names for some reason? (e.g., could happen if built as C++ (e.g., MSVC /TP switch) and extern declarations aren't wrapped with 'extern "C"'.) I feel like building/linking twice was a kludge that could happen because of something like that. Nathan