mirror of
https://git.planet-casio.com/Lephenixnoir/OpenLibm.git
synced 2024-12-28 04:23:41 +01:00
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.
This commit is contained in:
parent
b34f107e24
commit
be31bff11d
1 changed files with 1 additions and 1 deletions
|
@ -29,7 +29,7 @@
|
||||||
#include "bsd_fpu.h"
|
#include "bsd_fpu.h"
|
||||||
#include "math_private.h"
|
#include "math_private.h"
|
||||||
|
|
||||||
#ifndef OPENLIBM_USE_HOST_FENV_H
|
#ifdef _WIN32
|
||||||
#define __fenv_static OLM_DLLEXPORT
|
#define __fenv_static OLM_DLLEXPORT
|
||||||
#endif
|
#endif
|
||||||
#include <openlibm_fenv.h>
|
#include <openlibm_fenv.h>
|
||||||
|
|
Loading…
Reference in a new issue