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.
- data/bindings/ruby/rbdc/extconf.rb +57 -0
- data/bindings/ruby/rbdc/rbdc.c +304 -0
- data/dyncall/AUTHORS +4 -0
- data/dyncall/BUGS +3 -0
- data/dyncall/CMakeLists.txt +79 -0
- data/dyncall/ChangeLog +165 -0
- data/dyncall/LICENSE +15 -0
- data/dyncall/Makefile.M +15 -0
- data/dyncall/Makefile.embedded +71 -0
- data/dyncall/Makefile.generic +36 -0
- data/dyncall/Nmakefile +45 -0
- data/dyncall/README +92 -0
- data/dyncall/ToDo +114 -0
- data/dyncall/autovar/LICENSE.txt +15 -0
- data/dyncall/autovar/README.txt +69 -0
- data/dyncall/autovar/autovar_ABI.h +44 -0
- data/dyncall/autovar/autovar_ARCH.h +56 -0
- data/dyncall/autovar/autovar_CC.h +46 -0
- data/dyncall/autovar/autovar_OS.h +78 -0
- data/dyncall/autovar/autovar_OSFAMILY.h +39 -0
- data/dyncall/buildsys/cmake/Modules/FindDynCall.cmake +43 -0
- data/dyncall/buildsys/cmake/Modules/FindDynCallback.cmake +43 -0
- data/dyncall/buildsys/cmake/Modules/FindDynLoad.cmake +45 -0
- data/dyncall/buildsys/cmake/Modules/UseLATEX.cmake +811 -0
- data/dyncall/buildsys/dynmake/Makefile.base.M +82 -0
- data/dyncall/buildsys/dynmake/dynmake.bat +2 -0
- data/dyncall/buildsys/dynmake/dynmake.sh +4 -0
- data/dyncall/buildsys/lua/Makefile +10 -0
- data/dyncall/buildsys/lua/README.txt +4 -0
- data/dyncall/buildsys/lua/bootstrap.sh +34 -0
- data/dyncall/buildsys/lua/cleanup.sh +6 -0
- data/dyncall/buildsys/lua/mkfile +34 -0
- data/dyncall/buildsys/lua/setenv.sh +4 -0
- data/dyncall/buildsys/mk/app.mk +30 -0
- data/dyncall/buildsys/mk/dirs.mk +27 -0
- data/dyncall/buildsys/mk/epilog.mk +30 -0
- data/dyncall/buildsys/mk/lib.mk +23 -0
- data/dyncall/buildsys/mk/pcc.mk +60 -0
- data/dyncall/buildsys/mk/prolog.mk +35 -0
- data/dyncall/buildsys/nmake/common.nmake +61 -0
- data/dyncall/buildsys/nmake/epilog.nmake +28 -0
- data/dyncall/buildsys/nmake/prolog.nmake +76 -0
- data/dyncall/buildsys/nmake/tool_gcc.nmake +82 -0
- data/dyncall/buildsys/nmake/tool_msvc.nmake +67 -0
- data/dyncall/buildsys/scripts/batch-build-linux.sh +11 -0
- data/dyncall/buildsys/scripts/batch-build-minix.sh +11 -0
- data/dyncall/buildsys/scripts/batch-build-psp.sh +11 -0
- data/dyncall/buildsys/scripts/conf-nds.bat +41 -0
- data/dyncall/buildsys/scripts/setenv-cross-ios.sh +8 -0
- data/dyncall/buildsys/scripts/setenv-sdk-ios.sh +22 -0
- data/dyncall/buildsys/vs2005/dyncall/dyncall.vcproj +245 -0
- data/dyncall/buildsys/vs2005/test_plain/test_plain.vcproj +202 -0
- data/dyncall/buildsys/vs2005/vs2005.sln +29 -0
- data/dyncall/configure +152 -0
- data/dyncall/configure.bat +157 -0
- data/dyncall/configure.rc +234 -0
- data/dyncall/dynMakefile +4 -0
- data/dyncall/dyncall/CMakeLists.txt +53 -0
- data/dyncall/dyncall/DynCallConfig.cmake +3 -0
- data/dyncall/dyncall/Makefile.M +10 -0
- data/dyncall/dyncall/Makefile.embedded +20 -0
- data/dyncall/dyncall/Makefile.generic +16 -0
- data/dyncall/dyncall/Nmakefile +62 -0
- data/dyncall/dyncall/README-Developer.txt +45 -0
- data/dyncall/dyncall/README.txt +65 -0
- data/dyncall/dyncall/TODO +9 -0
- data/dyncall/dyncall/dynMakefile +4 -0
- data/dyncall/dyncall/dyncall.3 +189 -0
- data/dyncall/dyncall/dyncall.h +135 -0
- data/dyncall/dyncall/dyncall_alloc.h +40 -0
- data/dyncall/dyncall/dyncall_api.c +167 -0
- data/dyncall/dyncall/dyncall_call.S +72 -0
- data/dyncall/dyncall/dyncall_call_arm32_arm.S +80 -0
- data/dyncall/dyncall/dyncall_call_arm32_arm.h +61 -0
- data/dyncall/dyncall/dyncall_call_arm32_arm_armhf.S +96 -0
- data/dyncall/dyncall/dyncall_call_arm32_arm_armhf.h +44 -0
- data/dyncall/dyncall/dyncall_call_arm32_thumb.h +65 -0
- data/dyncall/dyncall/dyncall_call_arm32_thumb_apple.s +80 -0
- data/dyncall/dyncall/dyncall_call_arm32_thumb_armhf.S +121 -0
- data/dyncall/dyncall/dyncall_call_arm32_thumb_gas.s +101 -0
- data/dyncall/dyncall/dyncall_call_mips.h +50 -0
- data/dyncall/dyncall/dyncall_call_mips_eabi.h +61 -0
- data/dyncall/dyncall/dyncall_call_mips_eabi_gas.s +115 -0
- data/dyncall/dyncall/dyncall_call_mips_gas.S +36 -0
- data/dyncall/dyncall/dyncall_call_mips_n32.h +67 -0
- data/dyncall/dyncall/dyncall_call_mips_n32_gas.s +192 -0
- data/dyncall/dyncall/dyncall_call_mips_n64.h +67 -0
- data/dyncall/dyncall/dyncall_call_mips_n64_gas.s +192 -0
- data/dyncall/dyncall/dyncall_call_mips_o32.h +70 -0
- data/dyncall/dyncall/dyncall_call_mips_o32_gas.s +109 -0
- data/dyncall/dyncall/dyncall_call_ppc32.S +266 -0
- data/dyncall/dyncall/dyncall_call_ppc32.h +62 -0
- data/dyncall/dyncall/dyncall_call_sparc.S +192 -0
- data/dyncall/dyncall/dyncall_call_sparc.h +42 -0
- data/dyncall/dyncall/dyncall_call_sparc64.S +361 -0
- data/dyncall/dyncall/dyncall_call_sparc64.h +42 -0
- data/dyncall/dyncall/dyncall_call_sparc_v9.S +220 -0
- data/dyncall/dyncall/dyncall_call_sparc_v9.h +42 -0
- data/dyncall/dyncall/dyncall_call_x64-att.S +146 -0
- data/dyncall/dyncall/dyncall_call_x64.S +149 -0
- data/dyncall/dyncall/dyncall_call_x64.h +63 -0
- data/dyncall/dyncall/dyncall_call_x64_generic_masm.asm +70 -0
- data/dyncall/dyncall/dyncall_call_x86.S +238 -0
- data/dyncall/dyncall/dyncall_call_x86.h +70 -0
- data/dyncall/dyncall/dyncall_call_x86_8a.s +127 -0
- data/dyncall/dyncall/dyncall_call_x86_generic_masm.asm +136 -0
- data/dyncall/dyncall/dyncall_call_x86_nasm.asm +234 -0
- data/dyncall/dyncall/dyncall_callf.c +112 -0
- data/dyncall/dyncall/dyncall_callf.h +52 -0
- data/dyncall/dyncall/dyncall_callvm.c +68 -0
- data/dyncall/dyncall/dyncall_callvm.h +88 -0
- data/dyncall/dyncall/dyncall_callvm_arm32_arm.c +250 -0
- data/dyncall/dyncall/dyncall_callvm_arm32_arm.h +59 -0
- data/dyncall/dyncall/dyncall_callvm_arm32_arm_armhf.c +204 -0
- data/dyncall/dyncall/dyncall_callvm_arm32_arm_armhf.h +63 -0
- data/dyncall/dyncall/dyncall_callvm_arm32_thumb.c +271 -0
- data/dyncall/dyncall/dyncall_callvm_arm32_thumb.h +59 -0
- data/dyncall/dyncall/dyncall_callvm_base.c +33 -0
- data/dyncall/dyncall/dyncall_callvm_mips.c +40 -0
- data/dyncall/dyncall/dyncall_callvm_mips.h +37 -0
- data/dyncall/dyncall/dyncall_callvm_mips_eabi.c +181 -0
- data/dyncall/dyncall/dyncall_callvm_mips_eabi.h +61 -0
- data/dyncall/dyncall/dyncall_callvm_mips_n32.c +268 -0
- data/dyncall/dyncall/dyncall_callvm_mips_n64.c +268 -0
- data/dyncall/dyncall/dyncall_callvm_mips_n64.h +53 -0
- data/dyncall/dyncall/dyncall_callvm_mips_o32.c +235 -0
- data/dyncall/dyncall/dyncall_callvm_mips_o32.h +45 -0
- data/dyncall/dyncall/dyncall_callvm_ppc32.c +372 -0
- data/dyncall/dyncall/dyncall_callvm_ppc32.h +61 -0
- data/dyncall/dyncall/dyncall_callvm_sparc.c +155 -0
- data/dyncall/dyncall/dyncall_callvm_sparc.h +44 -0
- data/dyncall/dyncall/dyncall_callvm_sparc64.c +239 -0
- data/dyncall/dyncall/dyncall_callvm_sparc64.h +47 -0
- data/dyncall/dyncall/dyncall_callvm_sparc_v9.c +182 -0
- data/dyncall/dyncall/dyncall_callvm_sparc_v9.h +45 -0
- data/dyncall/dyncall/dyncall_callvm_x64.c +228 -0
- data/dyncall/dyncall/dyncall_callvm_x64.h +111 -0
- data/dyncall/dyncall/dyncall_callvm_x86.c +667 -0
- data/dyncall/dyncall/dyncall_callvm_x86.h +75 -0
- data/dyncall/dyncall/dyncall_config.h +46 -0
- data/dyncall/dyncall/dyncall_macros.h +248 -0
- data/dyncall/dyncall/dyncall_signature.h +71 -0
- data/dyncall/dyncall/dyncall_struct.c +255 -0
- data/dyncall/dyncall/dyncall_struct.h +69 -0
- data/dyncall/dyncall/dyncall_types.h +74 -0
- data/dyncall/dyncall/dyncall_utils.h +38 -0
- data/dyncall/dyncall/dyncall_value.h +73 -0
- data/dyncall/dyncall/dyncall_vector.c +52 -0
- data/dyncall/dyncall/dyncall_vector.h +56 -0
- data/dyncall/dyncall/gen-masm.sh +7 -0
- data/dyncall/dyncall/mkfile +29 -0
- data/dyncall/dyncallback/CMakeLists.txt +55 -0
- data/dyncall/dyncallback/DynCallbackConfig.cmake +2 -0
- data/dyncall/dyncallback/Makefile.M +10 -0
- data/dyncall/dyncallback/Makefile.embedded +15 -0
- data/dyncall/dyncallback/Makefile.generic +20 -0
- data/dyncall/dyncallback/Nmakefile +71 -0
- data/dyncall/dyncallback/README.txt +9 -0
- data/dyncall/dyncallback/TODO +4 -0
- data/dyncall/dyncallback/dynMakefile +4 -0
- data/dyncall/dyncallback/dyncall_alloc_wx.c +35 -0
- data/dyncall/dyncallback/dyncall_alloc_wx.h +46 -0
- data/dyncall/dyncallback/dyncall_alloc_wx_malloc.c +40 -0
- data/dyncall/dyncallback/dyncall_alloc_wx_mmap.c +42 -0
- data/dyncall/dyncallback/dyncall_alloc_wx_win32.c +42 -0
- data/dyncall/dyncallback/dyncall_args.c +45 -0
- data/dyncall/dyncallback/dyncall_args.h +65 -0
- data/dyncall/dyncallback/dyncall_args_arm32_arm.c +112 -0
- data/dyncall/dyncallback/dyncall_args_arm32_arm.h +40 -0
- data/dyncall/dyncallback/dyncall_args_arm32_thumb.c +29 -0
- data/dyncall/dyncallback/dyncall_args_arm32_thumb.h +32 -0
- data/dyncall/dyncallback/dyncall_args_mips.c +81 -0
- data/dyncall/dyncallback/dyncall_args_mips.h +41 -0
- data/dyncall/dyncallback/dyncall_args_ppc32.c +88 -0
- data/dyncall/dyncallback/dyncall_args_ppc32.h +41 -0
- data/dyncall/dyncallback/dyncall_args_sparc32.c +41 -0
- data/dyncall/dyncallback/dyncall_args_sparc32.h +37 -0
- data/dyncall/dyncallback/dyncall_args_sparc64.c +41 -0
- data/dyncall/dyncallback/dyncall_args_sparc64.h +37 -0
- data/dyncall/dyncallback/dyncall_args_x64.c +73 -0
- data/dyncall/dyncallback/dyncall_args_x64.h +44 -0
- data/dyncall/dyncallback/dyncall_args_x86.c +121 -0
- data/dyncall/dyncallback/dyncall_args_x86.h +58 -0
- data/dyncall/dyncallback/dyncall_callback.c +45 -0
- data/dyncall/dyncallback/dyncall_callback.h +51 -0
- data/dyncall/dyncallback/dyncall_callback_arch.S +71 -0
- data/dyncall/dyncallback/dyncall_callback_arm32_arm.c +63 -0
- data/dyncall/dyncallback/dyncall_callback_arm32_arm.h +45 -0
- data/dyncall/dyncallback/dyncall_callback_arm32_arm_apple.s +73 -0
- data/dyncall/dyncallback/dyncall_callback_arm32_arm_gas.s +73 -0
- data/dyncall/dyncallback/dyncall_callback_arm32_thumb.c +29 -0
- data/dyncall/dyncallback/dyncall_callback_arm32_thumb.h +33 -0
- data/dyncall/dyncallback/dyncall_callback_arm32_thumb_apple.s +32 -0
- data/dyncall/dyncallback/dyncall_callback_arm32_thumb_gas.s +32 -0
- data/dyncall/dyncallback/dyncall_callback_mips.c +61 -0
- data/dyncall/dyncallback/dyncall_callback_mips.h +42 -0
- data/dyncall/dyncallback/dyncall_callback_ppc32.S +33 -0
- data/dyncall/dyncallback/dyncall_callback_ppc32.c +60 -0
- data/dyncall/dyncallback/dyncall_callback_ppc32.h +43 -0
- data/dyncall/dyncallback/dyncall_callback_ppc32_apple.s +180 -0
- data/dyncall/dyncallback/dyncall_callback_sparc32.c +57 -0
- data/dyncall/dyncallback/dyncall_callback_sparc32.h +43 -0
- data/dyncall/dyncallback/dyncall_callback_sparc32.s +30 -0
- data/dyncall/dyncallback/dyncall_callback_sparc64.c +57 -0
- data/dyncall/dyncallback/dyncall_callback_sparc64.s +30 -0
- data/dyncall/dyncallback/dyncall_callback_x64.S +187 -0
- data/dyncall/dyncallback/dyncall_callback_x64.c +69 -0
- data/dyncall/dyncallback/dyncall_callback_x64.h +44 -0
- data/dyncall/dyncallback/dyncall_callback_x64_apple.s +122 -0
- data/dyncall/dyncallback/dyncall_callback_x64_gas.s +119 -0
- data/dyncall/dyncallback/dyncall_callback_x64_gas_w64.s +102 -0
- data/dyncall/dyncallback/dyncall_callback_x64_masm.asm +89 -0
- data/dyncall/dyncallback/dyncall_callback_x86.S +115 -0
- data/dyncall/dyncallback/dyncall_callback_x86.c +281 -0
- data/dyncall/dyncallback/dyncall_callback_x86.h +49 -0
- data/dyncall/dyncallback/dyncall_callback_x86_8a.s +100 -0
- data/dyncall/dyncallback/dyncall_callback_x86_masm.asm +74 -0
- data/dyncall/dyncallback/dyncall_thunk.c +47 -0
- data/dyncall/dyncallback/dyncall_thunk.h +84 -0
- data/dyncall/dyncallback/dyncall_thunk_arm32_arm.c +45 -0
- data/dyncall/dyncallback/dyncall_thunk_arm32_arm.h +40 -0
- data/dyncall/dyncallback/dyncall_thunk_arm32_thumb.c +29 -0
- data/dyncall/dyncallback/dyncall_thunk_arm32_thumb.h +35 -0
- data/dyncall/dyncallback/dyncall_thunk_mips.c +52 -0
- data/dyncall/dyncallback/dyncall_thunk_mips.h +37 -0
- data/dyncall/dyncallback/dyncall_thunk_ppc32.c +51 -0
- data/dyncall/dyncallback/dyncall_thunk_ppc32.h +40 -0
- data/dyncall/dyncallback/dyncall_thunk_sparc32.c +32 -0
- data/dyncall/dyncallback/dyncall_thunk_sparc32.h +36 -0
- data/dyncall/dyncallback/dyncall_thunk_sparc64.c +32 -0
- data/dyncall/dyncallback/dyncall_thunk_sparc64.h +36 -0
- data/dyncall/dyncallback/dyncall_thunk_x64.c +48 -0
- data/dyncall/dyncallback/dyncall_thunk_x64.h +39 -0
- data/dyncall/dyncallback/dyncall_thunk_x86.c +44 -0
- data/dyncall/dyncallback/dyncall_thunk_x86.h +39 -0
- data/dyncall/dyncallback/dyncallback.3 +134 -0
- data/dyncall/dyncallback/gen-masm.sh +8 -0
- data/dyncall/dyncallback/mkfile +29 -0
- data/dyncall/dynload/CMakeLists.txt +25 -0
- data/dyncall/dynload/DynLoadConfig.cmake +3 -0
- data/dyncall/dynload/Makefile.M +10 -0
- data/dyncall/dynload/Makefile.embedded +22 -0
- data/dyncall/dynload/Makefile.generic +18 -0
- data/dyncall/dynload/Nmakefile +57 -0
- data/dyncall/dynload/README.txt +113 -0
- data/dyncall/dynload/TODO +20 -0
- data/dyncall/dynload/dynMakefile +4 -0
- data/dyncall/dynload/dynload.3 +64 -0
- data/dyncall/dynload/dynload.c +38 -0
- data/dyncall/dynload/dynload.h +65 -0
- data/dyncall/dynload/dynload_alloc.h +40 -0
- data/dyncall/dynload/dynload_darwin.c +89 -0
- data/dyncall/dynload/dynload_syms.c +38 -0
- data/dyncall/dynload/dynload_syms_elf.c +214 -0
- data/dyncall/dynload/dynload_syms_mach-o.c +167 -0
- data/dyncall/dynload/dynload_syms_pe.c +109 -0
- data/dyncall/dynload/dynload_unix.c +57 -0
- data/dyncall/dynload/dynload_windows.c +59 -0
- data/dyncall/mkfile +36 -0
- data/dyncall/portasm/README.txt +42 -0
- data/dyncall/portasm/gen-masm.sh +3 -0
- data/dyncall/portasm/portasm-arm.S +36 -0
- data/dyncall/portasm/portasm-ppc.S +98 -0
- data/dyncall/portasm/portasm-x64-att.S +155 -0
- data/dyncall/portasm/portasm-x86.S +127 -0
- 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
|
+
|