annotate doc/manual/manual_overview.tex @ 333:4e9d3cb9870f

- minor doc cleanups/cosmetics
author Tassilo Philipp
date Wed, 27 Nov 2019 19:55:18 +0100
parents d55f9d508074
children 2f28f26c72a7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
1 %//////////////////////////////////////////////////////////////////////////////
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
2 %
333
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
3 % Copyright (c) 2007-2019 Daniel Adler <dadler@uni-goettingen.de>,
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
4 % Tassilo Philipp <tphilipp@potion-studios.com>
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
5 %
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
6 % Permission to use, copy, modify, and distribute this software for any
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
7 % purpose with or without fee is hereby granted, provided that the above
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
8 % copyright notice and this permission notice appear in all copies.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
9 %
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
10 % THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
11 % WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
12 % MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
13 % ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
14 % WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
15 % ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
16 % OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
17 %
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
18 %//////////////////////////////////////////////////////////////////////////////
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
19
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
20 \newpage
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
21
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
22 \section{Overview}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
23
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
24 The \product{dyncall} library encapsulates architecture-, OS- and compiler-specific
72
2b89d8497aad - html manual work
cslag
parents: 26
diff changeset
25 function call semantics in a virtual %
2b89d8497aad - html manual work
cslag
parents: 26
diff changeset
26 %
73
8326c5ced916 - doc cleanup and html work
cslag
parents: 72
diff changeset
27 \casehtml{\Tg<span class="marker">}{\begin{center}}%
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
28 \emph{bind argument parameters from left to right and then call}
72
2b89d8497aad - html manual work
cslag
parents: 26
diff changeset
29 \casehtml{\Tg</span>}{\end{center}}%
2b89d8497aad - html manual work
cslag
parents: 26
diff changeset
30 %
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
31 interface allowing programmers to call C functions
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
32 in a completely dynamic manner. In other words, instead of calling a function
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
33 directly, the \product{dyncall} library provides a mechanism to push the function parameters
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
34 manually and to issue the call afterwards.\\
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
35 Since the idea behind this concept is similar to call dispatching mechanisms
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
36 of virtual machines, the object that can be dynamically loaded with arguments,
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
37 and then used to actually invoke the call, is called CallVM. It is possible to
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
38 change the calling convention used by the CallVM at run-time.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
39 Due to the fact that nearly every platform comes with one or more distinct calling
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
40 conventions, the \product{dyncall} library project intends to be a portable and open-source
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
41 approach to the variety of compiler-specific binary interfaces, platform specific
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
42 subtleties, and so on\ldots\\
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
43 \\
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
44 The core of the library consists of dynamic implementations of different
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
45 calling conventions written in assembler.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
46 Although the library aims to be highly portable, some assembler code needs to
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
47 be written for nearly every platform/compiler/OS combination.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
48 Unfortunately, there are architectures we just don't have at home or work. If
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
49 you want to see \product{dyncall} running on such a platform, feel free to send
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
50 in code and patches, or even to donate hardware you don't need anymore.
73
8326c5ced916 - doc cleanup and html work
cslag
parents: 72
diff changeset
51 Check the \textbf{supported platforms} section for an overview of the supported
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
52 platforms and the different calling convention sections for details about the
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
53 support.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
54 \\
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
55 \begin{comment}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
56 @@@
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
57 A typical binary library consists of symbolic names that map to variables and
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
58 functions, the latter being pre-compiled for a
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
59 specific calling convention and architecture. Given \product{dyncall} has been ported to
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
60 that binary platform, it is possible to call such a function dynamically
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
61 without writing glue code or prototypes or even knowing its C declaration -
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
62 all that is needed is a pointer to it.\\
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
63 To avoid confusion, note that from the point of view of the library all
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
64 parameters are handled the same way, even though the implementation might use
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
65 other ways to pass parameters in order to suit specific calling conventions.\\
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
66 \end{comment}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
67
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
68
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
69 \subsection{Features}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
70
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
71 \begin{itemize}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
72 \item A portable and extendable function call interface for the C programming
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
73 language.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
74 \item Ports to major platforms including Windows, Mac OS X, Linux, BSD derivates, iPhone and embedded devices and more, including lesser known and/or older platforms like Plan 9, Playstation Portable, Nintendo DS, etc..
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
75 \item Add-on language bindings to Python, R, Ruby, Go, Erlang, Java, Lua, sh, ...
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
76 \item High-level state machine design using C to model calling convention
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
77 parameter transfer.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
78 \item One assembly \emph{hybrid} call routine per calling convention.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
79 \item Formatted call, vararg function API.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
80 \item Comprehensive test suite.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
81 \end{itemize}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
82
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
83 \pagebreak
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
84
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
85 \subsection{Showcase}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
86
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
87 \paragraph{Foreign function call in C}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
88 This section demonstrates how the foreign function call is issued without, and then
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
89 with, the help of the \product{dyncall} library and scripting language
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
90 bindings.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
91
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
92 \begin{lstlisting}[language=c,caption=Foreign function call in C]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
93 double call_as_sqrt(void* funptr, double x)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
94 {
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
95 return ( ( double (*)(double) )funptr)(x);
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
96 }
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
97 \end{lstlisting}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
98
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
99 \paragraph{\product{Dyncall} C library example}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
100
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
101 The same operation can be broken down into atomic pieces
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
102 (specify calling convention, binding arguments, invoking the call)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
103 using the \dc\ library.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
104
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
105 \begin{lstlisting}[language=c,caption=Dyncall C library example]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
106 #include <dyncall.h>
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
107 double call_as_sqrt(void* funptr, double x)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
108 {
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
109 double r;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
110 DCCallVM* vm = dcNewCallVM(4096);
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
111 dcMode(vm, DC_CALL_C_DEFAULT);
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
112 dcReset(vm);
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
113 dcArgDouble(vm, x);
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
114 r = dcCallDouble(vm, funptr);
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
115 dcFree(vm);
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
116 return r;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
117 }
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
118 \end{lstlisting}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
119
333
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
120 This is more code than a direct, hardcoded function call, however it's completely dynamic.
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
121 Also, despite this coming with an overhead of more executed code per single function call,
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
122 compared to function interface wrapper tools that generate per call glue-code less code is
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
123 used overall, . % might want to test this claim against swig, etc.
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
124
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
125 The following are examples from script bindings:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
126
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
127 \paragraph{Python example}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
128
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
129 \begin{lstlisting}[language=python,caption=Dyncall Python bindings example]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
130 import pydc
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
131 def call_as_sqrt(funptr,x):
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
132 return pydc.call(funptr,"d)d", x)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
133 \end{lstlisting}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
134
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
135
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
136 \paragraph{R example}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
137
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
138 \begin{lstlisting}[language=R,caption=Dyncall R bindings example,escapeinside={TEX}{XET}] % escapeinside is a workaround for issues with '<' in lstlisting+tex4ht
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
139 library(rdyncall)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
140 call.as.sqrt TEX\textlessXET- function(funptr,x)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
141 .dyncall(funptr,"d)d", x)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
142 \end{lstlisting}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
143
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
144
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
145 \pagebreak
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
146
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
147 \subsection{Supported platforms/architectures}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
148
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
149 The feature matrix below gives a brief overview of the currently supported
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
150 platforms. Different colors are used, where a green cell indicates a supported
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
151 platform, yellow a platform that might work (but is untested) and red a platform
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
152 that is currently unsupported. Gray cells are combinations that don't exist
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
153 at the time of writing, or that are not taken into account.\\
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
154 Light green cells mark complete feature support, as in dyncall and dyncallback. Dark green means basic support but lacking features (e.g. dyncall support, but not dyncallback).
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
155 Please note that a green cell (even a light-green one) doesn't imply that all existing calling conventions/features/build tools are supported for that platform (but the most
299
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
156 important). The rightmost column gives a brief info about calling convention support or other notes.
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
157 For detailed info about a platform's support consult the calling convention appendix.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
158
333
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
159
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
160 % colors used to signalize undefined, not used, supported, etc. states.
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
161 \newcommand{\marknull}{\cellcolor{white}}
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
162 \newcommand{\markcmpl}{\cellcolor{lightgreen}}
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
163 \newcommand{\markimpl}{\cellcolor{darkgreen}}
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
164 \newcommand{\marknimp}{\cellcolor{red}}
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
165 \newcommand{\markunkn}{\cellcolor{yellow}}
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
166 \newcommand{\marknotx}{\cellcolor{gray1}}
299
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
167
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
168 \newcommand{\OSwinfam} {\ninety{Windows family} }
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
169 \newcommand{\OSlinux} {\ninety{Linux} }
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
170 \newcommand{\OSdarwin} {\ninety{macOS / iOS / Darwin}}
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
171 \newcommand{\OSfreebsd}{\ninety{FreeBSD} }
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
172 \newcommand{\OSnetbsd} {\ninety{NetBSD} }
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
173 \newcommand{\OSopenbsd}{\ninety{OpenBSD} }
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
174 \newcommand{\OSdflybsd}{\ninety{DragonFlyBSD} }
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
175 \newcommand{\OSsunos} {\ninety{Solaris / SunOS} }
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
176 \newcommand{\OSplanN} {\ninety{Plan 9 / 9front} }
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
177 \newcommand{\OSbeos} {\ninety{Haiku / BeOS} }
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
178 \newcommand{\OSminix} {\ninety{Minix} }
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
179 \newcommand{\OSpsp} {\ninety{Playstation Portable}}
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
180 \newcommand{\OSnds} {\ninety{Nintendo DS} }
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
181
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
182 % also include hardfloat/softfloat @@@
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
183 \begin{table}[h]
299
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
184 \begin{tabular}{r>{\rule{0pt}{2.5ex}\tiny}l*{12}{c!{\color{gray3}\vrule}}c>{\tiny}l}
300
24fe46874d4a - more verbose support matrix
Tassilo Philipp
parents: 299
diff changeset
185 & & \OSwinfam & \OSlinux & \OSdarwin & \OSfreebsd & \OSnetbsd & \OSopenbsd & \OSdflybsd & \OSsunos & \OSplanN & \OSbeos & \OSminix & \OSpsp & \OSnds \\%& \\
302
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 300
diff changeset
186 \arrayrulecolor{gray3}%
300
24fe46874d4a - more verbose support matrix
Tassilo Philipp
parents: 299
diff changeset
187 \multirow{2}{*}{ARM} & EB & \marknotx & \markunkn & \marknotx & \markunkn & \markunkn & \markunkn & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& \multirow{2}{*}{atpcs (arm \& thumb), eabi (arm \& thumb), armhf} \\
302
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 300
diff changeset
188 \hhline{*{1}{|~}*{14}{|-}}% ^- checked ^- find@@@ ^- checked ^- find@@@ ^- find@@@ ^- find@@@ ^- checked ^- checked ^- checked ^- new@@@ ^- checked ^- checked ^- checked
300
24fe46874d4a - more verbose support matrix
Tassilo Philipp
parents: 299
diff changeset
189 & EL & \markunkn & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \marknotx & \marknotx & \marknimp & \marknotx & \markunkn & \marknotx & \markcmpl \\%& \\
302
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 300
diff changeset
190 \hline% ^- find@@@ ^- dynOS ^- real ^- dynOS ^- dynOS ^- real/bbb ^- checked ^- checked ^- checked ^- new@@@ ^- new@@@ ^- checked ^- checked
300
24fe46874d4a - more verbose support matrix
Tassilo Philipp
parents: 299
diff changeset
191 \multirow{2}{*}{ARM64} & EB & \marknotx & \markunkn & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& \multirow{2}{*}{aapcs64, apple} \\
302
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 300
diff changeset
192 \hhline{*{1}{|~}*{14}{|-}}% ^- checked ^- find@@@ ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked
300
24fe46874d4a - more verbose support matrix
Tassilo Philipp
parents: 299
diff changeset
193 & EL & \markunkn & \markcmpl & \markcmpl & \markcmpl & \markunkn & \markunkn & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& \\
302
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 300
diff changeset
194 \hline% ^- find@@@ ^- find@@@ ^- checked ^- checked ^- find@@@ ^- find@@@ ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 300
diff changeset
195 \multirow{2}{*}{MIPS} & EB & \marknotx & \markcmpl & \marknotx & \markcmpl & \markunkn & \marknotx & \marknotx & \marknotx & \marknimp & \marknotx & \marknotx & \marknotx & \marknotx \\%& \multirow{2}{*}{o32 (hf \& sf), eabi (hf only)} \\
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 300
diff changeset
196 \hhline{*{1}{|~}*{14}{|-}}% ^- checked ^- dynOS ^- checked ^- checked ^- find@@@ ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked
300
24fe46874d4a - more verbose support matrix
Tassilo Philipp
parents: 299
diff changeset
197 & EL & \marknotx & \markunkn & \marknotx & \markcmpl & \markcmpl & \markunkn & \marknotx & \marknotx & \marknimp & \marknotx & \marknotx & \markcmpl & \marknotx \\%& \\
302
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 300
diff changeset
198 \hline% ^- checked ^- find@@@ ^- checked ^- checked ^- dynOS ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 300
diff changeset
199 \multirow{2}{*}{MIPS64} & EB & \marknotx & \markunkn & \marknotx & \markcmpl & \markunkn & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& \multirow{2}{*}{n64 (hf only), n32 (hf only)} \\
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 300
diff changeset
200 \hhline{*{1}{|~}*{14}{|-}}% ^- checked ^- find@@@ ^- checked ^- checked ^- find@@@ ^- real/ERlt ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked
300
24fe46874d4a - more verbose support matrix
Tassilo Philipp
parents: 299
diff changeset
201 & EL & \marknotx & \markcmpl & \marknotx & \markcmpl & \markunkn & \markunkn & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& \\
302
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 300
diff changeset
202 \hline% ^- checked ^- dynOS ^- checked ^- checked ^- find@@@ ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked
300
24fe46874d4a - more verbose support matrix
Tassilo Philipp
parents: 299
diff changeset
203 \multirow{2}{*}{SuperH} & EB & \marknotx & \marknimp & \marknotx & \marknotx & \marknimp & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& \\
302
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 300
diff changeset
204 \hhline{*{1}{|~}*{14}{|-}}% ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked
300
24fe46874d4a - more verbose support matrix
Tassilo Philipp
parents: 299
diff changeset
205 & EL & \marknotx & \marknimp & \marknotx & \marknotx & \marknimp & \marknimp & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& \\
302
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 300
diff changeset
206 \hline% ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked
300
24fe46874d4a - more verbose support matrix
Tassilo Philipp
parents: 299
diff changeset
207 \multirow{2}{*}{PowerPC} & EB & \marknotx & \markcmpl & \markcmpl & \markimpl & \markimpl & \markunkn & \marknotx & \marknotx & \marknimp & \marknotx & \marknotx & \marknotx & \marknotx \\%& \multirow{2}{*}{apple, sysv}\\
302
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 300
diff changeset
208 \hhline{*{1}{|~}*{14}{|-}}% ^- checked ^- dynOS ^-dynOS ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked
300
24fe46874d4a - more verbose support matrix
Tassilo Philipp
parents: 299
diff changeset
209 & EL & \marknotx & \markunkn & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& \\
302
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 300
diff changeset
210 \hline% ^- checked ^- find@@@ ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked
300
24fe46874d4a - more verbose support matrix
Tassilo Philipp
parents: 299
diff changeset
211 \multirow{2}{*}{PowerPC64} & EB & \marknotx & \markcmpl & \markunkn & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx & \marknimp & \marknotx & \marknotx & \marknotx & \marknotx \\%& \multirow{2}{*}{elf} \\
302
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 300
diff changeset
212 \hhline{*{1}{|~}*{14}{|-}}% ^- checked ^- masanori@ ^- checked ^- dynOS ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked
300
24fe46874d4a - more verbose support matrix
Tassilo Philipp
parents: 299
diff changeset
213 & EL & \marknotx & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& \\
302
d55f9d508074 - mips softfloat support for o32 callconv (calls and callbacks, little and big endian)
Tassilo Philipp
parents: 300
diff changeset
214 \hline% ^- checked ^- masanori@ ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked ^- checked
300
24fe46874d4a - more verbose support matrix
Tassilo Philipp
parents: 299
diff changeset
215 m68k & & \marknotx & \marknimp & \marknotx & \marknotx & \marknimp & \marknimp & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& \\
299
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
216 \hline
300
24fe46874d4a - more verbose support matrix
Tassilo Philipp
parents: 299
diff changeset
217 m88k & & \marknotx & \marknimp & \marknotx & \marknotx & \marknimp & \marknimp & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& \\
299
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
218 \hline
300
24fe46874d4a - more verbose support matrix
Tassilo Philipp
parents: 299
diff changeset
219 x86 & & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \marknotx & \marknotx \\%& cdecl, stdcall, fastcall (MS \& GNU), thiscall (MS \& GNU), plan9 \\
299
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
220 \hline
300
24fe46874d4a - more verbose support matrix
Tassilo Philipp
parents: 299
diff changeset
221 x64 & & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \markcmpl & \marknimp & \marknotx & \marknotx & \marknotx & \marknotx \\%& ms, sysv\\
299
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
222 \hline
300
24fe46874d4a - more verbose support matrix
Tassilo Philipp
parents: 299
diff changeset
223 Itanium & & \marknimp & \marknimp & \marknotx & \marknimp & \marknimp & \marknimp & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& \\
299
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
224 \hline
300
24fe46874d4a - more verbose support matrix
Tassilo Philipp
parents: 299
diff changeset
225 SPARC & & \marknotx & \markcmpl & \marknotx & \marknotx & \markcmpl & \markcmpl & \marknotx & \markcmpl & \marknimp & \marknotx & \marknotx & \marknotx & \marknotx \\%& v7, v8\\
299
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
226 \hline
300
24fe46874d4a - more verbose support matrix
Tassilo Philipp
parents: 299
diff changeset
227 SPARC64 & & \marknotx & \markcmpl & \marknotx & \markcmpl & \markcmpl & \markcmpl & \marknotx & \markimpl & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& v9 \\
299
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
228 \hline
300
24fe46874d4a - more verbose support matrix
Tassilo Philipp
parents: 299
diff changeset
229 RISC-V & & \marknotx & \marknimp & \marknotx & \marknimp & \marknimp & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\%& \\
299
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
230
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
231 \end{tabular}
92
5c3fa8897e0e - manual work
cslag
parents: 73
diff changeset
232 \caption{Supported platforms}%
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
233 \end{table}
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
234
333
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
235 % OLD support matrix
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
236 %\begin{table}[h]
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
237 %\begin{tabular}{r|*{3}{c!{\color{gray2}\vrule}}*{4}{c!{\color{gray2}\vrule}}*{11}{c!{\color{gray2}\vrule}}}
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
238 % & \ninety{\bf Alpha} & \ninety{\bf ARM} & \ninety{\bf ARM64} & \multicolumn{2}{c!{\color{gray2}\vrule}}{\ninety{\bf MIPS}} & \multicolumn{2}{c!{\color{gray2}\vrule}}{\ninety{\bf MIPS64}} & \ninety{\bf SuperH} & \ninety{\bf PowerPC} & \ninety{\bf PowerPC64} & \ninety{\bf m68k} & \ninety{\bf m88k} & \ninety{\bf x86} & \ninety{\bf x64} & \ninety{\bf Itanium} & \ninety{\bf SPARC} & \ninety{\bf SPARC64} & \ninety{\bf RISC-V} \\
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
239 % & & & & \ninety{\tiny EB} & \ninety{\tiny EL} & \ninety{\tiny EB} & \ninety{\tiny EL} & & & & & & & & & & & \\
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
240 %\hline
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
241 %{\bf Windows family} & \marknotx & \markunkn & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \markcmpl & \markcmpl & \marknimp & \marknotx & \marknotx & \marknotx \\
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
242 %{\bf Linux} & \marknimp & \markcmpl & \markcmpl & \markcmpl & \markunkn & \markunkn & \markcmpl & \marknimp & \markcmpl & \markcmpl & \marknimp & \marknimp & \markcmpl & \markcmpl & \marknimp & \markcmpl & \markcmpl & \marknimp \\
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
243 %{\bf macOS / iOS / Darwin} & \marknotx & \markcmpl & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \markcmpl & \markunkn & \marknotx & \marknotx & \markcmpl & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx \\
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
244 %{\bf FreeBSD} & \marknimp & \markcmpl & \markcmpl & \markunkn & \markunkn & \markunkn & \markunkn & \marknotx & \markimpl & \markcmpl & \marknotx & \marknotx & \markcmpl & \markcmpl & \marknimp & \marknotx & \markcmpl & \marknimp \\
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
245 %{\bf NetBSD} & \marknimp & \markcmpl & \marknotx & \markunkn & \markcmpl & \markunkn & \markunkn & \marknimp & \markimpl & \marknotx & \marknimp & \marknimp & \markcmpl & \markcmpl & \marknimp & \markcmpl & \markcmpl & \marknimp \\
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
246 %{\bf OpenBSD} & \marknimp & \markcmpl & \markunkn & \markunkn & \markunkn & \markcmpl & \markunkn & \marknimp & \markunkn & \marknotx & \marknimp & \marknimp & \markcmpl & \markcmpl & \marknimp & \markcmpl & \markcmpl & \marknotx \\
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
247 %{\bf DragonFlyBSD} & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \markcmpl & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx \\
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
248 %{\bf Solaris / SunOS} & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \markcmpl & \markcmpl & \marknotx & \markcmpl & \markimpl & \marknotx \\
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
249 %{\bf Plan 9 / 9front} & \marknimp & \marknimp & \marknotx & \marknimp & \marknimp & \marknotx & \marknotx & \marknotx & \marknimp & \marknotx & \marknotx & \marknotx & \markcmpl & \marknimp & \marknotx & \marknimp & \marknotx & \marknotx \\
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
250 %{\bf Haiku / BeOS} & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
251 %{\bf Minix} & \marknotx & \markunkn & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
252 %{\bf Playstation Portable} & \marknotx & \marknotx & \marknotx & \marknotx & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
253 %{\bf Nintendo DS} & \marknotx & \markcmpl & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx & \marknotx \\
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
254 %\end{tabular}
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
255 %\caption{Supported platforms}%
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
256 %\end{table}
4e9d3cb9870f - minor doc cleanups/cosmetics
Tassilo Philipp
parents: 302
diff changeset
257
299
1fa2427dae49 - changed style of support matrix, marked freebsd/mips complet (hardfloat, only, though)
Tassilo Philipp
parents: 271
diff changeset
258
250
7cb8a0aaf638 - note about c99 (+ anon struct/union) requirements in doc
Tassilo Philipp
parents: 225
diff changeset
259 \subsection{Build Requirements}
7cb8a0aaf638 - note about c99 (+ anon struct/union) requirements in doc
Tassilo Philipp
parents: 225
diff changeset
260
7cb8a0aaf638 - note about c99 (+ anon struct/union) requirements in doc
Tassilo Philipp
parents: 225
diff changeset
261 The library needs at least a c99 compiler with additional support for anonymous
7cb8a0aaf638 - note about c99 (+ anon struct/union) requirements in doc
Tassilo Philipp
parents: 225
diff changeset
262 structs/unions (which were introduced officially in c11). Given that those are
7cb8a0aaf638 - note about c99 (+ anon struct/union) requirements in doc
Tassilo Philipp
parents: 225
diff changeset
263 generally supported by pretty much all major c99 conforming compilers (as
7cb8a0aaf638 - note about c99 (+ anon struct/union) requirements in doc
Tassilo Philipp
parents: 225
diff changeset
264 default extension), it should build fine with a c99 toolchain.
7cb8a0aaf638 - note about c99 (+ anon struct/union) requirements in doc
Tassilo Philipp
parents: 225
diff changeset
265