rbdc 0.8.7 → 0.9.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.
- checksums.yaml +7 -0
- data/{bindings → dyncall-bindings}/ruby/rbdc/extconf.rb +1 -1
- data/{bindings → dyncall-bindings}/ruby/rbdc/rbdc.c +3 -1
- data/dyncall/AUTHORS +2 -0
- data/dyncall/BUGS +1 -0
- data/dyncall/CMakeLists.txt +10 -2
- data/dyncall/ChangeLog +46 -11
- data/dyncall/LICENSE +4 -1
- data/dyncall/Makefile.embedded +7 -3
- data/dyncall/README +23 -14
- data/dyncall/ToDo +27 -28
- data/dyncall/autovar/autovar_ABI.h +3 -2
- data/dyncall/autovar/autovar_ARCH.h +13 -10
- data/dyncall/autovar/autovar_CC.h +3 -2
- data/dyncall/autovar/autovar_OS.h +3 -2
- data/dyncall/autovar/autovar_OSFAMILY.h +3 -2
- data/dyncall/buildsys/scripts/batch-build-linux.sh +6 -2
- data/dyncall/buildsys/scripts/batch-build-minix.sh +2 -0
- data/dyncall/buildsys/scripts/batch-build-psp.sh +4 -1
- data/dyncall/buildsys/scripts/elf-to-psp-eboot.sh +19 -0
- data/dyncall/buildsys/scripts/setenv-cross-ios.sh +0 -0
- data/dyncall/buildsys/scripts/setenv-sdk-ios.sh +0 -0
- data/dyncall/configure +83 -30
- data/dyncall/dyncall/dyncall.3 +16 -4
- data/dyncall/dyncall/dyncall.h +9 -1
- data/dyncall/dyncall/dyncall_alloc.h +2 -1
- data/dyncall/dyncall/dyncall_api.c +2 -1
- data/dyncall/dyncall/dyncall_call.S +9 -2
- data/dyncall/dyncall/dyncall_call_arm32_arm.S +2 -1
- data/dyncall/dyncall/dyncall_call_arm32_arm.h +8 -2
- data/dyncall/dyncall/dyncall_call_arm32_arm_armhf.S +11 -19
- data/dyncall/dyncall/dyncall_call_arm32_arm_armhf.h +15 -2
- data/dyncall/dyncall/dyncall_call_arm32_thumb.h +8 -6
- data/dyncall/dyncall/dyncall_call_arm32_thumb_armhf.S +10 -18
- data/dyncall/dyncall/dyncall_call_arm32_thumb_gas.s +0 -16
- data/dyncall/dyncall/dyncall_call_arm64.S +226 -0
- data/dyncall/dyncall/dyncall_call_arm64.h +45 -0
- data/dyncall/dyncall/dyncall_call_mips.h +2 -1
- data/dyncall/dyncall/dyncall_call_mips_eabi.h +2 -1
- data/dyncall/dyncall/dyncall_call_mips_gas.S +2 -1
- data/dyncall/dyncall/dyncall_call_mips_n32.h +2 -1
- data/dyncall/dyncall/dyncall_call_mips_n64.h +2 -1
- data/dyncall/dyncall/dyncall_call_mips_o32.h +2 -1
- data/dyncall/dyncall/dyncall_call_ppc32.S +27 -2
- data/dyncall/dyncall/dyncall_call_ppc32.h +2 -2
- data/dyncall/dyncall/dyncall_call_ppc64.S +210 -0
- data/dyncall/dyncall/dyncall_call_ppc64.h +55 -0
- data/dyncall/dyncall/dyncall_call_sparc.S +2 -1
- data/dyncall/dyncall/dyncall_call_sparc.h +2 -1
- data/dyncall/dyncall/dyncall_call_sparc64.S +2 -1
- data/dyncall/dyncall/dyncall_call_sparc64.h +2 -1
- data/dyncall/dyncall/dyncall_call_sparc_v9.S +25 -23
- data/dyncall/dyncall/dyncall_call_sparc_v9.h +2 -1
- data/dyncall/dyncall/dyncall_call_x64-att.S +2 -1
- data/dyncall/dyncall/dyncall_call_x64.S +2 -1
- data/dyncall/dyncall/dyncall_call_x64.h +2 -1
- data/dyncall/dyncall/dyncall_call_x86.S +2 -1
- data/dyncall/dyncall/dyncall_call_x86.h +2 -1
- data/dyncall/dyncall/dyncall_callf.c +56 -66
- data/dyncall/dyncall/dyncall_callf.h +5 -1
- data/dyncall/dyncall/dyncall_callvm.c +11 -2
- data/dyncall/dyncall/dyncall_callvm.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_arm32_arm.c +2 -1
- data/dyncall/dyncall/dyncall_callvm_arm32_arm.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_arm32_arm_armhf.c +60 -30
- data/dyncall/dyncall/dyncall_callvm_arm32_arm_armhf.h +3 -2
- data/dyncall/dyncall/dyncall_callvm_arm32_thumb.c +2 -24
- data/dyncall/dyncall/dyncall_callvm_arm32_thumb.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_arm64.c +165 -0
- data/dyncall/dyncall/dyncall_callvm_arm64.h +51 -0
- data/dyncall/dyncall/dyncall_callvm_arm64_apple.c +272 -0
- data/dyncall/dyncall/dyncall_callvm_base.c +2 -1
- data/dyncall/dyncall/dyncall_callvm_mips.c +2 -1
- data/dyncall/dyncall/dyncall_callvm_mips.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_mips_eabi.c +2 -1
- data/dyncall/dyncall/dyncall_callvm_mips_eabi.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_mips_n32.c +2 -1
- data/dyncall/dyncall/dyncall_callvm_mips_n64.c +2 -1
- data/dyncall/dyncall/dyncall_callvm_mips_n64.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_mips_o32.c +2 -1
- data/dyncall/dyncall/dyncall_callvm_mips_o32.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_ppc32.c +45 -2
- data/dyncall/dyncall/dyncall_callvm_ppc32.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_ppc64.c +351 -0
- data/dyncall/dyncall/dyncall_callvm_ppc64.h +60 -0
- data/dyncall/dyncall/dyncall_callvm_sparc.c +2 -1
- data/dyncall/dyncall/dyncall_callvm_sparc.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_sparc64.c +2 -2
- data/dyncall/dyncall/dyncall_callvm_sparc64.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_sparc_v9.c +3 -3
- data/dyncall/dyncall/dyncall_callvm_sparc_v9.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_x64.c +2 -1
- data/dyncall/dyncall/dyncall_callvm_x64.h +2 -1
- data/dyncall/dyncall/dyncall_callvm_x86.c +2 -1
- data/dyncall/dyncall/dyncall_callvm_x86.h +2 -1
- data/dyncall/dyncall/dyncall_config.h +2 -1
- data/dyncall/dyncall/dyncall_macros.h +46 -9
- data/dyncall/dyncall/dyncall_signature.h +2 -1
- data/dyncall/dyncall/dyncall_struct.c +2 -1
- data/dyncall/dyncall/dyncall_struct.h +2 -1
- data/dyncall/dyncall/dyncall_types.h +2 -1
- data/dyncall/dyncall/dyncall_utils.h +2 -1
- data/dyncall/dyncall/dyncall_value.h +19 -1
- data/dyncall/dyncall/dyncall_vector.c +2 -1
- data/dyncall/dyncall/dyncall_vector.h +3 -1
- data/dyncall/dyncall/gen-masm.sh +0 -0
- data/dyncall/dyncallback/Makefile.generic +1 -1
- data/dyncall/dyncallback/dyncall_alloc_wx.c +2 -1
- data/dyncall/dyncallback/dyncall_alloc_wx.h +2 -1
- data/dyncall/dyncallback/dyncall_alloc_wx_malloc.c +2 -1
- data/dyncall/dyncallback/dyncall_alloc_wx_mmap.c +2 -1
- data/dyncall/dyncallback/dyncall_alloc_wx_win32.c +2 -1
- data/dyncall/dyncallback/dyncall_args.c +22 -10
- data/dyncall/dyncallback/dyncall_args.h +2 -1
- data/dyncall/dyncallback/dyncall_args_arm32_arm.c +35 -4
- data/dyncall/dyncallback/dyncall_args_arm32_arm.h +7 -1
- data/dyncall/dyncallback/dyncall_args_arm32_thumb.c +2 -1
- data/dyncall/dyncallback/dyncall_args_arm32_thumb.h +2 -1
- data/dyncall/dyncallback/dyncall_args_arm64.c +77 -0
- data/dyncall/dyncallback/dyncall_args_arm64_apple.c +160 -0
- data/dyncall/dyncallback/dyncall_args_mips.c +3 -2
- data/dyncall/dyncallback/dyncall_args_mips.h +3 -2
- data/dyncall/dyncallback/dyncall_args_ppc32.c +2 -1
- data/dyncall/dyncallback/dyncall_args_ppc32.h +9 -7
- data/dyncall/dyncallback/dyncall_args_ppc32_sysv.c +95 -0
- data/dyncall/dyncallback/dyncall_args_ppc64.c +71 -0
- data/dyncall/dyncallback/dyncall_args_ppc64.h +40 -0
- data/dyncall/dyncallback/dyncall_args_sparc32.c +2 -1
- data/dyncall/dyncallback/dyncall_args_sparc32.h +2 -1
- data/dyncall/dyncallback/dyncall_args_sparc64.c +2 -1
- data/dyncall/dyncallback/dyncall_args_sparc64.h +2 -1
- data/dyncall/dyncallback/dyncall_args_x64.c +2 -1
- data/dyncall/dyncallback/dyncall_args_x64.h +2 -1
- data/dyncall/dyncallback/dyncall_args_x86.c +2 -1
- data/dyncall/dyncallback/dyncall_args_x86.h +2 -1
- data/dyncall/dyncallback/dyncall_callback.c +7 -2
- data/dyncall/dyncallback/dyncall_callback.h +3 -1
- data/dyncall/dyncallback/dyncall_callback_arch.S +14 -6
- data/dyncall/dyncallback/dyncall_callback_arm32_arm.c +2 -1
- data/dyncall/dyncallback/dyncall_callback_arm32_arm.h +2 -1
- data/dyncall/dyncallback/dyncall_callback_arm32_arm_apple.s +1 -1
- data/dyncall/dyncallback/{dyncall_callback_arm32_arm_gas.s → dyncall_callback_arm32_arm_gas.S} +17 -7
- data/dyncall/dyncallback/dyncall_callback_arm32_thumb.c +2 -1
- data/dyncall/dyncallback/dyncall_callback_arm32_thumb.h +2 -1
- data/dyncall/dyncallback/{dyncall_callback_arm32_thumb_apple.s → dyncall_callback_arm32_thumb_apple.S} +2 -2
- data/dyncall/dyncallback/{dyncall_callback_arm32_thumb_gas.s → dyncall_callback_arm32_thumb_gas.S} +2 -2
- data/dyncall/dyncallback/dyncall_callback_arm64.S +111 -0
- data/dyncall/dyncallback/dyncall_callback_arm64.c +71 -0
- data/dyncall/dyncallback/dyncall_callback_mips.c +3 -2
- data/dyncall/dyncallback/dyncall_callback_mips.h +3 -2
- data/dyncall/dyncallback/dyncall_callback_ppc32.S +115 -4
- data/dyncall/dyncallback/dyncall_callback_ppc32.c +3 -2
- data/dyncall/dyncallback/dyncall_callback_ppc32.h +6 -6
- data/dyncall/dyncallback/dyncall_callback_ppc32_apple.s +6 -5
- data/dyncall/dyncallback/dyncall_callback_ppc64.S +170 -0
- data/dyncall/dyncallback/dyncall_callback_ppc64.c +60 -0
- data/dyncall/dyncallback/dyncall_callback_ppc64.h +56 -0
- data/dyncall/dyncallback/dyncall_callback_sparc32.c +2 -1
- data/dyncall/dyncallback/dyncall_callback_sparc32.h +2 -1
- data/dyncall/dyncallback/dyncall_callback_sparc32.s +1 -1
- data/dyncall/dyncallback/dyncall_callback_sparc64.c +2 -1
- data/dyncall/dyncallback/dyncall_callback_sparc64.s +1 -1
- data/dyncall/dyncallback/dyncall_callback_x64.S +5 -12
- data/dyncall/dyncallback/dyncall_callback_x64.c +2 -1
- data/dyncall/dyncallback/dyncall_callback_x64.h +2 -1
- data/dyncall/dyncallback/dyncall_callback_x64_masm.asm +0 -7
- data/dyncall/dyncallback/dyncall_callback_x86.S +5 -12
- data/dyncall/dyncallback/dyncall_callback_x86.c +2 -1
- data/dyncall/dyncallback/dyncall_callback_x86.h +2 -1
- data/dyncall/dyncallback/dyncall_callback_x86_masm.asm +2 -11
- data/dyncall/dyncallback/dyncall_thunk.c +11 -3
- data/dyncall/dyncallback/dyncall_thunk.h +8 -2
- data/dyncall/dyncallback/dyncall_thunk_arm32_arm.c +7 -7
- data/dyncall/dyncallback/dyncall_thunk_arm32_arm.h +2 -1
- data/dyncall/dyncallback/dyncall_thunk_arm32_thumb.c +2 -1
- data/dyncall/dyncallback/dyncall_thunk_arm32_thumb.h +2 -1
- data/dyncall/dyncallback/dyncall_thunk_arm64.c +64 -0
- data/dyncall/dyncallback/dyncall_thunk_arm64.h +42 -0
- data/dyncall/dyncallback/dyncall_thunk_mips.c +49 -17
- data/dyncall/dyncallback/dyncall_thunk_mips.h +3 -2
- data/dyncall/dyncallback/dyncall_thunk_ppc32.c +3 -2
- data/dyncall/dyncallback/dyncall_thunk_ppc32.h +7 -7
- data/dyncall/dyncallback/dyncall_thunk_ppc32_sysv.c +50 -0
- data/dyncall/dyncallback/dyncall_thunk_ppc64.c +87 -0
- data/dyncall/dyncallback/dyncall_thunk_ppc64.h +55 -0
- data/dyncall/dyncallback/dyncall_thunk_sparc32.c +2 -1
- data/dyncall/dyncallback/dyncall_thunk_sparc32.h +2 -1
- data/dyncall/dyncallback/dyncall_thunk_sparc64.c +2 -1
- data/dyncall/dyncallback/dyncall_thunk_sparc64.h +2 -1
- data/dyncall/dyncallback/dyncall_thunk_x64.c +2 -1
- data/dyncall/dyncallback/dyncall_thunk_x64.h +2 -1
- data/dyncall/dyncallback/dyncall_thunk_x86.c +2 -1
- data/dyncall/dyncallback/dyncall_thunk_x86.h +2 -1
- data/dyncall/dyncallback/dyncallback.3 +3 -3
- data/dyncall/dyncallback/gen-masm.sh +0 -0
- data/dyncall/dynload/dynload.c +2 -1
- data/dyncall/dynload/dynload.h +2 -1
- data/dyncall/dynload/dynload_alloc.h +2 -1
- data/dyncall/dynload/dynload_darwin.c +2 -1
- data/dyncall/dynload/dynload_syms.c +2 -1
- data/dyncall/dynload/dynload_syms_elf.c +2 -1
- data/dyncall/dynload/dynload_syms_mach-o.c +3 -2
- data/dyncall/dynload/dynload_syms_pe.c +2 -1
- data/dyncall/dynload/dynload_unix.c +2 -1
- data/dyncall/dynload/dynload_windows.c +2 -1
- data/dyncall/portasm/gen-masm.sh +0 -0
- data/dyncall/portasm/portasm-arm.S +3 -2
- data/dyncall/portasm/portasm-ppc.S +2 -1
- data/dyncall/portasm/portasm-ppc64.S +119 -0
- data/dyncall/portasm/portasm-x64-att.S +2 -1
- data/dyncall/portasm/portasm-x86.S +2 -1
- metadata +39 -18
- data/dyncall/dyncallback/dyncall_callback_x64_apple.s +0 -122
- data/dyncall/dyncallback/dyncall_callback_x64_gas.s +0 -119
- data/dyncall/dyncallback/dyncall_callback_x64_gas_w64.s +0 -102
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 76ba7a97e6c88e40f86e1a59a4c6023222ed83db
|
|
4
|
+
data.tar.gz: c24246dc7d908499db4760aac24cb40f3213acc5
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 4c2d628c9aed7e969046206fc969b51082daad477b32191d04b0a95295428cdbc447e727788c3cc4384f7b81f0d928cab225225f3af7da5650f8e9de35478da3
|
|
7
|
+
data.tar.gz: 8fefae5a9f123004aa604322676b9800c6af14cc4b73b16c41c74820c9304605d7812314b2083fc1bf8d7e84f8e524357195985b0623bd6c414626b784c79530
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#//////////////////////////////////////////////////////////////////////
|
|
2
2
|
#
|
|
3
3
|
# extconf.rb
|
|
4
|
-
# Copyright (c) 2007-
|
|
4
|
+
# Copyright (c) 2007-2015 Daniel Adler <dadler@uni-goettingen.de>,
|
|
5
5
|
# Tassilo Philipp <tphilipp@potion-studios.com>
|
|
6
6
|
#
|
|
7
7
|
# Permission to use, copy, modify, and distribute this software for any
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
|
|
3
3
|
rbdc.c
|
|
4
|
-
Copyright (c) 2007-
|
|
4
|
+
Copyright (c) 2007-2015 Daniel Adler <dadler@uni-goettingen.de>,
|
|
5
5
|
Tassilo Philipp <tphilipp@potion-studios.com>
|
|
6
6
|
|
|
7
7
|
Permission to use, copy, modify, and distribute this software for any
|
|
@@ -211,6 +211,8 @@ static VALUE ExtLib_Call(int argc, VALUE* argv, VALUE self)
|
|
|
211
211
|
for(i=2; i<argc; ++i) {
|
|
212
212
|
t = TYPE(argv[i]);
|
|
213
213
|
|
|
214
|
+
//@@@ add support for calling convention mode(s)
|
|
215
|
+
|
|
214
216
|
switch(sig[i-2]) {
|
|
215
217
|
case DC_SIGCHAR_BOOL:
|
|
216
218
|
b = 1;
|
data/dyncall/AUTHORS
CHANGED
data/dyncall/BUGS
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
- add support for SELinux; object files need to be tagged with section '.section .note.GNU-stack,"",%progbits'
|
|
2
2
|
- dyncall sparc v7/v8: -xO3 on SunPro segfaults in tests.
|
|
3
3
|
- dyncall sparc64 port: works fine on Debian 6, but has issues on OpenBSD and Solaris regarding passing of float and double values.
|
|
4
|
+
- this BUGS file should be merged with ToDo or vice-versa
|
data/dyncall/CMakeLists.txt
CHANGED
|
@@ -46,7 +46,7 @@ if(MSVC)
|
|
|
46
46
|
#set(CMAKE_ASM_COMPILER_ARG1 "/c")
|
|
47
47
|
#set(CMAKE_ASM_MASM_SOURCE_FILE_EXTENSIONS asm)
|
|
48
48
|
#set(CMAKE_ASM_MASM_COMPILE_OBJECT "<CMAKE_ASM_MASM_COMPILER> <FLAGS> /c /Fo <OBJECT> <SOURCE>")
|
|
49
|
-
elseif(CMAKE_COMPILER_IS_GNUCC)
|
|
49
|
+
elseif(CMAKE_COMPILER_IS_GNUCC OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Intel")
|
|
50
50
|
# when used in shared libraries, -fPIC is required by several architectures
|
|
51
51
|
# and platforms (observed on AMD64, Solaris/Sparc).
|
|
52
52
|
# we enable it per default here.
|
|
@@ -55,13 +55,21 @@ elseif(CMAKE_COMPILER_IS_GNUCC)
|
|
|
55
55
|
set(CMAKE_ASM_COMPILER "${CMAKE_C_COMPILER}")
|
|
56
56
|
set(CMAKE_ASM_COMPILER_ARG1 "${CPPFLAGS} -c")
|
|
57
57
|
enable_language(ASM)
|
|
58
|
+
elseif(CMAKE_COMPILER_IS_CLANG)
|
|
58
59
|
elseif("${CMAKE_C_COMPILER_ID}" STREQUAL "SunPro")
|
|
59
60
|
set(CMAKE_ASM_COMPILER "${CMAKE_C_COMPILER}")
|
|
60
61
|
set(CMAKE_ASM_COMPILER_ARG1 "${CPPFLAGS} -c")
|
|
61
62
|
enable_language(ASM)
|
|
63
|
+
else()
|
|
64
|
+
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
|
65
|
+
add_definitions("-fPIC")
|
|
66
|
+
# enable gcc as front-end to assembler for .S files
|
|
67
|
+
set(CMAKE_ASM_COMPILER "${CMAKE_C_COMPILER}")
|
|
68
|
+
set(CMAKE_ASM_COMPILER_ARG1 "${CPPFLAGS} -c")
|
|
69
|
+
enable_language(ASM)
|
|
70
|
+
endif()
|
|
62
71
|
endif()
|
|
63
72
|
|
|
64
|
-
|
|
65
73
|
add_subdirectory(dynload)
|
|
66
74
|
add_subdirectory(dyncall)
|
|
67
75
|
add_subdirectory(dyncallback)
|
data/dyncall/ChangeLog
CHANGED
|
@@ -1,9 +1,44 @@
|
|
|
1
|
-
This file lists
|
|
1
|
+
This file lists bigger/noteworthy changes, only...
|
|
2
2
|
|
|
3
|
-
Version 0
|
|
4
|
-
...
|
|
3
|
+
Version 1.0 (upcoming)
|
|
4
|
+
o ...
|
|
5
5
|
|
|
6
|
-
Version 0.
|
|
6
|
+
Version 0.9 (2015/12/31)
|
|
7
|
+
dyncall:
|
|
8
|
+
o ARM64 support (AAPCS64 on Linux & Apple's derived version on iOS)
|
|
9
|
+
o armhf calling convention support for ARM32
|
|
10
|
+
o PPC64 support, including syscalls (thanks Masanori!)
|
|
11
|
+
o introduced dcArgF and dcVArgF for flexible/convenient argument binding (works like dcCallF/dcVCallF but without the function call)
|
|
12
|
+
o using -fPIC by default for FreeBSD
|
|
13
|
+
o PPC32 linux syscall support
|
|
14
|
+
o fixed return value errors for arm32 on some platforms (e.g. freebsd/arm32, nintendo ds); arm & thumb mode
|
|
15
|
+
dyncallback:
|
|
16
|
+
o ARM64 support (AAPCS64 on Linux, Apple's derived version on iOS)
|
|
17
|
+
o armhf calling convention support for ARM32
|
|
18
|
+
o PPC64 support (thanks Masanori!)
|
|
19
|
+
o PPC32 System V support (Linux)
|
|
20
|
+
o fix for PPC32 Darwin/OS X
|
|
21
|
+
o more intuitive specification of callback return type
|
|
22
|
+
doc:
|
|
23
|
+
o added ARM64 support info and calling convention documentation
|
|
24
|
+
o added ARM32 armhf section
|
|
25
|
+
o added PPC64 support info
|
|
26
|
+
o cleanup, brought all up to date, etc.
|
|
27
|
+
tests:
|
|
28
|
+
o callf test covers new argf interface
|
|
29
|
+
o several fixes to some test suites
|
|
30
|
+
buildsys:
|
|
31
|
+
o more flexible testsuite build and 'pack' target for convenience
|
|
32
|
+
o fixes/additions for OS X universal builds
|
|
33
|
+
o added iOS universal build support for armv7/arm64
|
|
34
|
+
o helper script for generic .elf -> EBOOT.PBP creation for PSP
|
|
35
|
+
o Sun make fixes for C++ code in test suite
|
|
36
|
+
bindings:
|
|
37
|
+
o erldc: Erlang binding (thanks Erik!)
|
|
38
|
+
infrastructure:
|
|
39
|
+
o moved to hg
|
|
40
|
+
|
|
41
|
+
Version 0.8 (2014/03/24)
|
|
7
42
|
buildsys:
|
|
8
43
|
o big simplification make-based build system, no more distinct GNU and BSD makefiles anymore
|
|
9
44
|
o new, much simpler ./configure for new make-based build-system
|
|
@@ -33,7 +68,7 @@ bindings:
|
|
|
33
68
|
o rbdc: fixed and extended ruby bindings
|
|
34
69
|
o shdc: renamed shell binding to shdc and added feature to list shared-objects' symbols
|
|
35
70
|
|
|
36
|
-
Version 0.7
|
|
71
|
+
Version 0.7 (2012/01/02)
|
|
37
72
|
architecture:
|
|
38
73
|
o added subproject: portasm - portable (GNU AS,+Apple and MASM) assembly framework
|
|
39
74
|
o added subproject: autovar - predefined macro framework (was dyncall_macros.h)
|
|
@@ -101,7 +136,7 @@ tests:
|
|
|
101
136
|
o improved dir name portability (renamed plain_c++ -> plain_cxx)
|
|
102
137
|
o renamed *.cpp -> *.cc files (OpenBSD/Sun make has no implicit rules for cpp)
|
|
103
138
|
|
|
104
|
-
Version 0.6
|
|
139
|
+
Version 0.6 (2010/09/25)
|
|
105
140
|
building:
|
|
106
141
|
o new build systems: CMake and Plan9's mk
|
|
107
142
|
o buildsys/gmake tool chain update: pcc and iphone sdk
|
|
@@ -123,7 +158,7 @@ tests:
|
|
|
123
158
|
o plain: split "plain" test up in C and C++ part
|
|
124
159
|
o callbacksuite: added multiple configuration support for callback_suite
|
|
125
160
|
|
|
126
|
-
Version 0.5
|
|
161
|
+
Version 0.5 (2010/02/01)
|
|
127
162
|
o renamed arm9 stuff to arm32
|
|
128
163
|
o added non-EABI ABI for arm32 (before, EABI was the default implementation)
|
|
129
164
|
o added dyncallback support for x64/windows (thanks Olivier), x64/darwin, arm32/arm, arm32/thumb
|
|
@@ -134,7 +169,7 @@ Version 0.5
|
|
|
134
169
|
o added new tests callback_plain and calback_suite
|
|
135
170
|
o added Haiku/BeOS support
|
|
136
171
|
|
|
137
|
-
Version 0.4
|
|
172
|
+
Version 0.4 (2009/07/06)
|
|
138
173
|
o added 'doc' makefile target for coherency and ease of use
|
|
139
174
|
o fixed nmake buildfiles and configure.bat (were out of date and wrong)
|
|
140
175
|
o test suite clean up (GNUmake, BSDmake):
|
|
@@ -151,19 +186,19 @@ Version 0.4
|
|
|
151
186
|
o added: test cases for alloc_wx, thunk
|
|
152
187
|
o updated Documentation
|
|
153
188
|
|
|
154
|
-
Version 0.3
|
|
189
|
+
Version 0.3 (2009/01/17)
|
|
155
190
|
o added Linux PPC32 support
|
|
156
191
|
o added ARM THUMB mode support
|
|
157
192
|
o cosmetic changes, documentation updated
|
|
158
193
|
o bugfix: on cygwin exported C symbols in GNU as are prefixed with '_' now.
|
|
159
194
|
o removed scons build support
|
|
160
195
|
|
|
161
|
-
Version 0.2
|
|
196
|
+
Version 0.2 (2008/05/18)
|
|
162
197
|
o added scons build support
|
|
163
198
|
o configure variables all prefix CONFIG_* now
|
|
164
199
|
o configure variable INSTALL_DIR changed to INSTALL_PREFIX
|
|
165
200
|
o configure (shell version) option "--prefix" changed to "--prefix=<path>"
|
|
166
201
|
|
|
167
|
-
Version 0.1
|
|
202
|
+
Version 0.1 (2008/01/23)
|
|
168
203
|
o initial release
|
|
169
204
|
|
data/dyncall/LICENSE
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
If not stated otherwise inside a file, all files here are distributed in
|
|
2
|
+
terms of:
|
|
3
|
+
|
|
4
|
+
Copyright (c) 2007-2015 Daniel Adler <dadler@uni-goettingen.de>,
|
|
2
5
|
Tassilo Philipp <tphilipp@potion-studios.com>
|
|
3
6
|
|
|
4
7
|
Permission to use, copy, modify, and distribute this software for any
|
data/dyncall/Makefile.embedded
CHANGED
|
@@ -62,10 +62,14 @@ ios-os:
|
|
|
62
62
|
IOS_PLATFORM="OS" ${MAKE_CMD} ios
|
|
63
63
|
# NOTE iOS 6.1 does not support armv6 (has no libs)
|
|
64
64
|
ios61-os:
|
|
65
|
-
IOS_SDK="6.1" IOS_ARCH="-arch armv7"
|
|
65
|
+
IOS_SDK="6.1" IOS_ARCH="-arch armv7" ${MAKE_CMD} ios-os
|
|
66
66
|
ios61-os-no-thumb:
|
|
67
|
-
IOS_SDK="6.1" IOS_ARCH="-arch armv7 -mno-thumb"
|
|
67
|
+
IOS_SDK="6.1" IOS_ARCH="-arch armv7 -mno-thumb" ${MAKE_CMD} ios-os
|
|
68
68
|
ios61-sim:
|
|
69
|
-
IOS_SDK="6.1" IOS_ARCH="-arch i386"
|
|
69
|
+
IOS_SDK="6.1" IOS_ARCH="-arch i386" ${MAKE_CMD} ios-sim
|
|
70
|
+
ios83-os-universal:
|
|
71
|
+
IOS_SDK="8.3" IOS_ARCH="-arch armv7 -arch arm64" ${MAKE_CMD} ios-os
|
|
72
|
+
ios83-sim:
|
|
73
|
+
IOS_SDK="8.3" IOS_ARCH="-arch i386" ${MAKE_CMD} ios-sim
|
|
70
74
|
|
|
71
75
|
.PHONY: all tests clean install bsd linux linux64 minix-gcc mingw32 osx osx-universal sun sun-64bit sun-gcc sun-gcc-64bit
|
data/dyncall/README
CHANGED
|
@@ -10,17 +10,20 @@ It comprises three independent components, available as C libraries, namely:
|
|
|
10
10
|
- 'dynload' for loading code.
|
|
11
11
|
|
|
12
12
|
The package provides abstractions to the Application Binary Interface
|
|
13
|
-
of various hardware platforms such as
|
|
14
|
-
and
|
|
13
|
+
of various hardware platforms such as x86, AMD64, ARM32/64, PowerPC32/64,
|
|
14
|
+
MIPS32/64 and SPARC32/64.
|
|
15
15
|
|
|
16
|
-
Our releases are
|
|
16
|
+
Our releases are thoroughly tested across all supported platforms using a
|
|
17
|
+
flexible test suite.
|
|
17
18
|
|
|
18
19
|
A typical application for the use of dyncall is the back-end of a FFI
|
|
19
20
|
(foreign function interface) for scripting languages to connect with
|
|
20
21
|
the C/C++ world.
|
|
21
22
|
|
|
22
|
-
The binary footprint of the package is approx. 20 kb
|
|
23
|
-
|
|
23
|
+
The binary footprint of the package is approx. 10-20 kb, depending on
|
|
24
|
+
the platform.
|
|
25
|
+
Besides the test suite already mentioned, comprehensive documentation is
|
|
26
|
+
available.
|
|
24
27
|
|
|
25
28
|
|
|
26
29
|
Building the libraries
|
|
@@ -35,14 +38,14 @@ Prequisites:
|
|
|
35
38
|
Supported Architectures and ABIs:
|
|
36
39
|
---------------------------------
|
|
37
40
|
|
|
38
|
-
- x86 32/64-bit
|
|
39
|
-
- ARM AArch32
|
|
40
|
-
- MIPS 32/64-bit
|
|
41
|
-
- PowerPC 32-bit
|
|
42
|
-
- Sparc 32/64-bit
|
|
41
|
+
- x86 32/64-bit (cdecl, fastcall, stdcall, C++ this calls, syscalls, plan9)
|
|
42
|
+
- ARM AArch32/64 (32: ARM/Thumb mode, v4t-v7, oabi/eabi, soft/hardfloat ABIs; 64: AAPCS64)
|
|
43
|
+
- MIPS 32/64-bit (o32, n64, eabi)
|
|
44
|
+
- PowerPC 32/64-bit (32: Mac OS X, System V; 64: System V little and big endian ELF ABI)
|
|
45
|
+
- Sparc 32/64-bit (v7/8 and v9)
|
|
43
46
|
|
|
44
|
-
NOTE: Callback support is currently available on
|
|
45
|
-
x86-32/64, arm32 softfloat ABIs and
|
|
47
|
+
NOTE: Callback support is currently available on
|
|
48
|
+
x86-32/64, arm32 softfloat ABIs, arm64, PPC64 and PPC32 Linux/OS X.
|
|
46
49
|
|
|
47
50
|
Supported Operating Systems:
|
|
48
51
|
----------------------------
|
|
@@ -100,6 +103,12 @@ Building on Windows
|
|
|
100
103
|
See doc/README.Windows
|
|
101
104
|
|
|
102
105
|
|
|
106
|
+
Platform-specific build details
|
|
107
|
+
-------------------------------
|
|
108
|
+
|
|
109
|
+
See doc/README.*
|
|
110
|
+
|
|
111
|
+
|
|
103
112
|
Building the manual
|
|
104
113
|
-------------------
|
|
105
114
|
|
|
@@ -108,6 +117,6 @@ Make sure pdflatex is installed and run
|
|
|
108
117
|
$ make docs
|
|
109
118
|
|
|
110
119
|
|
|
111
|
-
Please refer to http://www.dyncall.org, dyncall(3), the dyncall
|
|
112
|
-
platform-specific READMEs under doc/ for more information.
|
|
120
|
+
Please refer to http://www.dyncall.org, dyncall(3), dyncallback(3), the dyncall
|
|
121
|
+
manual and platform-specific READMEs under doc/ for more information.
|
|
113
122
|
|
data/dyncall/ToDo
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
0
|
|
1
|
+
1.0:
|
|
2
2
|
----
|
|
3
|
+
- autovar was never really pushed all the way through and still plays second
|
|
4
|
+
fiddle to dyncall_macros.h, clean this all up, eventually (Tassilo: for now, I
|
|
5
|
+
removed out of sync files to avoid confusion; but still probably duped code)
|
|
6
|
+
- ppc32 callback fixes on bsd
|
|
3
7
|
- make install should install manpages
|
|
4
8
|
- mailing list announcements (html email?)
|
|
5
|
-
- Website:
|
|
6
|
-
* platform matrix (wie im Handbuch oder Daniels Disse)
|
|
7
9
|
- fix for NDS:
|
|
8
10
|
* ARM:
|
|
9
11
|
- callback_plain retval wrong (not only platform)
|
|
10
12
|
* THUMB:
|
|
11
13
|
- ellipsis (might be test itself, not respecting fixed part of args)
|
|
12
|
-
- retvals of call_suite (maybe all retvals, in general)
|
|
13
14
|
- callback_plain retval
|
|
14
15
|
- callf
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
-
|
|
20
|
-
|
|
16
|
+
- fix Minix/x86 callbacks (see callback_suite)
|
|
17
|
+
- armhf ellipsis: fix weirdness with long long as first ... arg
|
|
18
|
+
- add portable "make install"
|
|
19
|
+
- support Solaris11 CFLAGS with -D_FILE_OFFSET_BITS=64
|
|
20
|
+
- make sure selinux works (esp. regarding NX bits, asm might need (or similar): .section .note.GNU-stack,"",@progbits)
|
|
21
|
+
Daniel has a patch for it, if needed, implementing allocwx with two memory blocks, one for w^x, mmaped to one for r|x
|
|
21
22
|
|
|
22
23
|
portasm:
|
|
23
24
|
--------
|
|
@@ -25,16 +26,16 @@ portasm:
|
|
|
25
26
|
|
|
26
27
|
dyncall:
|
|
27
28
|
--------
|
|
28
|
-
- port ppc64
|
|
29
29
|
- support for return values: aggregate return values
|
|
30
30
|
- support for argument values: structures, half-precision, vector types, long double
|
|
31
31
|
- varargs for mips (might exist, but test all ABIs)
|
|
32
32
|
- consider automatic type-promotion for arguments passed through DC_CALL_C_ELLIPSIS_VARARGS;
|
|
33
33
|
this would make it easier to just pass arguments instead of having to know about the C
|
|
34
34
|
type promotions
|
|
35
|
-
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
- syscalls for x64
|
|
36
|
+
* bsd
|
|
37
|
+
* linux
|
|
38
|
+
- other syscalls
|
|
38
39
|
|
|
39
40
|
dynload:
|
|
40
41
|
--------
|
|
@@ -49,8 +50,8 @@ dynload:
|
|
|
49
50
|
dyncallback:
|
|
50
51
|
------------
|
|
51
52
|
- callback_plain's return value not correct anymore on NDS (maybe just broken testcode?)
|
|
52
|
-
- add MIPS callbacks
|
|
53
|
-
- finish PPC32 callbacks (see bugs section, below)
|
|
53
|
+
- add MIPS callbacks for eabi, n32, o32 (thunks are working)
|
|
54
|
+
- finish PPC32 callbacks (see bugs section, below, BSD not working)
|
|
54
55
|
|
|
55
56
|
bindings:
|
|
56
57
|
---------
|
|
@@ -60,12 +61,13 @@ bindings:
|
|
|
60
61
|
- bring python up to latest
|
|
61
62
|
- add pydoc for python
|
|
62
63
|
- add manpage for shdc
|
|
63
|
-
-
|
|
64
|
+
- expose callf-convenience functions to go
|
|
64
65
|
- add godoc for godc
|
|
65
66
|
- bring java up to latest
|
|
66
67
|
- add javadoc to java
|
|
67
68
|
- add more bindings
|
|
68
|
-
- add callback support for go, java, lua, python and ruby (and shell? how?)
|
|
69
|
+
- add callback support for erlang, go, java, lua, python and ruby (and shell? how?)
|
|
70
|
+
- add call-conv-mode-support for rbdc through signature
|
|
69
71
|
|
|
70
72
|
manual:
|
|
71
73
|
-------
|
|
@@ -83,12 +85,11 @@ urgent issues:
|
|
|
83
85
|
- Solaris/gmake build doesn't build dynload and tests anymore (maybe not even dyncallback)
|
|
84
86
|
- test arm32/ATPCS/THUMB (and then change Status in doc Appendix)
|
|
85
87
|
- look over code and fix TODO or @@@ marks
|
|
86
|
-
- add
|
|
88
|
+
- add ppc-support to doc (both, 32 and 64, as well as little and big endian remarks)
|
|
87
89
|
|
|
88
90
|
nice to have:
|
|
89
91
|
-------------
|
|
90
92
|
- update: microsoft visual c++ build files - integrate all test suites in solution file
|
|
91
|
-
- maybe rename DC__Arch_PowerPC to ...PPC32 for coherency reasons (...PPC64)?
|
|
92
93
|
- consistency: on x64 platforms: make both ABIs available ('win64','sysv') for all x64 OS ports
|
|
93
94
|
- microsoft build enhancement: autodetect assembly via C preprocessor (like with .S gcc files)
|
|
94
95
|
- test/thunk: some platforms do not allow for allocation of executable code on heap and stack --
|
|
@@ -96,19 +97,23 @@ nice to have:
|
|
|
96
97
|
|
|
97
98
|
bugs:
|
|
98
99
|
-----
|
|
99
|
-
-
|
|
100
|
+
- callconv set specifically for platform that has only one (default) excepts for some
|
|
101
|
+
platforms, eg. setting X64_sysv on amd64/Linux - keeping cdecl which is the same in
|
|
102
|
+
this case, works
|
|
103
|
+
- callbacks on ppc32 only work on linux and apple (osx abi), but not BSD
|
|
100
104
|
- vararg function calls don't work for ARM THUMB mode (Daniel's new interface for modesetting for varag
|
|
101
105
|
args should be used); adapt test/ellipsis and/or retest
|
|
102
106
|
|
|
103
107
|
missing implementations (descending priority):
|
|
104
108
|
----------------------------------------------
|
|
105
|
-
-
|
|
109
|
+
- riscv
|
|
106
110
|
- itanium
|
|
107
111
|
- 68k, 88k, 6502, etc.
|
|
108
112
|
- alpha
|
|
109
113
|
- superh
|
|
110
114
|
- cell
|
|
111
115
|
- blackfin
|
|
116
|
+
- s/390
|
|
112
117
|
- z80
|
|
113
118
|
- hppa
|
|
114
119
|
- vax
|
|
@@ -118,9 +123,3 @@ missing implementations (descending priority):
|
|
|
118
123
|
- arc
|
|
119
124
|
- seaforth
|
|
120
125
|
|
|
121
|
-
available hardware for outstanding ports:
|
|
122
|
-
-----------------------------------------
|
|
123
|
-
- 68k: Tassilo's old Palm m100 (MC68EZ328 (16MHz))
|
|
124
|
-
- sh4: Tassilo's Dreamcast
|
|
125
|
-
- sigmatel stmp3550b: Daniel's iPod Nano
|
|
126
|
-
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
Description:
|
|
7
7
|
License:
|
|
8
8
|
|
|
9
|
-
Copyright (c) 2011 Daniel Adler <dadler@uni-goettingen.de>,
|
|
10
|
-
|
|
9
|
+
Copyright (c) 2011-2015 Daniel Adler <dadler@uni-goettingen.de>,
|
|
10
|
+
Tassilo Philipp <tphilipp@potion-studios.com>
|
|
11
11
|
|
|
12
12
|
Permission to use, copy, modify, and distribute this software for any
|
|
13
13
|
purpose with or without fee is hereby granted, provided that the above
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
23
23
|
|
|
24
24
|
*/
|
|
25
|
+
|
|
25
26
|
#ifndef AUTOVAR_ABI_H
|
|
26
27
|
#define AUTOVAR_ABI_H
|
|
27
28
|
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
Description:
|
|
7
7
|
License:
|
|
8
8
|
|
|
9
|
-
Copyright (c) 2011 Daniel Adler <dadler@uni-goettingen.de>,
|
|
10
|
-
|
|
9
|
+
Copyright (c) 2011-2015 Daniel Adler <dadler@uni-goettingen.de>,
|
|
10
|
+
Tassilo Philipp <tphilipp@potion-studios.com>
|
|
11
11
|
|
|
12
12
|
Permission to use, copy, modify, and distribute this software for any
|
|
13
13
|
purpose with or without fee is hereby granted, provided that the above
|
|
@@ -22,23 +22,26 @@
|
|
|
22
22
|
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
23
23
|
|
|
24
24
|
*/
|
|
25
|
+
|
|
25
26
|
#ifndef AUTOVAR_ARCH_H
|
|
26
27
|
#define AUTOVAR_ARCH_H
|
|
27
28
|
|
|
28
29
|
/* Check architecture. */
|
|
29
|
-
#if defined(
|
|
30
|
-
# define ARCH_X86
|
|
31
|
-
#elif defined(_M_X64_) || defined(_M_AMD64) || defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64)
|
|
30
|
+
#if defined(_M_X64_) || defined(_M_AMD64) || defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64)
|
|
32
31
|
# define ARCH_X64
|
|
32
|
+
#elif defined(_M_IX86) || defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) || defined(__386__) || defined(__i386)
|
|
33
|
+
# define ARCH_X86
|
|
33
34
|
#elif defined(_M_IA64) || defined(__ia64__)
|
|
34
35
|
# define ARCH_IA64
|
|
35
36
|
#elif defined(_M_PPC) || defined(__powerpc__) || defined(__powerpc) || defined(__POWERPC__) || defined(__ppc__) || defined(__power__)
|
|
36
|
-
#
|
|
37
|
-
#
|
|
38
|
-
#
|
|
37
|
+
# if defined(__ppc64__) || defined(_ARCH_PPC64) || defined(__power64__) || defined(__powerpc64__)
|
|
38
|
+
# define ARCH_PPC64
|
|
39
|
+
# else
|
|
40
|
+
# define ARCH_PPC
|
|
41
|
+
# endif
|
|
39
42
|
#elif defined(__mips64__) || defined(__mips64)
|
|
40
43
|
# define ARCH_MIPS64
|
|
41
|
-
#elif defined(_M_MRX000) || defined(__mips__)
|
|
44
|
+
#elif defined(_M_MRX000) || defined(__mips__) || defined(__mips) || defined(_mips)
|
|
42
45
|
# define ARCH_MIPS
|
|
43
46
|
#elif defined(__arm__)
|
|
44
47
|
# define ARCH_ARM
|
|
@@ -47,7 +50,7 @@
|
|
|
47
50
|
# endif
|
|
48
51
|
#elif defined(__sh__)
|
|
49
52
|
# define ARCH_SH
|
|
50
|
-
#elif defined(__sparcv9) || ( defined(__sparc) && defined(__arch64__) )
|
|
53
|
+
#elif defined(__sparcv9) || defined(__sparc64__) || ( defined(__sparc) && defined(__arch64__) )
|
|
51
54
|
# define ARCH_SPARC64
|
|
52
55
|
#elif defined(__sparc)
|
|
53
56
|
# define ARCH_SPARC
|