aboutsummaryrefslogtreecommitdiffstats
path: root/testing/flightgear/musl-fixes.patch
blob: c72ea90c781cc561db76680f9110f378f8f7bac5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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");