rbdc 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. data/bindings/ruby/rbdc/extconf.rb +57 -0
  2. data/bindings/ruby/rbdc/rbdc.c +304 -0
  3. data/dyncall/AUTHORS +4 -0
  4. data/dyncall/BUGS +3 -0
  5. data/dyncall/CMakeLists.txt +79 -0
  6. data/dyncall/ChangeLog +165 -0
  7. data/dyncall/LICENSE +15 -0
  8. data/dyncall/Makefile.M +15 -0
  9. data/dyncall/Makefile.embedded +71 -0
  10. data/dyncall/Makefile.generic +36 -0
  11. data/dyncall/Nmakefile +45 -0
  12. data/dyncall/README +92 -0
  13. data/dyncall/ToDo +114 -0
  14. data/dyncall/autovar/LICENSE.txt +15 -0
  15. data/dyncall/autovar/README.txt +69 -0
  16. data/dyncall/autovar/autovar_ABI.h +44 -0
  17. data/dyncall/autovar/autovar_ARCH.h +56 -0
  18. data/dyncall/autovar/autovar_CC.h +46 -0
  19. data/dyncall/autovar/autovar_OS.h +78 -0
  20. data/dyncall/autovar/autovar_OSFAMILY.h +39 -0
  21. data/dyncall/buildsys/cmake/Modules/FindDynCall.cmake +43 -0
  22. data/dyncall/buildsys/cmake/Modules/FindDynCallback.cmake +43 -0
  23. data/dyncall/buildsys/cmake/Modules/FindDynLoad.cmake +45 -0
  24. data/dyncall/buildsys/cmake/Modules/UseLATEX.cmake +811 -0
  25. data/dyncall/buildsys/dynmake/Makefile.base.M +82 -0
  26. data/dyncall/buildsys/dynmake/dynmake.bat +2 -0
  27. data/dyncall/buildsys/dynmake/dynmake.sh +4 -0
  28. data/dyncall/buildsys/lua/Makefile +10 -0
  29. data/dyncall/buildsys/lua/README.txt +4 -0
  30. data/dyncall/buildsys/lua/bootstrap.sh +34 -0
  31. data/dyncall/buildsys/lua/cleanup.sh +6 -0
  32. data/dyncall/buildsys/lua/mkfile +34 -0
  33. data/dyncall/buildsys/lua/setenv.sh +4 -0
  34. data/dyncall/buildsys/mk/app.mk +30 -0
  35. data/dyncall/buildsys/mk/dirs.mk +27 -0
  36. data/dyncall/buildsys/mk/epilog.mk +30 -0
  37. data/dyncall/buildsys/mk/lib.mk +23 -0
  38. data/dyncall/buildsys/mk/pcc.mk +60 -0
  39. data/dyncall/buildsys/mk/prolog.mk +35 -0
  40. data/dyncall/buildsys/nmake/common.nmake +61 -0
  41. data/dyncall/buildsys/nmake/epilog.nmake +28 -0
  42. data/dyncall/buildsys/nmake/prolog.nmake +76 -0
  43. data/dyncall/buildsys/nmake/tool_gcc.nmake +82 -0
  44. data/dyncall/buildsys/nmake/tool_msvc.nmake +67 -0
  45. data/dyncall/buildsys/scripts/batch-build-linux.sh +11 -0
  46. data/dyncall/buildsys/scripts/batch-build-minix.sh +11 -0
  47. data/dyncall/buildsys/scripts/batch-build-psp.sh +11 -0
  48. data/dyncall/buildsys/scripts/conf-nds.bat +41 -0
  49. data/dyncall/buildsys/scripts/setenv-cross-ios.sh +8 -0
  50. data/dyncall/buildsys/scripts/setenv-sdk-ios.sh +22 -0
  51. data/dyncall/buildsys/vs2005/dyncall/dyncall.vcproj +245 -0
  52. data/dyncall/buildsys/vs2005/test_plain/test_plain.vcproj +202 -0
  53. data/dyncall/buildsys/vs2005/vs2005.sln +29 -0
  54. data/dyncall/configure +152 -0
  55. data/dyncall/configure.bat +157 -0
  56. data/dyncall/configure.rc +234 -0
  57. data/dyncall/dynMakefile +4 -0
  58. data/dyncall/dyncall/CMakeLists.txt +53 -0
  59. data/dyncall/dyncall/DynCallConfig.cmake +3 -0
  60. data/dyncall/dyncall/Makefile.M +10 -0
  61. data/dyncall/dyncall/Makefile.embedded +20 -0
  62. data/dyncall/dyncall/Makefile.generic +16 -0
  63. data/dyncall/dyncall/Nmakefile +62 -0
  64. data/dyncall/dyncall/README-Developer.txt +45 -0
  65. data/dyncall/dyncall/README.txt +65 -0
  66. data/dyncall/dyncall/TODO +9 -0
  67. data/dyncall/dyncall/dynMakefile +4 -0
  68. data/dyncall/dyncall/dyncall.3 +189 -0
  69. data/dyncall/dyncall/dyncall.h +135 -0
  70. data/dyncall/dyncall/dyncall_alloc.h +40 -0
  71. data/dyncall/dyncall/dyncall_api.c +167 -0
  72. data/dyncall/dyncall/dyncall_call.S +72 -0
  73. data/dyncall/dyncall/dyncall_call_arm32_arm.S +80 -0
  74. data/dyncall/dyncall/dyncall_call_arm32_arm.h +61 -0
  75. data/dyncall/dyncall/dyncall_call_arm32_arm_armhf.S +96 -0
  76. data/dyncall/dyncall/dyncall_call_arm32_arm_armhf.h +44 -0
  77. data/dyncall/dyncall/dyncall_call_arm32_thumb.h +65 -0
  78. data/dyncall/dyncall/dyncall_call_arm32_thumb_apple.s +80 -0
  79. data/dyncall/dyncall/dyncall_call_arm32_thumb_armhf.S +121 -0
  80. data/dyncall/dyncall/dyncall_call_arm32_thumb_gas.s +101 -0
  81. data/dyncall/dyncall/dyncall_call_mips.h +50 -0
  82. data/dyncall/dyncall/dyncall_call_mips_eabi.h +61 -0
  83. data/dyncall/dyncall/dyncall_call_mips_eabi_gas.s +115 -0
  84. data/dyncall/dyncall/dyncall_call_mips_gas.S +36 -0
  85. data/dyncall/dyncall/dyncall_call_mips_n32.h +67 -0
  86. data/dyncall/dyncall/dyncall_call_mips_n32_gas.s +192 -0
  87. data/dyncall/dyncall/dyncall_call_mips_n64.h +67 -0
  88. data/dyncall/dyncall/dyncall_call_mips_n64_gas.s +192 -0
  89. data/dyncall/dyncall/dyncall_call_mips_o32.h +70 -0
  90. data/dyncall/dyncall/dyncall_call_mips_o32_gas.s +109 -0
  91. data/dyncall/dyncall/dyncall_call_ppc32.S +266 -0
  92. data/dyncall/dyncall/dyncall_call_ppc32.h +62 -0
  93. data/dyncall/dyncall/dyncall_call_sparc.S +192 -0
  94. data/dyncall/dyncall/dyncall_call_sparc.h +42 -0
  95. data/dyncall/dyncall/dyncall_call_sparc64.S +361 -0
  96. data/dyncall/dyncall/dyncall_call_sparc64.h +42 -0
  97. data/dyncall/dyncall/dyncall_call_sparc_v9.S +220 -0
  98. data/dyncall/dyncall/dyncall_call_sparc_v9.h +42 -0
  99. data/dyncall/dyncall/dyncall_call_x64-att.S +146 -0
  100. data/dyncall/dyncall/dyncall_call_x64.S +149 -0
  101. data/dyncall/dyncall/dyncall_call_x64.h +63 -0
  102. data/dyncall/dyncall/dyncall_call_x64_generic_masm.asm +70 -0
  103. data/dyncall/dyncall/dyncall_call_x86.S +238 -0
  104. data/dyncall/dyncall/dyncall_call_x86.h +70 -0
  105. data/dyncall/dyncall/dyncall_call_x86_8a.s +127 -0
  106. data/dyncall/dyncall/dyncall_call_x86_generic_masm.asm +136 -0
  107. data/dyncall/dyncall/dyncall_call_x86_nasm.asm +234 -0
  108. data/dyncall/dyncall/dyncall_callf.c +112 -0
  109. data/dyncall/dyncall/dyncall_callf.h +52 -0
  110. data/dyncall/dyncall/dyncall_callvm.c +68 -0
  111. data/dyncall/dyncall/dyncall_callvm.h +88 -0
  112. data/dyncall/dyncall/dyncall_callvm_arm32_arm.c +250 -0
  113. data/dyncall/dyncall/dyncall_callvm_arm32_arm.h +59 -0
  114. data/dyncall/dyncall/dyncall_callvm_arm32_arm_armhf.c +204 -0
  115. data/dyncall/dyncall/dyncall_callvm_arm32_arm_armhf.h +63 -0
  116. data/dyncall/dyncall/dyncall_callvm_arm32_thumb.c +271 -0
  117. data/dyncall/dyncall/dyncall_callvm_arm32_thumb.h +59 -0
  118. data/dyncall/dyncall/dyncall_callvm_base.c +33 -0
  119. data/dyncall/dyncall/dyncall_callvm_mips.c +40 -0
  120. data/dyncall/dyncall/dyncall_callvm_mips.h +37 -0
  121. data/dyncall/dyncall/dyncall_callvm_mips_eabi.c +181 -0
  122. data/dyncall/dyncall/dyncall_callvm_mips_eabi.h +61 -0
  123. data/dyncall/dyncall/dyncall_callvm_mips_n32.c +268 -0
  124. data/dyncall/dyncall/dyncall_callvm_mips_n64.c +268 -0
  125. data/dyncall/dyncall/dyncall_callvm_mips_n64.h +53 -0
  126. data/dyncall/dyncall/dyncall_callvm_mips_o32.c +235 -0
  127. data/dyncall/dyncall/dyncall_callvm_mips_o32.h +45 -0
  128. data/dyncall/dyncall/dyncall_callvm_ppc32.c +372 -0
  129. data/dyncall/dyncall/dyncall_callvm_ppc32.h +61 -0
  130. data/dyncall/dyncall/dyncall_callvm_sparc.c +155 -0
  131. data/dyncall/dyncall/dyncall_callvm_sparc.h +44 -0
  132. data/dyncall/dyncall/dyncall_callvm_sparc64.c +239 -0
  133. data/dyncall/dyncall/dyncall_callvm_sparc64.h +47 -0
  134. data/dyncall/dyncall/dyncall_callvm_sparc_v9.c +182 -0
  135. data/dyncall/dyncall/dyncall_callvm_sparc_v9.h +45 -0
  136. data/dyncall/dyncall/dyncall_callvm_x64.c +228 -0
  137. data/dyncall/dyncall/dyncall_callvm_x64.h +111 -0
  138. data/dyncall/dyncall/dyncall_callvm_x86.c +667 -0
  139. data/dyncall/dyncall/dyncall_callvm_x86.h +75 -0
  140. data/dyncall/dyncall/dyncall_config.h +46 -0
  141. data/dyncall/dyncall/dyncall_macros.h +248 -0
  142. data/dyncall/dyncall/dyncall_signature.h +71 -0
  143. data/dyncall/dyncall/dyncall_struct.c +255 -0
  144. data/dyncall/dyncall/dyncall_struct.h +69 -0
  145. data/dyncall/dyncall/dyncall_types.h +74 -0
  146. data/dyncall/dyncall/dyncall_utils.h +38 -0
  147. data/dyncall/dyncall/dyncall_value.h +73 -0
  148. data/dyncall/dyncall/dyncall_vector.c +52 -0
  149. data/dyncall/dyncall/dyncall_vector.h +56 -0
  150. data/dyncall/dyncall/gen-masm.sh +7 -0
  151. data/dyncall/dyncall/mkfile +29 -0
  152. data/dyncall/dyncallback/CMakeLists.txt +55 -0
  153. data/dyncall/dyncallback/DynCallbackConfig.cmake +2 -0
  154. data/dyncall/dyncallback/Makefile.M +10 -0
  155. data/dyncall/dyncallback/Makefile.embedded +15 -0
  156. data/dyncall/dyncallback/Makefile.generic +20 -0
  157. data/dyncall/dyncallback/Nmakefile +71 -0
  158. data/dyncall/dyncallback/README.txt +9 -0
  159. data/dyncall/dyncallback/TODO +4 -0
  160. data/dyncall/dyncallback/dynMakefile +4 -0
  161. data/dyncall/dyncallback/dyncall_alloc_wx.c +35 -0
  162. data/dyncall/dyncallback/dyncall_alloc_wx.h +46 -0
  163. data/dyncall/dyncallback/dyncall_alloc_wx_malloc.c +40 -0
  164. data/dyncall/dyncallback/dyncall_alloc_wx_mmap.c +42 -0
  165. data/dyncall/dyncallback/dyncall_alloc_wx_win32.c +42 -0
  166. data/dyncall/dyncallback/dyncall_args.c +45 -0
  167. data/dyncall/dyncallback/dyncall_args.h +65 -0
  168. data/dyncall/dyncallback/dyncall_args_arm32_arm.c +112 -0
  169. data/dyncall/dyncallback/dyncall_args_arm32_arm.h +40 -0
  170. data/dyncall/dyncallback/dyncall_args_arm32_thumb.c +29 -0
  171. data/dyncall/dyncallback/dyncall_args_arm32_thumb.h +32 -0
  172. data/dyncall/dyncallback/dyncall_args_mips.c +81 -0
  173. data/dyncall/dyncallback/dyncall_args_mips.h +41 -0
  174. data/dyncall/dyncallback/dyncall_args_ppc32.c +88 -0
  175. data/dyncall/dyncallback/dyncall_args_ppc32.h +41 -0
  176. data/dyncall/dyncallback/dyncall_args_sparc32.c +41 -0
  177. data/dyncall/dyncallback/dyncall_args_sparc32.h +37 -0
  178. data/dyncall/dyncallback/dyncall_args_sparc64.c +41 -0
  179. data/dyncall/dyncallback/dyncall_args_sparc64.h +37 -0
  180. data/dyncall/dyncallback/dyncall_args_x64.c +73 -0
  181. data/dyncall/dyncallback/dyncall_args_x64.h +44 -0
  182. data/dyncall/dyncallback/dyncall_args_x86.c +121 -0
  183. data/dyncall/dyncallback/dyncall_args_x86.h +58 -0
  184. data/dyncall/dyncallback/dyncall_callback.c +45 -0
  185. data/dyncall/dyncallback/dyncall_callback.h +51 -0
  186. data/dyncall/dyncallback/dyncall_callback_arch.S +71 -0
  187. data/dyncall/dyncallback/dyncall_callback_arm32_arm.c +63 -0
  188. data/dyncall/dyncallback/dyncall_callback_arm32_arm.h +45 -0
  189. data/dyncall/dyncallback/dyncall_callback_arm32_arm_apple.s +73 -0
  190. data/dyncall/dyncallback/dyncall_callback_arm32_arm_gas.s +73 -0
  191. data/dyncall/dyncallback/dyncall_callback_arm32_thumb.c +29 -0
  192. data/dyncall/dyncallback/dyncall_callback_arm32_thumb.h +33 -0
  193. data/dyncall/dyncallback/dyncall_callback_arm32_thumb_apple.s +32 -0
  194. data/dyncall/dyncallback/dyncall_callback_arm32_thumb_gas.s +32 -0
  195. data/dyncall/dyncallback/dyncall_callback_mips.c +61 -0
  196. data/dyncall/dyncallback/dyncall_callback_mips.h +42 -0
  197. data/dyncall/dyncallback/dyncall_callback_ppc32.S +33 -0
  198. data/dyncall/dyncallback/dyncall_callback_ppc32.c +60 -0
  199. data/dyncall/dyncallback/dyncall_callback_ppc32.h +43 -0
  200. data/dyncall/dyncallback/dyncall_callback_ppc32_apple.s +180 -0
  201. data/dyncall/dyncallback/dyncall_callback_sparc32.c +57 -0
  202. data/dyncall/dyncallback/dyncall_callback_sparc32.h +43 -0
  203. data/dyncall/dyncallback/dyncall_callback_sparc32.s +30 -0
  204. data/dyncall/dyncallback/dyncall_callback_sparc64.c +57 -0
  205. data/dyncall/dyncallback/dyncall_callback_sparc64.s +30 -0
  206. data/dyncall/dyncallback/dyncall_callback_x64.S +187 -0
  207. data/dyncall/dyncallback/dyncall_callback_x64.c +69 -0
  208. data/dyncall/dyncallback/dyncall_callback_x64.h +44 -0
  209. data/dyncall/dyncallback/dyncall_callback_x64_apple.s +122 -0
  210. data/dyncall/dyncallback/dyncall_callback_x64_gas.s +119 -0
  211. data/dyncall/dyncallback/dyncall_callback_x64_gas_w64.s +102 -0
  212. data/dyncall/dyncallback/dyncall_callback_x64_masm.asm +89 -0
  213. data/dyncall/dyncallback/dyncall_callback_x86.S +115 -0
  214. data/dyncall/dyncallback/dyncall_callback_x86.c +281 -0
  215. data/dyncall/dyncallback/dyncall_callback_x86.h +49 -0
  216. data/dyncall/dyncallback/dyncall_callback_x86_8a.s +100 -0
  217. data/dyncall/dyncallback/dyncall_callback_x86_masm.asm +74 -0
  218. data/dyncall/dyncallback/dyncall_thunk.c +47 -0
  219. data/dyncall/dyncallback/dyncall_thunk.h +84 -0
  220. data/dyncall/dyncallback/dyncall_thunk_arm32_arm.c +45 -0
  221. data/dyncall/dyncallback/dyncall_thunk_arm32_arm.h +40 -0
  222. data/dyncall/dyncallback/dyncall_thunk_arm32_thumb.c +29 -0
  223. data/dyncall/dyncallback/dyncall_thunk_arm32_thumb.h +35 -0
  224. data/dyncall/dyncallback/dyncall_thunk_mips.c +52 -0
  225. data/dyncall/dyncallback/dyncall_thunk_mips.h +37 -0
  226. data/dyncall/dyncallback/dyncall_thunk_ppc32.c +51 -0
  227. data/dyncall/dyncallback/dyncall_thunk_ppc32.h +40 -0
  228. data/dyncall/dyncallback/dyncall_thunk_sparc32.c +32 -0
  229. data/dyncall/dyncallback/dyncall_thunk_sparc32.h +36 -0
  230. data/dyncall/dyncallback/dyncall_thunk_sparc64.c +32 -0
  231. data/dyncall/dyncallback/dyncall_thunk_sparc64.h +36 -0
  232. data/dyncall/dyncallback/dyncall_thunk_x64.c +48 -0
  233. data/dyncall/dyncallback/dyncall_thunk_x64.h +39 -0
  234. data/dyncall/dyncallback/dyncall_thunk_x86.c +44 -0
  235. data/dyncall/dyncallback/dyncall_thunk_x86.h +39 -0
  236. data/dyncall/dyncallback/dyncallback.3 +134 -0
  237. data/dyncall/dyncallback/gen-masm.sh +8 -0
  238. data/dyncall/dyncallback/mkfile +29 -0
  239. data/dyncall/dynload/CMakeLists.txt +25 -0
  240. data/dyncall/dynload/DynLoadConfig.cmake +3 -0
  241. data/dyncall/dynload/Makefile.M +10 -0
  242. data/dyncall/dynload/Makefile.embedded +22 -0
  243. data/dyncall/dynload/Makefile.generic +18 -0
  244. data/dyncall/dynload/Nmakefile +57 -0
  245. data/dyncall/dynload/README.txt +113 -0
  246. data/dyncall/dynload/TODO +20 -0
  247. data/dyncall/dynload/dynMakefile +4 -0
  248. data/dyncall/dynload/dynload.3 +64 -0
  249. data/dyncall/dynload/dynload.c +38 -0
  250. data/dyncall/dynload/dynload.h +65 -0
  251. data/dyncall/dynload/dynload_alloc.h +40 -0
  252. data/dyncall/dynload/dynload_darwin.c +89 -0
  253. data/dyncall/dynload/dynload_syms.c +38 -0
  254. data/dyncall/dynload/dynload_syms_elf.c +214 -0
  255. data/dyncall/dynload/dynload_syms_mach-o.c +167 -0
  256. data/dyncall/dynload/dynload_syms_pe.c +109 -0
  257. data/dyncall/dynload/dynload_unix.c +57 -0
  258. data/dyncall/dynload/dynload_windows.c +59 -0
  259. data/dyncall/mkfile +36 -0
  260. data/dyncall/portasm/README.txt +42 -0
  261. data/dyncall/portasm/gen-masm.sh +3 -0
  262. data/dyncall/portasm/portasm-arm.S +36 -0
  263. data/dyncall/portasm/portasm-ppc.S +98 -0
  264. data/dyncall/portasm/portasm-x64-att.S +155 -0
  265. data/dyncall/portasm/portasm-x86.S +127 -0
  266. metadata +311 -0
data/dyncall/ToDo ADDED
@@ -0,0 +1,114 @@
1
+ 0.8:
2
+ ----
3
+ - Platforms:
4
+ * PSP - build it (Tassilo), test (Daniel)
5
+ - mailing list announcements (html email?)
6
+ - manual (Tas)
7
+ - Website:
8
+ * platform matrix (wie im Handbuch oder Daniels Disse)
9
+ - fix for NDS:
10
+ * ARM:
11
+ - callback_plain retval wrong (not only platform)
12
+ * THUMB:
13
+ - ellipsis (might be test itself, not respecting fixed part of args)
14
+ - retvals of call_suite (maybe all retvals, in general)
15
+ - callback_plain retval
16
+ - callf
17
+
18
+
19
+ build-system:
20
+ -------------
21
+ - cmake mac os x universal binary builds with *.S does not build
22
+ multiple architectures
23
+
24
+ portasm:
25
+ --------
26
+ - add solaris support for x64
27
+
28
+ dyncall:
29
+ --------
30
+ - port ppc64
31
+ - support for return values: aggregate return values
32
+ - support for argument values: structures, half-precision, vector types, long double
33
+ - varargs for mips (might exist, but test all ABIs)
34
+ - consider automatic type-promotion for arguments passed through DC_CALL_C_ELLIPSIS_VARARGS;
35
+ this would make it easier to just pass arguments instead of having to know about the C
36
+ type promotions
37
+ - add dcArgF, so CallF without the call; this would allow to use sig for building stack, only
38
+ and is more flexible; bindings would benefit if statically typed as it decouples call from
39
+ convenient stack building
40
+
41
+ dynload:
42
+ --------
43
+ - bug: test/nm crashes on qemu mips linux o32 debian etch
44
+ - test/resolve_self crashes/asserts on windows and bsds
45
+ - rename SymsInit to InitSyms and similar for cleanup function to reflect naming
46
+ in dyncall
47
+ - get rid of Dl_info and friends (_GNU_SOURCE) in dynload/dynload_syms_elf.c
48
+ for implementation of dlSymsNameFromValue(..)
49
+ - check if PSP can support dynload (missing elf.h, dlfcn.h, etc.); fixup readme if successful
50
+
51
+ dyncallback:
52
+ ------------
53
+ - callback_plain's return value not correct anymore on NDS (maybe just broken testcode?)
54
+ - add MIPS callbacks (thunks seem to be working, but maybe buggy)
55
+ - finish PPC32 callbacks (see bugs section, below)
56
+
57
+ urgent issues:
58
+ --------------
59
+ - finish SPARC/SPARC64 calling conventions in doc's callconv-appendix !!!
60
+ - finish dyncallback doc, finish dynload doc, add both to troff doc
61
+ - Haiku/gmake build doesn't build dynload due to the fact, that elf.h is not found
62
+ on default installations (one has to install the system headers)
63
+ * add to doc
64
+ - Solaris/gmake build doesn't build dynload and tests anymore (maybe not even dyncallback)
65
+ - test arm32/ATPCS/THUMB (and then change Status in doc Appendix)
66
+ - look over code and fix TODO or @@@ marks
67
+ - consider moving bindings into dyncall/ such that releases include it in the future
68
+ * or, alternatively, pack them separately and put them on the website, for releases
69
+ - add note to documentation, that bindings are svn-only ATM
70
+ - add pcc-support to doc
71
+ - rename configure to configure.sh (so we would have .sh, .rc and .bat in the future)
72
+
73
+ nice to have:
74
+ -------------
75
+ - enhance manual with a couple of examples (e.g. calling MessageBoxA on windows, etc.)
76
+ - update: microsoft visual c++ build files - integrate all test suites in solution file
77
+ - maybe rename DC__Arch_PowerPC to ...PPC32 for coherency reasons (...PPC64)?
78
+ - consistency: on x64 platforms: make both ABIs available ('win64','sysv') for all x64 OS ports
79
+ - microsoft build enhancement: autodetect assembly via C preprocessor (like with .S gcc files)
80
+ - test/thunk: some platforms do not allow for allocation of executable code on heap and stack --
81
+ currently this test will crash, maybe we should collect information which platforms allow and which not.
82
+
83
+ bugs:
84
+ -----
85
+ - callbacks on ppc32 only work on apple (osx abi)
86
+ - vararg function calls don't work for ARM THUMB mode (Daniel's new interface for modesetting for varag
87
+ args should be used); adapt test/ellipsis and/or retest
88
+
89
+ missing implementations (descending priority):
90
+ ----------------------------------------------
91
+ - ppc64
92
+ - itanium
93
+ - 68k, 88k, 6502, etc.
94
+ - alpha
95
+ - superh
96
+ - cell
97
+ - blackfin
98
+ - z80
99
+ - hppa
100
+ - vax
101
+ - atmel avr
102
+ - propeller
103
+ - amd29k
104
+ - arc
105
+ - seaforth
106
+
107
+ available hardware for outstanding ports:
108
+ -----------------------------------------
109
+ - 68k: Tassilo's old Palm m100 (MC68EZ328 (16MHz))
110
+ - sh4: Tassilo's Dreamcast
111
+ - mips R5900: Daniel's PS2
112
+ - mips (?): Daniel's router
113
+ - sigmatel stmp3550b: Daniel's iPod Nano
114
+
@@ -0,0 +1,15 @@
1
+ Copyright (c) 2011 Daniel Adler <dadler@uni-goettingen.de>
2
+
3
+ Permission to use, copy, modify, and distribute this software for any
4
+ purpose with or without fee is hereby granted, provided that the above
5
+ copyright notice and this permission notice appear in all copies.
6
+
7
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
10
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
12
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
13
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
14
+
15
+
@@ -0,0 +1,69 @@
1
+ autovar -- a small macro auto-detection library
2
+
3
+
4
+ the following gives the list of variables available.
5
+ for each variable, a separate header file is used.
6
+
7
+ OS: Operating System
8
+ ARCH: Architecture
9
+ CC: C Compiler
10
+ ABI: Application Binary Interface
11
+ OSFAMILY: OS Roots
12
+
13
+
14
+ the following gives the tree of variables
15
+
16
+ OS:
17
+ Win32
18
+ Win64
19
+ Darwin
20
+ IOS
21
+ MacOSX
22
+ Linux
23
+ FreeBSD
24
+ OpenBSD
25
+ NetBSD
26
+ DragonFlyBSD
27
+ SunOS
28
+ Cygwin
29
+ MinGW
30
+ NDS
31
+ PSP
32
+ BeOS
33
+ Plan9
34
+ VMS
35
+ Minix
36
+ Unknown
37
+
38
+ ARCH:
39
+ X86
40
+ X64
41
+ IA64
42
+ PPC
43
+ PPC64
44
+ MIPS64
45
+ MIPS
46
+ ARM
47
+ THUMB
48
+ SH
49
+ SPARC64
50
+ SPARC
51
+
52
+ ABI:
53
+ PE
54
+ Mach
55
+ ELF
56
+ ELF32
57
+ ELF64
58
+
59
+ OSFAMILY:
60
+ Windows
61
+ Unix
62
+
63
+ CC:
64
+ INTEL
65
+ MSVC
66
+ GNU
67
+ WATCOM
68
+ PCC
69
+ SUN
@@ -0,0 +1,44 @@
1
+ /*
2
+
3
+ Package: dyncall
4
+ Library: autovar
5
+ File: autovar/autovar_ABI.h
6
+ Description:
7
+ License:
8
+
9
+ Copyright (c) 2011 Daniel Adler <dadler@uni-goettingen.de>,
10
+ Tassilo Philipp <tphilipp@potion-studios.com>
11
+
12
+ Permission to use, copy, modify, and distribute this software for any
13
+ purpose with or without fee is hereby granted, provided that the above
14
+ copyright notice and this permission notice appear in all copies.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
17
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
18
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
19
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
20
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
21
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
22
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
23
+
24
+ */
25
+ #ifndef AUTOVAR_ABI_H
26
+ #define AUTOVAR_ABI_H
27
+
28
+ #include "autovar_OS.h"
29
+
30
+ #if defined(OS_Win32) || defined(OS_Win64) || defined(OS_Cygwin) || defined(OS_MinGW)
31
+ #define ABI_PE
32
+ #elif defined(OS_Darwin)
33
+ #define ABI_Mach
34
+ #else
35
+ #define ABI_ELF
36
+ # if defined(__LP64__) || defined(_LP64)
37
+ # define ABI_ELF64
38
+ # else
39
+ # define ABI_ELF32
40
+ # endif
41
+ #endif
42
+
43
+ #endif /* AUTOVAR_ABI_H */
44
+
@@ -0,0 +1,56 @@
1
+ /*
2
+
3
+ Package: dyncall
4
+ Library: autovar
5
+ File: autovar/autovar_ARCH.h
6
+ Description:
7
+ License:
8
+
9
+ Copyright (c) 2011 Daniel Adler <dadler@uni-goettingen.de>,
10
+ Tassilo Philipp <tphilipp@potion-studios.com>
11
+
12
+ Permission to use, copy, modify, and distribute this software for any
13
+ purpose with or without fee is hereby granted, provided that the above
14
+ copyright notice and this permission notice appear in all copies.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
17
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
18
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
19
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
20
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
21
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
22
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
23
+
24
+ */
25
+ #ifndef AUTOVAR_ARCH_H
26
+ #define AUTOVAR_ARCH_H
27
+
28
+ /* Check architecture. */
29
+ #if defined(_M_IX86) || defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) || defined(__386__) || defined(__i386)
30
+ # define ARCH_X86
31
+ #elif defined(_M_X64_) || defined(_M_AMD64) || defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64)
32
+ # define ARCH_X64
33
+ #elif defined(_M_IA64) || defined(__ia64__)
34
+ # define ARCH_IA64
35
+ #elif defined(_M_PPC) || defined(__powerpc__) || defined(__powerpc) || defined(__POWERPC__) || defined(__ppc__) || defined(__power__)
36
+ # define ARCH_PPC
37
+ #elif defined(__ppc64__) || defined(_ARCH_PPC64) || defined(__power64__)
38
+ # define ARCH_PPC64
39
+ #elif defined(__mips64__) || defined(__mips64)
40
+ # define ARCH_MIPS64
41
+ #elif defined(_M_MRX000) || defined(__mips__)
42
+ # define ARCH_MIPS
43
+ #elif defined(__arm__)
44
+ # define ARCH_ARM
45
+ # if defined(__thumb__)
46
+ # define ARCH_THUMB
47
+ # endif
48
+ #elif defined(__sh__)
49
+ # define ARCH_SH
50
+ #elif defined(__sparcv9) || ( defined(__sparc) && defined(__arch64__) )
51
+ # define ARCH_SPARC64
52
+ #elif defined(__sparc)
53
+ # define ARCH_SPARC
54
+ #endif
55
+
56
+ #endif /* AUTOVAR_ARCH_H */
@@ -0,0 +1,46 @@
1
+ /*
2
+
3
+ Package: dyncall
4
+ Library: autovar
5
+ File: autovar/autovar_CC.h
6
+ Description:
7
+ License:
8
+
9
+ Copyright (c) 2011 Daniel Adler <dadler@uni-goettingen.de>,
10
+ Tassilo Philipp <tphilipp@potion-studios.com>
11
+
12
+ Permission to use, copy, modify, and distribute this software for any
13
+ purpose with or without fee is hereby granted, provided that the above
14
+ copyright notice and this permission notice appear in all copies.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
17
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
18
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
19
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
20
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
21
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
22
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
23
+
24
+ */
25
+ #ifndef AUTOVAR_CC_H
26
+ #define AUTOVAR_CC_H
27
+
28
+ /* Compiler specific defines. Do not change the order, because */
29
+ /* some of the compilers define flags for compatible ones, too. */
30
+
31
+ #if defined(__INTEL_COMPILER)
32
+ #define CC_INTEL
33
+ #elif defined(_MSC_VER)
34
+ #define CC_MSVC
35
+ #elif defined(__GNUC__)
36
+ #define CC_GNU
37
+ #elif defined(__WATCOMC__)
38
+ #define CC_WATCOM
39
+ #elif defined(__PCC__)
40
+ #define CC_PCC
41
+ #elif defined(__SUNPRO_C)
42
+ #define CC_SUN
43
+ #endif
44
+
45
+ #endif /* AUTOVAR_CC_H */
46
+
@@ -0,0 +1,78 @@
1
+ /*
2
+
3
+ Package: dyncall
4
+ Library: autovar
5
+ File: autovar/autovar_OS.h
6
+ Description:
7
+ License:
8
+
9
+ Copyright (c) 2011 Daniel Adler <dadler@uni-goettingen.de>,
10
+ Tassilo Philipp <tphilipp@potion-studios.com>
11
+
12
+ Permission to use, copy, modify, and distribute this software for any
13
+ purpose with or without fee is hereby granted, provided that the above
14
+ copyright notice and this permission notice appear in all copies.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
17
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
18
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
19
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
20
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
21
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
22
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
23
+
24
+ */
25
+ #ifndef AUTOVAR_OS_H
26
+ #define AUTOVAR_OS_H
27
+
28
+ #if defined(WIN64) || defined(_WIN64) || defined(__WIN64__)
29
+ # define OS_Win64
30
+ #elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__) || defined(__WINDOWS__) || defined(_WINDOWS)
31
+ # define OS_Win32
32
+ #elif defined(__APPLE__) || defined(__Darwin__)
33
+ # define OS_Darwin
34
+ # if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__)
35
+ # define OS_IOS
36
+ # else /* defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) */
37
+ # define OS_MacOSX
38
+ # endif
39
+ #elif defined(__linux__) || defined(__linux) || defined(__gnu_linux__)
40
+ # define OS_Linux
41
+ #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
42
+ # define OS_FreeBSD
43
+ #elif defined(__OpenBSD__)
44
+ # define OS_OpenBSD
45
+ #elif defined(__NetBSD__)
46
+ # define OS_NetBSD
47
+ #elif defined(__DragonFly__)
48
+ # define OS_DragonFlyBSD
49
+ #elif defined(__sun__) || defined(__sun) || defined(sun)
50
+ # define OS_SunOS
51
+ #elif defined(__CYGWIN__)
52
+ # define OS_Cygwin
53
+ #elif defined(__MINGW__)
54
+ # define OS_MinGW
55
+ #elif defined(__nds__)
56
+ # define OS_NDS
57
+ #elif defined(__psp__) || defined(PSP)
58
+ # define OS_PSP
59
+ #elif defined(__HAIKU__) || defined(__BEOS__)
60
+ # define OS_BeOS
61
+ #elif defined(Plan9) || defined(__Plan9__)
62
+ # define OS_Plan9
63
+ #elif defined(__vms)
64
+ # define OS_VMS
65
+ #elif defined(__minix)
66
+ # define OS_Minix
67
+ #else
68
+ # define OS_Unknown
69
+ #endif
70
+
71
+ /** Platforms. */
72
+
73
+ #if defined(__ANDROID__)
74
+ # define OS_Android
75
+ #endif
76
+
77
+ #endif /* AUTOVAR_OS */
78
+
@@ -0,0 +1,39 @@
1
+ /*
2
+
3
+ Package: dyncall
4
+ Library: autovar
5
+ File: autovar/autovar_OSFAMILY.h
6
+ Description:
7
+ License:
8
+
9
+ Copyright (c) 2011 Daniel Adler <dadler@uni-goettingen.de>,
10
+ Tassilo Philipp <tphilipp@potion-studios.com>
11
+
12
+ Permission to use, copy, modify, and distribute this software for any
13
+ purpose with or without fee is hereby granted, provided that the above
14
+ copyright notice and this permission notice appear in all copies.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
17
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
18
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
19
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
20
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
21
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
22
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
23
+
24
+ */
25
+ #ifndef AUTOVAR_OSFAMILY_H
26
+ #define AUTOVAR_OSFAMILY_H
27
+
28
+ #include "autovar_OS.h"
29
+
30
+ #if defined(OS_Win32) || defined(OS_Win64)
31
+ #define OSFAMILY_Windows
32
+ #elif defined(OS_NDS) || defined(OS_PSP)
33
+ #define OSFAMILY_GameConsole
34
+ #else
35
+ #define OSFAMILY_Unix
36
+ #endif
37
+
38
+ #endif /* AUTOVAR_OSFAMILY_H */
39
+