* add msys2 ci job
* run CI on any branch
* install base-devel on msys2
* remove soname and nodefaultlibs flags from mingw
* avoid soname on Windows
* add OLM_DLLEXPORT to signgam
it needs to be exported from the DLL also
* define IMPORT_EXPORTS on WINNT
While there are function export thunks in the import library that allow the linker to do the right thing for functions even if this is not set, it is required for the linker to do the right thing with variables being imported from a DLL (namely, signgam)
* add OLM_DLLEXPORT to openlibm_fenv_i387.h
seems this whole header was overlooked
* Update openlibm_fenv_i387.h
include openlibm_defs.h for OLM_DLLEXPORT
* Previously, behavior differed if the same value of `ARCH` was defined
within `Make.inc` or defined on the command line. Don't do that.
* Provide saner defaults for `ARCH` and `MARCH`, and more importantly,
allow for the proper overriding of both.
* Split `AArch64` code further away from the other `arm` code.
This is rather basic. A clean is needed to get rid of artifacts from
previous runs with other architectures.
Note this requires PR #88 to work because without it x86 is broken.
Closes#89
- Don't define llabs(). This breaks if llabs() is already a macro, which
is allowed by the C standard/POSIX. llabs() was introduced in C99, so
I think we can safely assume it is present on all interesting systems.
- Cast the parameters to fabs() to the floating point type. Clang has
introduced some interesting warnings that trigger if the arguments to
fabs*() are not the right type.
This is a bit more consistent with the naming of the other header files
(openlibm_complex.h and openlibm_fenv.h). Re-add an openlibm.h header
that includes all of the public headers as a shorthand.
Fix up all of the source files to include <openlibm_math.h> instead of
<openlibm.h>. While there, fix ordering of the includes.
OpenLibm has an implementation of fenv.h internally. This may be
problematic in case you want it to build against the host system's
implementation, as it would require you to somehow take the fenv.h file
out of the compiler search path.
Simply use a different naming scheme, similar to openlibm.h and
openlibm_complex.h. If we want to build against the host's fenv.h, we
can simply add an '#include <fenv.h>' from within this header.