mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-07-20 09:45:12 +03:00
83 lines
2.7 KiB
Diff
83 lines
2.7 KiB
Diff
Simply disabling the code which enables floating point exceptions
|
|
is probably wrong, but I don't have a replacement for the
|
|
non-posix functions fegetexcept(3) and feenableexcept(3).
|
|
|
|
--- a/src/Main/bootstrap.cxx 2015-02-18 21:10:05.000000000 +0100
|
|
+++ b/src/Main/bootstrap.cxx 2015-11-01 01:25:56.665212195 +0100
|
|
@@ -96,8 +96,12 @@
|
|
initFPE (bool fpeAbort)
|
|
{
|
|
+#if defined(__GLIBC__)
|
|
if (fpeAbort) {
|
|
int except = fegetexcept();
|
|
feenableexcept(except | FE_DIVBYZERO | FE_INVALID);
|
|
} else {
|
|
signal(SIGFPE, handleFPE);
|
|
}
|
|
+#else
|
|
+ signal(SIGFPE, handleFPE);
|
|
+#endif
|
|
There is no <error.h> in musl libc, thus enable the
|
|
include only if __GLIB__ is defined.
|
|
|
|
--- a/3rdparty/iaxclient/lib/libiax2/src/iax.c 2015-02-18 21:10:05.000000000 +0100
|
|
+++ b/3rdparty/iaxclient/lib/libiax2/src/iax.c 2015-10-31 17:14:55.477461723 +0100
|
|
@@ -75,7 +75,7 @@
|
|
// FlightGear: Modified to include FreeBSD
|
|
#if !defined(MACOSX) && !defined(__OpenBSD__) && !defined(__FreeBSD__)
|
|
#include <malloc.h>
|
|
-#if !defined(SOLARIS)
|
|
+#if !defined(SOLARIS) && defined(__GLIBC__)
|
|
#include <error.h>
|
|
#endif
|
|
#endif
|
|
--- a/src/Main/bootstrap.cxx 2017-03-17 09:52:07.474706542 +0100
|
|
+++ b/src/Main/bootstrap.cxx 2017-03-17 09:53:40.361793507 +0100
|
|
@@ -141,7 +141,7 @@
|
|
}
|
|
#endif
|
|
|
|
-#if defined(__GNUC__)
|
|
+#if defined(__GNUC__) && defined(__GLIBC__)
|
|
#include <execinfo.h>
|
|
#include <cxxabi.h>
|
|
void segfault_handler(int signo) {
|
|
@@ -244,8 +244,10 @@
|
|
|
|
signal(SIGPIPE, SIG_IGN);
|
|
# ifndef NDEBUG
|
|
+# ifdef __GLIBC__
|
|
signal(SIGSEGV, segfault_handler);
|
|
# endif
|
|
+# endif
|
|
#endif
|
|
|
|
_bootstrap_OSInit = 0;
|
|
--- a/src/FDM/JSBSim/JSBSim.cpp 2017-03-01 21:06:31.000000000 +0100
|
|
+++ b/src/FDM/JSBSim/JSBSim.cpp 2017-03-17 09:49:13.115544107 +0100
|
|
@@ -287,7 +287,7 @@
|
|
_clearfp();
|
|
_controlfp(_controlfp(0, 0) & ~(_EM_INVALID | _EM_ZERODIVIDE | _EM_OVERFLOW),
|
|
_MCW_EM);
|
|
-#elif defined(__GNUC__) && !defined(sgi) && !defined(__APPLE__)
|
|
+#elif defined(__GNUC__) && !defined(sgi) && !defined(__APPLE__) && defined(__GLIBC__)
|
|
feenableexcept(FE_DIVBYZERO | FE_INVALID);
|
|
#endif
|
|
|
|
For musl libc return the file position using
|
|
ftell(3) because fpos_t is opaque.
|
|
|
|
--- a/3rdparty/hts_engine_API/lib/HTS_misc.c 2015-02-18 21:10:05.000000000 +0100
|
|
+++ b/3rdparty/hts_engine_API/lib/HTS_misc.c 2015-10-31 17:33:53.946349145 +0100
|
|
@@ -247,8 +247,10 @@
|
|
fgetpos((FILE *) fp->pointer, &pos);
|
|
#if defined(_WIN32) || defined(__CYGWIN__) || defined(__APPLE__) || defined(__ANDROID__) || defined(__FreeBSD__)
|
|
return (size_t) pos;
|
|
-#else
|
|
+#elif defined(__GLIBC__)
|
|
return (size_t) pos.__pos;
|
|
+#else
|
|
+ return (size_t) ftell(fp->pointer);
|
|
#endif /* _WIN32 || __CYGWIN__ || __APPLE__ || __ANDROID__ */
|
|
}
|
|
HTS_error(0, "HTS_ftell: Unknown file type.\n");
|