On Wed, 27 Jan 2021 02:07:13 -0800 (PST), 'mj10777' via SpatiaLite
Users wrote:
> On Wednesday, 27 January 2021 at 10:26:00 UTC+1
xylar...@gmail.com
> wrote:
>
>> The Linux build is now working great! And I think I have a handle on
>> the Windows build.
>>
note: as per my personal direct experience with mingw32/mingw64
compilers the whole testcoverage runs smoothly on Windows, but
only when compiling 64bit code.
few tests fail in 32bit mode due to some slightly different numeric
results returned by PROJ, GEOS and GCP.
the problem is in that x86 floating point registers (inherited from
the very old design of the initial 8087 coprocessor) have an odd
intrinsic precision of 80 bits, that doesn't matches the standard
64 bits usually expected for doubles, and this could easily lead
to a nightmare of rounding and truncation errors.
the more modern and rational design of x86_64 has 64 bits floating
point registers, so the problem never arise.
>> Three tests are still failing for us on the OSX build:
>>
>
> mod_spatialite.so was created instead of mod_spatialite.dylib.
> I don't remember if 'dylib' is also looked for.
> Sandro: isn't the checking of the dll, so extension done in sqlite3?
>
my personal experience about MacOsX is very limited.
in a very general way there is a conceptual difference
between a shared (aka dynamic) library and a dynamically
loadable module.
- a shared library is subject to "early binding", and
is immediately loaded when the main application starts;
if it cannot be loaded for any reason the app can't start.
- a dynamically loadable module is subject to "late binding",
and is effectively loaded only when strictly required.
if it cannot be loaded the main application can survive
unharmed (usually by suppressing some functionalities).
it's obviously intended to support a flexible architecture
based on plug-ins and dynamic modules.
in both Unix/Linux and Windows there is no practical
difference; in both cases we'll always have a .so (Linux)
or a .dll (Windows).
this is not true on MacOsX, that applies a strong
distinction between .so and .dylib, but if I remember
well loading mod_spatialite.so should work also
on MacOsX
a desperate workaround (strongly discouraged) could
be the one to manually rename mod_spatialite.so
to mod_spatialite.dylib (or even better create
a link with a different name)
bye Sandro