Commit graph

513 commits

Author SHA1 Message Date
Lephenixnoir
9828d2e3f2
meta: update build instructions 2022-08-21 11:55:28 +02:00
Lephenixnoir
65aaba96e1
install: trim the set of installed headers (and libm.a)
This is because all of these headers are included in direct style with
no subfolder so we need them to be in a quite public `include/` folder.
The Makefile installs in `include/openlibm/` but this only works with
extra `-I` flags that are quite annoying to enforce.

With this change, the only OpenLibm headers that are installed are named
`openlibm_*.h`, which is sufficient in terms of namespacing.

Also add a symlink libm.a -> libopenlibm.a.
2022-08-19 16:02:05 +02:00
Lephenixnoir
feba6242e4
fenv: avoid internal includes in user-facing headers
A future cleanup will drastically reduce the set of headers being installed,
and we don't want to install internal headers in particular.
2022-08-19 16:02:05 +02:00
Lephenixnoir
63c74a4b92
also update make settings on GiteaPC
Follow-up to 39ede78797.
2021-05-25 21:45:51 +02:00
Lephenixnoir
e67d553764
make: do not compile the static archive with -fPIC
No idea why it is enabled in the static version.
2021-05-21 14:22:02 +02:00
Lephenixnoir
08f772e6ab
fenv: provide environment primitives 2021-05-21 14:21:51 +02:00
Lephenixnoir
1cf5a91b46
make: add the sh3eb folder to the clean target 2021-05-21 14:07:39 +02:00
Lephenixnoir
8afd538dc8
add missing weak references for long double functions
This ensures that all standard long double functions are defined when
building with 64-bit long double.
2021-05-20 23:30:25 +02:00
Lephenixnoir
39ede78797
README: update make command due to toolchain changes 2021-05-20 23:30:25 +02:00
Lephenixnoir
668336366e
merge from upstream, updated to 0.7.5 2021-05-20 21:31:25 +02:00
Lephenixnoir
d241d4f77a
fix aliases not using underscore prefixes in assembler code
long double functions, that are identical to double functions, usually
define themselves as weak references to their double counterpart.
However, the piece of assembler written for that produces

  .equ <name>l, <name>

but on SuperH C-exported symbols have leading underscores. This commit
adds an SH3 exception to use instead

  .equ _<name>l, _<name>

which fixes a number of long double functions.
2021-05-20 21:27:38 +02:00
Lephenixnoir
07a9090c98
add CMake instructions in the README 2021-05-02 15:07:48 +02:00
Elliot Saba
f052f42bb3
Merge pull request #228 from JuliaMath/aa/hypotl
Fix incorrect results in `hypotl` near underflow
2021-02-17 09:04:36 -08:00
Steven G. Kargl
711654eeab
Fix incorrect results in hypotl near underflow
Fixes #224.
2021-02-10 12:44:19 -08:00
Viral B. Shah
aeab19f47e Fix for #211
Co-authored by: @kargl
2021-02-08 09:39:30 -05:00
Viral B. Shah
5449705906
Merge pull request #227 from JuliaMath/vs/powf
Fix #211
2021-02-06 18:25:12 -05:00
Viral B. Shah
98f87135b0 Fix #211
Patched by importing latest msun version
2021-02-06 18:10:09 -05:00
Viral B. Shah
6a85b33182
Merge pull request #225 from JuliaMath/vs/strict_assign
Restore STRICT_ASSIGN on FreeBSD as suggested in #215
2021-02-06 18:09:23 -05:00
Viral B. Shah
40dac9dd77 Restore STRICT_ASSIGN on FreeBSD as suggested in #215
Co-authored-by: @kargl
2021-02-06 17:27:15 -05:00
Viral B. Shah
2d10c90c77
Merge pull request #218 from jcestibariz/fix-wasm32
Fix compilation errors on wasm32
2021-02-06 11:55:26 -05:00
Elliot Saba
5d70ac564c
Merge pull request #221 from maleadt/tb/static_fenv 2021-02-02 11:43:04 -08:00
Tim Besard
63aa8757f3 Make fenv methods static on additional platforms. 2021-02-01 13:48:31 +01:00
Lephenixnoir
22428cc5d2
add support for quick build with GiteaPC 2021-01-25 17:57:54 +01:00
JC Estibariz
9152b0d1b0 Fix compilation errors on wasm32 2020-12-01 13:17:32 -05:00
Elliot Saba
3cb804556f
Merge pull request #217 from epsilon-0/master
don't alter toolchain vars if already provided
2020-11-30 09:25:02 -08:00
Elliot Saba
c8561015a4
Merge pull request #219 from maleadt/tb/dont_export_fenv
Revert "Export `fenv` functions on all platforms (#213)"
2020-11-16 12:23:59 -08:00
Tim Besard
be31bff11d Revert "Export fenv functions on all platforms (#213)"
The implementation of `fesetenv` cannot be portable, as the value of
`FE_DFL_ENV` differs between platforms. On FreeBSD, it is a actual
environment. With glibc however, it's a sentinel -1 handled in the
implementation of its floating point functions.

With openlibm based on FreeBSD's libm, it assumes `FE_DFL_ENV` to be an
actual environment. That assumption breaks using code that was compiled
against glibc, e.g., `libcuda`:

```
Thread 1 "julia-debug" received signal SIGSEGV, Segmentation fault.
0x00007ffff7b855d0 in fesetenv () from /home/tim/Julia/julia/build/release/usr/bin/../lib/libopenlibm.so
(gdb) bt
```

This reverts commit 5a27b4c0c0.

Fixes https://github.com/JuliaLang/julia/issues/38427.
2020-11-16 09:17:49 +01:00
Lephenixnoir
69b3140a0d
sh3eb: add new README file 2020-10-24 15:11:01 +02:00
Lephenixnoir
998328ebc0
sh3eb: move older README 2020-10-24 14:02:38 +02:00
Lephenixnoir
44c1cbb8eb
sh3eb: add suport for the sh3eb softfp platform 2020-10-24 13:55:39 +02:00
Lephenixnoir
89b463b811
sh3eb: only retain the softfp option of the MIPS fenv.h 2020-10-24 13:42:09 +02:00
Lephenixnoir
1b364a5edf
sh3eb: copy files from the MIPS softfp fenv.h 2020-10-24 13:42:09 +02:00
Aisha Tammy
eb21e8abd1
don't alter toolchain vars if already provided 2020-10-23 15:36:23 +00:00
Keno Fischer
b34f107e24
Fix Apple Silicon build (#214)
My previous Apple Silicon build went through, so I thought it already
worked, but it turns out it accidentally built an armv7 build instead.
This actually fixes the Apple Silicon build. One thing to note in
particular is that on Apple Silicong `long double` is the same as
`double` while on Linux `long double` is a 128 bit double-double
format.

Co-authored-by: Elliot Saba <staticfloat@gmail.com>
2020-09-03 18:27:17 -04:00
Elliot Saba
5a27b4c0c0
Export fenv functions on all platforms (#213)
Win32 has been using a hack to switch the `fenv` functions from `static`
to `DLLEXPORT`, we apply that hack to all platforms that do not use a
host `fenv.h`.
2020-09-02 12:33:04 -04:00
Viral B. Shah
878948d3dd
Update list of libm libraries 2020-08-29 11:25:56 -04:00
Viral B. Shah
508603d2f6
Update index.html 2020-08-29 11:18:18 -04:00
Viral B. Shah
0276147a68
Merge pull request #209 from embeddedartistry/master
Refactor: OLM_DLLEXPORT definition now lives in a standalone header.
2020-08-29 11:12:57 -04:00
Viral B. Shah
f2a8b3690a
Update download links to point to releases 2020-08-29 11:11:35 -04:00
Elliot Saba
1d6befd0df
Merge pull request #208 from cndesantana/patch-1
Fix small typo
2020-08-26 14:58:02 -07:00
Keno Fischer
4f559d4c14
Replace a few remaining __strong_reference uses (#210)
__strong_alias is an ELF feature that is not available on Darwin/MachO.
We have openlibm_strong_reference to paper over these differences,
but we weren't using it consistently. In particular, we were still
using it to define long double -> double aliases on platforms where
these are the same type (e.g. aarch64). This didn't used to matter,
because the only such platform we supported was always Linux and
thus ELF. This patch fixes these instances thus fixing the build
on Apple Silicon.
2020-07-09 15:51:12 -04:00
Phillip Johnston
0418324ca4 Refactor: OLM_DLLEXPORT definition now lives in a standalone header.
On x86_64, openlibm_fenv.h is silently coupled to openlibm_complex.h due to the inclusion of math_private.h inside of openlibm_fenv_amd64.h. The math_private.h header was included to gain access to the OLM_DLLEXPORT macro. However, this macro is redefined, since it is originally defined in openlibm_math.h. This inclusion also exposes math_private.h to public clients, which is undesirable.

Instead, a standalone header is created to contain the OLM_DLLEXPORT definition. This header is used included in the appropriate files. openlibm_fenv_amd64.h is no longer coupled to math_private.h.
2020-06-10 15:57:08 -07:00
cndesantana
861b2ad19d
Fix small typo
replace langage by language
2020-03-31 12:37:11 +02:00
Viral B. Shah
5b0e7e9813
Update FUNDING.yml 2020-02-06 05:11:46 -05:00
Viral B. Shah
382b8e92f4 Add musl-libc math library to resources. 2019-12-09 21:56:36 -05:00
Viral B. Shah
f6ad75aa67 update openlibm website. 2019-12-09 21:53:47 -05:00
Viral B. Shah
5efed306d5 Bump SONAME as discussed in #200 2019-12-09 21:43:44 -05:00
Viral B. Shah
e6ac7d7f52 Update README with new OS and arch support 2019-12-09 21:38:44 -05:00
Viral B. Shah
f731481b25
Merge pull request #199 from llucinat/wasm32-weakref
Fix weak reference macro redefinition in wasm32 target
2019-11-15 06:44:47 -05:00
llucinat
f952e167d2 Fix weak reference macro redefinition in wasm32 target 2019-11-14 08:41:10 +01:00