Hi Bill and Fredrik,
Being in CORVID lockdown, I decided to have a look at building Arb with
Visual Studio. This has gone pretty well but I have a few issues on
which I would appreciate your advice.
I can compile and build Arb as a static library without any issues but
building Arb as a DLL fails because it needs two flint export ssymbols
that are not present in the FLINT DLL.
The first of these is '__flint_clz_tab' which I find can be switched on
in FLINT by defining NEED_CLZ_TAB when building FLINT. This should not
be a problem since I can modify my FLINT build to do this.
The second missing symbol is 'partitions_lookup', which is defined in
the FLINT file 'number_of_partitions.c' where it does have an export
definition. But this is not visible to Arb because it this symbol is not
declared in flint.h or, as far as I can tell, in any other exported
FLINT header.
So is this a symbol that FLINT should export and, if so, where should
the export declaration be placed?
Another issue I am keen to tidy up is library location and naming. I am
using simple names for the mpir dependent Windows builds: mpir, mpfr,
pthreads, ... and adding extensions 'lib and .dll accordingly.
For example, MPIR is in a root directory callled 'mpir' and within this
directory I have lib, dll, and exe sub-directories where I place the
mpir.lb, mpir.dll and mpir.exe build outputs. The same structure applies
to mpfr, pthreads but for FLINT I have been using the directory 'flint2'
rather than 'flint' and 'lib_flint.lib' and 'dll_flint.dll' for the
libraries (I am not sure why!)
In order to get a consistent approach now that I am adding Arb, I would
like to use the directory 'flint' rather than 'flint2' as the root
directory for FLINT and use the names 'flint.lib' and 'flint.dll' for
the libraries. But before I do this I would like to know if this change
is going to cause any issues for others (I am aware the the CMake FLINT
build depends on my FLINT build, which is why I am asking).
with my regards,
Brian