rbdc 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/dyncall/CMakeLists.txt +3 -3
- data/dyncall/ChangeLog +33 -0
- data/dyncall/ChangeLog.orig +274 -0
- data/dyncall/LICENSE +1 -1
- data/dyncall/README +3 -5
- data/dyncall/ToDo +27 -18
- data/dyncall/ToDo.orig +201 -0
- data/dyncall/autovar/autovar_ARCH.h +1 -1
- data/dyncall/buildsys/vs2005/vs2005.sln +0 -9
- data/dyncall/cconv.lang +36 -0
- data/dyncall/configure +17 -9
- data/dyncall/configure.bat +1 -1
- data/dyncall/dyncall/dyncall.h +2 -1
- data/dyncall/dyncall/dyncall_call.S +9 -1
- data/dyncall/dyncall/dyncall_call_mips_n32.S +192 -0
- data/dyncall/dyncall/dyncall_call_mips_n64.S +197 -0
- data/dyncall/dyncall/dyncall_call_mips_n64.h +2 -0
- data/dyncall/dyncall/{dyncall_call_mips_o32_gas.s → dyncall_call_mips_o32.S} +44 -42
- data/dyncall/dyncall/dyncall_call_mips_o32.h +8 -3
- data/dyncall/dyncall/dyncall_call_ppc32.S +3 -1
- data/dyncall/dyncall/dyncall_call_ppc32.h +4 -3
- data/dyncall/dyncall/dyncall_call_ppc64.S +1 -1
- data/dyncall/dyncall/dyncall_call_ppc64.h +3 -0
- data/dyncall/dyncall/dyncall_call_x64.S +27 -2
- data/dyncall/dyncall/dyncall_call_x64.h +2 -1
- data/dyncall/dyncall/dyncall_call_x64_generic_masm.asm +13 -2
- data/dyncall/dyncall/dyncall_call_x86.S +6 -6
- data/dyncall/dyncall/dyncall_call_x86.h +7 -7
- data/dyncall/dyncall/dyncall_call_x86_generic_masm.asm +6 -7
- data/dyncall/dyncall/dyncall_callvm_mips_n64.c +27 -9
- data/dyncall/dyncall/dyncall_callvm_mips_o32.c +38 -31
- data/dyncall/dyncall/dyncall_callvm_mips_o32.c.orig +247 -0
- data/dyncall/dyncall/dyncall_callvm_x64.c +57 -3
- data/dyncall/dyncall/dyncall_callvm_x86.c +32 -32
- data/dyncall/dyncall/dyncall_macros.h +11 -8
- data/dyncall/dyncall/dyncall_struct.c +12 -6
- data/dyncall/dyncall/dyncall_struct.h +1 -1
- data/dyncall/dyncall/dyncall_vector.c +13 -12
- data/dyncall/dyncall/dyncall_vector.c.orig +53 -0
- data/dyncall/dyncall/gen-masm.sh +4 -5
- data/dyncall/dyncallback/dyncall_args_mips.h +24 -6
- data/dyncall/dyncallback/dyncall_args_mips64.c +3 -3
- data/dyncall/dyncallback/dyncall_args_mips_o32.c +19 -6
- data/dyncall/dyncallback/dyncall_callback_arch.S +11 -1
- data/dyncall/dyncallback/{dyncall_callback_mips_n32_gas.s → dyncall_callback_mips_n32.S} +1 -1
- data/dyncall/dyncallback/{dyncall_callback_mips_n64_gas.s → dyncall_callback_mips_n64.S} +39 -25
- data/dyncall/dyncallback/{dyncall_callback_mips_o32_gas.s → dyncall_callback_mips_o32.S} +29 -13
- data/dyncall/dyncallback/dyncall_callback_x86_masm.asm +0 -1
- data/dyncall/dyncallback/dyncall_thunk.h +1 -1
- data/dyncall/dyncallback/gen-masm.sh +3 -5
- data/dyncall/dynload/dynload.3 +16 -4
- data/dyncall/dynload/dynload_unix.c +101 -53
- data/dyncall/dynload/dynload_windows.c +76 -3
- data/dyncall/portasm/README.txt +1 -1
- data/dyncall/portasm/gen-masm.sh +5 -1
- metadata +14 -13
- data/dyncall/buildsys/vs2005/test_plain/test_plain.vcproj +0 -202
- data/dyncall/dyncall/dyncall_call_mips_gas.S +0 -37
- data/dyncall/dyncall/dyncall_call_mips_n32_gas.s +0 -192
- data/dyncall/dyncall/dyncall_call_mips_n64_gas.s +0 -192
- data/dyncall/dyncallback/dyncall_callback_mips_gas.S +0 -38
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 29f9408d7f40b136b8710574c7439813d51aa7e664e2539c84f49975fe95504b
|
4
|
+
data.tar.gz: 8d4cbfefadf868b87b8a2438b5bac60cf9efaae64b8e3cc4021b4a25106e08fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 52cccfba7ca659369a80703878ba2458690c68bc1bb3db7617f7acfdb7c038716283ff7a8cd122ba39660402510435daa927b1800f8e944516d537f5ab3dddef
|
7
|
+
data.tar.gz: 42de21fd3d263c3c87681d3ebca29f801992e8392e15cba9bb4efde9e22f030157e9a11745b3f962013932989a8f6dbfe8cb60c2978298e975f73591df5dbeda
|
data/dyncall/CMakeLists.txt
CHANGED
@@ -23,10 +23,10 @@ project(DynCall C)
|
|
23
23
|
|
24
24
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "dyncall enables dynamic invocation of machine-level function calls")
|
25
25
|
set(CPACK_PACKAGE_VENDOR "dyncall project")
|
26
|
-
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/
|
27
|
-
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/
|
26
|
+
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
|
27
|
+
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
|
28
28
|
if(APPLE)
|
29
|
-
set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/
|
29
|
+
set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README")
|
30
30
|
endif(APPLE)
|
31
31
|
set(CPACK_PACKAGE_NAME "dyncall")
|
32
32
|
include(CPack)
|
data/dyncall/ChangeLog
CHANGED
@@ -1,5 +1,38 @@
|
|
1
1
|
This file lists bigger/noteworthy changes, only...
|
2
2
|
|
3
|
+
Version 1.2 (upcoming)
|
4
|
+
...
|
5
|
+
|
6
|
+
Version 1.1 (2020/01/11)
|
7
|
+
dyncall:
|
8
|
+
o support for soft-float MIPS o32 & n64 (big- and little-endian, each)
|
9
|
+
o x64 System V syscall support
|
10
|
+
dyncallback:
|
11
|
+
o support for soft-float MIPS o32 & n64 (big- and little-endian, each)
|
12
|
+
dynload:
|
13
|
+
o added UTF-8 support for pathnames on windows
|
14
|
+
o reliability/stability fix for dlGetLibraryPath() on glibc based platforms (avoiding
|
15
|
+
internal use of glibc's bad impl of dlinfo() which doesn't do any error checking at all)
|
16
|
+
o Darwin/macos fix for dlGetLibraryPath() to correctly fail on bogus handles (did return
|
17
|
+
paths to random libraries under some circumstances, instead of returning an error)
|
18
|
+
o support for dlGetLibraryPath() on glibc platforms with glibc vesions <= 2.3.3
|
19
|
+
o dlGetLibraryPath() now accepts NULL as argument to return path to executable
|
20
|
+
o dlLoadLibrary() on windows: no more auto-suffixing of the .dll file ext anymore, to be
|
21
|
+
more in line with other platforms (not affecting OS specific library search behaviour)
|
22
|
+
doc:
|
23
|
+
o more detail in support matrix for bi-endian platforms
|
24
|
+
o improvements/corrections to calling convention appendix
|
25
|
+
o PPC64 calling convention description
|
26
|
+
o MIPS64/N32 calling convention description
|
27
|
+
o man page additions for clarity
|
28
|
+
tests:
|
29
|
+
o dynload_plain test extended to test UTF-8 library paths
|
30
|
+
o better output for plain test
|
31
|
+
o better output and *nix fix for plain_c++ test
|
32
|
+
buildsys:
|
33
|
+
o default ./configure: FreeBSD/mips*hf needed -mhard-float compiler flag set explicitly
|
34
|
+
o better MacOS Mojave support in ./configure (Mojave dropped i386 builds)
|
35
|
+
|
3
36
|
Version 1.0 (2018/04/23)
|
4
37
|
dyncall:
|
5
38
|
o PPC64 single-precision float fixes for more than 13 float args (thanks Masanori Mitsugi!)
|
@@ -0,0 +1,274 @@
|
|
1
|
+
This file lists bigger/noteworthy changes, only...
|
2
|
+
|
3
|
+
Version 1.1 (upcoming)
|
4
|
+
dyncall:
|
5
|
+
o support for soft-float MIPS o32 & n64 (big- and little-endian, each)
|
6
|
+
o x64 System V syscall support
|
7
|
+
dyncallback:
|
8
|
+
o support for soft-float MIPS o32 & n64 (big- and little-endian, each)
|
9
|
+
dynload:
|
10
|
+
o added UTF-8 support for pathnames on windows
|
11
|
+
o reliability/stability fix for dlGetLibraryPath() on glibc based platforms (avoiding
|
12
|
+
internal use of glibc's bad impl of dlinfo() which doesn't do any error checking at all)
|
13
|
+
o Darwin/macos fix for dlGetLibraryPath() to correctly fail on bogus handles (did return
|
14
|
+
paths to random libraries under some circumstances, instead of returning an error)
|
15
|
+
o support for dlGetLibraryPath() on glibc platforms with glibc vesions <= 2.3.3
|
16
|
+
o dlGetLibraryPath() now accepts NULL as argument to return path to executable
|
17
|
+
doc:
|
18
|
+
o more detail in support matrix for bi-endian platforms
|
19
|
+
o improvements/corrections to calling convention appendix
|
20
|
+
o PPC64 calling convention description
|
21
|
+
o MIPS64/N32 calling convention description
|
22
|
+
o man page additions for clarity
|
23
|
+
tests:
|
24
|
+
o dynload_plain test extended to test UTF-8 library paths
|
25
|
+
o better output for plain test
|
26
|
+
o better output and *nix fix for plain_c++ test
|
27
|
+
buildsys:
|
28
|
+
o default ./configure: FreeBSD/mips*hf needed -mhard-float compiler flag set explicitly
|
29
|
+
o better MacOS Mojave support in ./configure (Mojave dropped i386 builds)
|
30
|
+
o Catalina @@@?
|
31
|
+
|
32
|
+
Version 1.0 (2018/04/23)
|
33
|
+
dyncall:
|
34
|
+
o PPC64 single-precision float fixes for more than 13 float args (thanks Masanori Mitsugi!)
|
35
|
+
o fixed potential buffer overrun on ARM64
|
36
|
+
o error code handling (dcGetError) changes, flag is now cleared (work still underway)
|
37
|
+
o MIPS n64 ellipsis call fixes
|
38
|
+
o ARM32 armhf ellipsis call fixes
|
39
|
+
o fixed ARM32-THUMB stack alignment issues (found on Cortex-m0, thanks Darren Whobrey!)
|
40
|
+
o better C++ compiler support (for pointer conversions)
|
41
|
+
dyncallback:
|
42
|
+
o PPC64 single-precision float fixes for more than 13 float args (thanks Masanori Mitsugi!)
|
43
|
+
o MIPS o32 (big- and little-endian), EABI (32 bit, little-endian) and n64 (big-endian) support
|
44
|
+
o SPARC32 (v7/v8) support
|
45
|
+
o SPARC64 (v9) support
|
46
|
+
o PPC32 fixes for (old) Darwin/OS X systems
|
47
|
+
o POSIX compliance: fallback for wx alloc on systems that don't have mmap()'s MAP_ANON
|
48
|
+
o allocated space used for thunk now always W^X (req. for e.g. OpenBSD >= 6.0)
|
49
|
+
dynload:
|
50
|
+
o major reliability/stability fixes for Mach-O dlSyms* functions to (thanks Stéphane Mons for help):
|
51
|
+
better handle loading dylibs by symlink, relative path, random casing, etc.
|
52
|
+
fixes to symbol name lookups that used wrong offsets before
|
53
|
+
64-bit platform fixes (was broken on x64 and never supported on others)
|
54
|
+
o allowing Mach-O dlSyms* lib to be used standalone (consistent with ELF and PE impls now)
|
55
|
+
o simplifications of implemention on Darwin, sharing parts with *nix implementation
|
56
|
+
o potentially breaking change on macos/Darwin platforms: all functions now consistently accept or
|
57
|
+
return symbol names as they would appear in C code, instead of the raw ones in object files
|
58
|
+
o added new function dlGetLibraryPath, allowing lookups of path to library via handle
|
59
|
+
general:
|
60
|
+
o assembly code now built by explicitily asking for non-execstack, for safer/easier integration
|
61
|
+
into other projects/builds, where needed; needed b/c of questionable default behaviours of some
|
62
|
+
toolchains (thanks Thorsten Behrens for report and analysis)
|
63
|
+
doc:
|
64
|
+
o working html doc generation from TEX sources
|
65
|
+
o SPARC32 (v7/v8) calling convention description
|
66
|
+
o SPARC64 (v9) calling convention description
|
67
|
+
bindings:
|
68
|
+
o better documentation, removed relative path dependencies, general cleanup
|
69
|
+
o python: updated to latest signature format (was still on 0.1)
|
70
|
+
o java: rewritten (old version was never complete, anyways)
|
71
|
+
tests:
|
72
|
+
o added new dynload_plain test covering basic use of all dynload functions
|
73
|
+
buildsys:
|
74
|
+
o cmake: made to work on systems without C++ compiler (thanks Franklin Mathieu)
|
75
|
+
|
76
|
+
Version 0.9 (2015/12/31)
|
77
|
+
dyncall:
|
78
|
+
o ARM64 support (AAPCS64 on Linux & Apple's derived version on iOS)
|
79
|
+
o armhf calling convention support for ARM32
|
80
|
+
o PPC64 support, including syscalls (thanks Masanori Mitsugi!)
|
81
|
+
o introduced dcArgF and dcVArgF for flexible/convenient argument binding (works like dcCallF/dcVCallF but without the function call)
|
82
|
+
o using -fPIC by default for FreeBSD
|
83
|
+
o PPC32 linux syscall support
|
84
|
+
o fixed return value errors for ARM32 on some platforms (e.g. freebsd/arm32, nintendo ds); arm & thumb mode
|
85
|
+
dyncallback:
|
86
|
+
o ARM64 support (AAPCS64 on Linux, Apple's derived version on iOS)
|
87
|
+
o armhf calling convention support for ARM32
|
88
|
+
o PPC64 support (thanks Masanori Mitsugi!)
|
89
|
+
o PPC32 System V support (Linux)
|
90
|
+
o fix for PPC32 Darwin/OS X
|
91
|
+
o more intuitive specification of callback return type
|
92
|
+
doc:
|
93
|
+
o added ARM64 support info and calling convention documentation
|
94
|
+
o added ARM32 armhf section
|
95
|
+
o added PPC64 support info
|
96
|
+
o cleanup, brought all up to date, etc.
|
97
|
+
tests:
|
98
|
+
o callf test covers new argf interface
|
99
|
+
o several fixes to some test suites
|
100
|
+
buildsys:
|
101
|
+
o more flexible testsuite build and 'pack' target for convenience
|
102
|
+
o fixes/additions for OS X universal builds
|
103
|
+
o added iOS universal build support for armv7/arm64
|
104
|
+
o helper script for generic .elf -> EBOOT.PBP creation for PSP
|
105
|
+
o Sun make fixes for C++ code in test suite
|
106
|
+
bindings:
|
107
|
+
o erldc: Erlang binding (thanks Erik!)
|
108
|
+
infrastructure:
|
109
|
+
o moved to hg
|
110
|
+
o moved bindings to own repository
|
111
|
+
|
112
|
+
Version 0.8 (2014/03/24)
|
113
|
+
buildsys:
|
114
|
+
o big simplification make-based build system, no more distinct GNU and BSD makefiles anymore
|
115
|
+
o new, much simpler ./configure for new make-based build-system
|
116
|
+
o support for in-source and out-of-source builds for make-based build systems
|
117
|
+
o made configure.bat guess x64 as target arch for x64 windows hosts
|
118
|
+
o based more sources on portasm generation
|
119
|
+
dyncall:
|
120
|
+
o fix for ARMv7 Thumb-2 code (tested on iPhone 4 CDMA / iOS 6.0.1)
|
121
|
+
o bugfixes for -O2 builds for SPARC-v9 and SPARC-v7
|
122
|
+
o new optimized call kernel for SPARC-v9 without conditionals
|
123
|
+
o bigger refactoring and optimization of MIPS o32
|
124
|
+
o x64 optimizations
|
125
|
+
dyncallback:
|
126
|
+
o added callback support for plan9
|
127
|
+
o big cleanup, removal of duplicate files after introduction of portasm
|
128
|
+
o include path fixes for public facing APIs (removed relative paths)
|
129
|
+
doc:
|
130
|
+
o cleanup of manual and corrections
|
131
|
+
o added info about newly supported and/or tested platforms (e.g. FreeBSD on ARM)
|
132
|
+
o restructured folder layout for documentation
|
133
|
+
o added API doc for dyncallback and dynload
|
134
|
+
o added manpages for dyncallback and dynload
|
135
|
+
tests:
|
136
|
+
o added arm/thumb interwork test suite
|
137
|
+
bindings:
|
138
|
+
o godc: added bindings for Go
|
139
|
+
o rbdc: fixed and extended ruby bindings
|
140
|
+
o shdc: renamed shell binding to shdc and added feature to list shared-objects' symbols
|
141
|
+
|
142
|
+
Version 0.7 (2012/01/02)
|
143
|
+
architecture:
|
144
|
+
o added subproject: portasm - portable (GNU AS,+Apple and MASM) assembly framework
|
145
|
+
o added subproject: autovar - predefined macro framework (was dyncall_macros.h)
|
146
|
+
o added support for Solaris and SunPro compiler for i386, x86_64, sparc and sparc64
|
147
|
+
o improved auto-detection via preprocessor defines
|
148
|
+
dyncall updates:
|
149
|
+
o uses portasm (GNU,Apple,Microsoft) common sources for x86,x64,ppc32,arm32_arm
|
150
|
+
o added support for sparc (32-bit) (tested on linux/debian,openbsd,solaris)
|
151
|
+
o added support for sparc (64-bit) (tested on linux/debian,openbsd,solaris)
|
152
|
+
o bug fixes for x64/win64 calling convention
|
153
|
+
o added support for mingw32-w64 on x64
|
154
|
+
o improved cdecl x86 calling convention: stack always 16 byte aligned
|
155
|
+
o updated API and initial support for structs (for x86/AMD64)
|
156
|
+
o initial support for syscalls on x86, added x86 int80h linux/bsd
|
157
|
+
o added Minix port (stable)
|
158
|
+
o optimized vector buffer for small type pushing
|
159
|
+
o minor fix for amd64/sysv: alignment to 32-byte
|
160
|
+
o bug fix for ppc32/sysv: ellipsis calls work now
|
161
|
+
o updated API, introduced DC_CALL_C_ELLIPSIS_VARARGS
|
162
|
+
o changed interface: dcMode does not reset internally anymore
|
163
|
+
dyncallback updates:
|
164
|
+
o uses portasm for x86,x64
|
165
|
+
o added Solaris/x86/sunpro port (stable)
|
166
|
+
o added Minix port (unstable)
|
167
|
+
o callback support for Darwin/ppc32
|
168
|
+
o updates source, uses relative includes
|
169
|
+
dynload updates:
|
170
|
+
o fixes for missing includes (dyncall_alloc.h)
|
171
|
+
o fixes for self-resolving symbols on windows
|
172
|
+
o removed Dbghelf.lib dependency
|
173
|
+
o bug fixes for cygwin/x86
|
174
|
+
o fixes for beos/haiku
|
175
|
+
o no dependencies to libdyncall sources.
|
176
|
+
buildsys additions:
|
177
|
+
o added zero-config (BSD,GNU,SUN) make files (Makefile.embedded)
|
178
|
+
o added in/out-of-source configure2 w/ (BSD,GNU) make files (Makefile.generic)
|
179
|
+
o added bootstrap lua script (download/build)
|
180
|
+
o Nmakefile: more tests included (resolve_self)
|
181
|
+
o improved cross-compilation for iOS (upgrade to 4.3 sdk)
|
182
|
+
o darwin 8.0 support
|
183
|
+
o added 'install' support for Makefile.embedded
|
184
|
+
buildsys/gmake updates:
|
185
|
+
o added support for msvc/x64 tool-chain
|
186
|
+
o default settings for build-dir changed to '.'
|
187
|
+
o cleanup: removed top-level Make{Prolog,Epilog,Rules} files and updated all sub-projects and tests
|
188
|
+
o added support for DESTDIR staging installation
|
189
|
+
o added support for manual page installation
|
190
|
+
buildsys/cmake updates:
|
191
|
+
o updated find module scripts (see cmake/Modules)
|
192
|
+
o added support for using dyncall as sub-project (via *Config.cmake files)
|
193
|
+
see details in README.CMake
|
194
|
+
o fixes for msvc and ml
|
195
|
+
o fixes for CPack
|
196
|
+
o fixes for universal builds on Mac OS X
|
197
|
+
o supports SunPro with *.S files.
|
198
|
+
o added experimental 'dynMake' portable make-based build-system (not stable, yet)
|
199
|
+
documentation updates:
|
200
|
+
o added dyncallback documentation
|
201
|
+
o updated dyncall documentation
|
202
|
+
o minor updates
|
203
|
+
tests:
|
204
|
+
o added flexible test suite for calls (call_suite) based on Lua and C
|
205
|
+
o added syscall test
|
206
|
+
o updates to resolve-self test (adding additional link flags to export symbols)
|
207
|
+
o improved dir name portability (renamed plain_c++ -> plain_cxx)
|
208
|
+
o renamed *.cpp -> *.cc files (OpenBSD/Sun make has no implicit rules for cpp)
|
209
|
+
|
210
|
+
Version 0.6 (2010/09/25)
|
211
|
+
building:
|
212
|
+
o new build systems: CMake and Plan9's mk
|
213
|
+
o buildsys/gmake tool chain update: pcc and iphone sdk
|
214
|
+
o x64 bugfix: added "-fPIC" even for static libs
|
215
|
+
dynload updates:
|
216
|
+
o enum symbols update: Mach-O and Win64 (thanks Olivier)
|
217
|
+
o numerous convenience changes to dynload interface (thanks Olivier)
|
218
|
+
o added support for resolving application images itself
|
219
|
+
dyncall updates:
|
220
|
+
o new platform support: arm/iphone (armv6), x86/Plan9
|
221
|
+
o new MIPS calling conventions: o32, n64 (both endian models)
|
222
|
+
o cleanup: unexported functions in MASM files, b/c export not needed (thanks Olivier)
|
223
|
+
o interface update: added error reporting facility 'dcGetError'
|
224
|
+
o bugfix for ppc32/sysv: ellipsis calls were broken
|
225
|
+
o interface update: added new abstract mode for ellipsis calls (DC_CALL_C_ELLIPSIS)
|
226
|
+
docs:
|
227
|
+
o comprehensive update
|
228
|
+
tests:
|
229
|
+
o plain: split "plain" test up in C and C++ part
|
230
|
+
o callbacksuite: added multiple configuration support for callback_suite
|
231
|
+
|
232
|
+
Version 0.5 (2010/02/01)
|
233
|
+
o renamed arm9 stuff to arm32
|
234
|
+
o added non-EABI ABI for arm32 (before, EABI was the default implementation)
|
235
|
+
o added dyncallback support for x64/windows (thanks Olivier), x64/darwin, arm32/arm, arm32/thumb
|
236
|
+
o synced documentation again with current state of the source (lots of small changes)
|
237
|
+
o updated ruby binding to current state of signature string (still some features missing, though)
|
238
|
+
o added a couple of new options to configure scripts (e.g. prefix-bd, new targets, etc.)
|
239
|
+
o darwin universal binary support
|
240
|
+
o added new tests callback_plain and calback_suite
|
241
|
+
o added Haiku/BeOS support
|
242
|
+
|
243
|
+
Version 0.4 (2009/07/06)
|
244
|
+
o added 'doc' makefile target for coherency and ease of use
|
245
|
+
o fixed nmake buildfiles and configure.bat (were out of date and wrong)
|
246
|
+
o test suite clean up (GNUmake, BSDmake):
|
247
|
+
target "config" modified, phony without dependencies to other builds
|
248
|
+
o bugfix: GNU fastcall calling convention for float and double arguments was wrong (no skip of register)
|
249
|
+
o update: x86win32* suite tests are built on cygwin now, added total result output
|
250
|
+
o signature types change:
|
251
|
+
C Strings: 'S' -> 'Z'
|
252
|
+
long: 'l' -> 'j'
|
253
|
+
long long: 'L' -> 'l'
|
254
|
+
added unsigned integer type signature characters: upper case encoding
|
255
|
+
o added: callbacks component (support only for some platforms ATM)
|
256
|
+
o added: test cases for alloc_wx, thunk
|
257
|
+
o updated Documentation
|
258
|
+
|
259
|
+
Version 0.3 (2009/01/17)
|
260
|
+
o added Linux PPC32 support
|
261
|
+
o added ARM THUMB mode support
|
262
|
+
o cosmetic changes, documentation updated
|
263
|
+
o bugfix: on cygwin exported C symbols in GNU as are prefixed with '_' now.
|
264
|
+
o removed scons build support
|
265
|
+
|
266
|
+
Version 0.2 (2008/05/18)
|
267
|
+
o added scons build support
|
268
|
+
o configure variables all prefix CONFIG_* now
|
269
|
+
o configure variable INSTALL_DIR changed to INSTALL_PREFIX
|
270
|
+
o configure (shell version) option "--prefix" changed to "--prefix=<path>"
|
271
|
+
|
272
|
+
Version 0.1 (2008/01/23)
|
273
|
+
o initial release
|
274
|
+
|
data/dyncall/LICENSE
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
If not stated otherwise inside a file, all files here are distributed in
|
2
2
|
terms of:
|
3
3
|
|
4
|
-
Copyright (c) 2007-
|
4
|
+
Copyright (c) 2007-2020 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
|
data/dyncall/README
CHANGED
@@ -40,12 +40,10 @@ Supported Architectures and ABIs:
|
|
40
40
|
|
41
41
|
- x86 32/64-bit (cdecl, fastcall, stdcall, C++ this calls, syscalls, plan9)
|
42
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)
|
43
|
+
- MIPS 32/64-bit (o32, n64, eabi, with o32 and n64 for soft- and hardfloat)
|
44
44
|
- PowerPC 32/64-bit (32: Mac OS X, System V; 64: System V little and big endian ELF ABI)
|
45
45
|
- Sparc 32/64-bit (v7/8 and v9)
|
46
46
|
|
47
|
-
NOTE: Callback support is currently available on
|
48
|
-
x86-32/64, arm32 softfloat ABIs, arm64, PPC64 and PPC32 Linux/OS X.
|
49
47
|
|
50
48
|
Supported Operating Systems:
|
51
49
|
----------------------------
|
@@ -117,6 +115,6 @@ Make sure pdflatex is installed and run
|
|
117
115
|
$ make docs
|
118
116
|
|
119
117
|
|
120
|
-
Please refer to http://www.dyncall.org, dyncall(3), dyncallback(3),
|
121
|
-
manual and platform-specific READMEs under doc/ for more information.
|
118
|
+
Please refer to http://www.dyncall.org, dyncall(3), dyncallback(3), dynload(3),
|
119
|
+
the dyncall manual and platform-specific READMEs under doc/ for more information.
|
122
120
|
|
data/dyncall/ToDo
CHANGED
@@ -1,5 +1,18 @@
|
|
1
|
-
1.
|
1
|
+
1.2:
|
2
2
|
----
|
3
|
+
- test atpcs thumb on arm and verify if ellipse and C++ thiscalls work, if so adapt doc appendix
|
4
|
+
- test eabi thumb on arm and verify if ellipse and C++ thiscalls work, if so adapt doc appendix
|
5
|
+
- new platform matrix
|
6
|
+
* check dark green cells and validate in general
|
7
|
+
|
8
|
+
- openbsd-4.0-* test/resolve_self fails, but unsure why. dlopen correctly returns RTLD_DEFAULT, which
|
9
|
+
should lookup via dlsym the function in the object itself, but cannot. So... some compiler flag might
|
10
|
+
be missing to keep symbol names, or some prefixing happens
|
11
|
+
- dyncall/dyncall_call*h could probably be all removed, as forward declarations in corresponding .c
|
12
|
+
files would be enough; no headers are needed b/c those functions declared in there are of no public use
|
13
|
+
- test/thunk win/x64 doesn't output anything decent for stack test (neither sigsegv nor output), which can create a problem for test log file as it'll mess with the subsequent test's output)
|
14
|
+
- remove test/gen-masm alltogether
|
15
|
+
- test code: add sparc tests for when out of register windows, meaning multiple layers deep in the call stack
|
3
16
|
- ./configure on macOS does not pass CFLAGS etc.. to Makefile.config
|
4
17
|
- support platforms without shared libraries so they can be built by just typing `./configure;make` (e.g. minix < 3.2.1)
|
5
18
|
* also make sure minix with shared library support builds and works in general (>= 3.2.1) as well as ELF on Minix (>= 3.2.0) to begin with (as that's the base, and we only test on 3.1.8 so far)
|
@@ -10,7 +23,7 @@
|
|
10
23
|
|
11
24
|
- dyncallback's "stack_cleanup" can be removed from non x86 impls... test if they still work
|
12
25
|
- target a minimum c version, for use with -pedantic, etc.? Right now we use e.g. extensions
|
13
|
-
for anon structs, etc.
|
26
|
+
for anon structs, etc. -> we do now target c99
|
14
27
|
- the CallVM-free functions are per VTable, however the latter can be changed out
|
15
28
|
at runtime... which basically changes potentially the deallocator...
|
16
29
|
same goes for functions setting the mode. think about how to make this safer - currently
|
@@ -43,8 +56,8 @@
|
|
43
56
|
be used to test dycnall bindings
|
44
57
|
- pkg-config support?
|
45
58
|
- quadmath support (long double)
|
46
|
-
- add tests using alloca(), as this might depend on the frame pointer being correctly
|
47
|
-
|
59
|
+
- add tests using alloca(), as this might depend on the frame pointer being correctly set (we don't
|
60
|
+
check for this, currently, at all - but might not affect dyncall's stubs, anyways) - verify
|
48
61
|
|
49
62
|
portasm:
|
50
63
|
--------
|
@@ -63,14 +76,11 @@ dyncall:
|
|
63
76
|
- consider automatic type-promotion for arguments passed through DC_CALL_C_ELLIPSIS_VARARGS;
|
64
77
|
this would make it easier to just pass arguments instead of having to know about the C
|
65
78
|
type promotions (this is partly done, see todo-item above under 1.1)
|
66
|
-
- syscalls for x64
|
67
|
-
* bsd
|
68
|
-
* linux
|
69
79
|
- other syscalls
|
70
|
-
- MIPS32 softfloat support (-msoft-float)
|
71
80
|
- test MIPS32 eabi big endian (current port works on psp, which is little endian)
|
72
81
|
- implement MIPS64 N32 (gcc -mabi=n32); both, little and big-endian (looks like NetNBSD on and
|
73
82
|
EdgeRouter lite uses this: https://blog.netbsd.org/tnf/entry/hands_on_experience_with_edgerouter)
|
83
|
+
- MIPS64 n32 softfloat support (-msoft-float)
|
74
84
|
- implement MIPS64 EABI (gcc -mabi=eabi); both, little and big-endian
|
75
85
|
- support for Minix/arm
|
76
86
|
- improve ellipsis test:
|
@@ -80,10 +90,8 @@ dyncall:
|
|
80
90
|
|
81
91
|
dynload:
|
82
92
|
--------
|
83
|
-
- RTLD_LAZY in darwin, why not in unix?
|
84
93
|
- dlGetLibraryPath: dl_iterate_phdr() used on OpenBSD, but not available on version < 3.7
|
85
94
|
- bug: test/nm crashes on qemu mips linux o32 debian etch
|
86
|
-
- test/resolve_self crashes/asserts on windows and bsds
|
87
95
|
- rename SymsInit to InitSyms and similar for cleanup function to reflect naming
|
88
96
|
in dyncall
|
89
97
|
- get rid of Dl_info and friends (_GNU_SOURCE) in dynload/dynload_syms_elf.c
|
@@ -110,11 +118,10 @@ dyncallback:
|
|
110
118
|
- callback_plain's return value not correct anymore on NDS (maybe just broken testcode?),
|
111
119
|
see above under 1.1 items
|
112
120
|
* check other platforms also, if asm stub initializes retval space, correctly
|
113
|
-
- finish PPC32 callbacks (see bugs section, below, BSD not working)
|
114
|
-
- MIPS32 softfloat support (-msoft-float)
|
115
121
|
- test MIPS32 eabi big endian (current port works on psp, which is little endian)
|
116
122
|
- implement MIPS64 N32 (gcc -mabi=n32); both, little and big-endian (looks like NetNBSD on and
|
117
123
|
EdgeRouter lite uses this: https://blog.netbsd.org/tnf/entry/hands_on_experience_with_edgerouter)
|
124
|
+
- MIPS64 n32 softfloat support (-msoft-float)
|
118
125
|
- implement MIPS64 EABI (gcc -mabi=eabi); both, little and big-endian
|
119
126
|
- support for Minix/arm
|
120
127
|
|
@@ -135,11 +142,9 @@ bindings:
|
|
135
142
|
manual:
|
136
143
|
-------
|
137
144
|
- introduce doc overview tables and common vocab for calling convention specifics, following example of table on page 13 of https://www.linux-mips.org/pub/linux/mips/doc/ABI/MIPS-N32-ABI-Handbook.pdf; also as inspiration, e.g. user 'preserved' instead of 'permanent', etc. https://developer.apple.com/library/content/documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARMv6FunctionCallingConventions.html#//apple_ref/doc/uid/TP40009021-SW4
|
145
|
+
* also, get inspiration for naming for GCC predefs as talked about in https://stffrdhrn.github.io/software/embedded/openrisc/2018/06/08/gcc_stack_frames.html
|
138
146
|
- make stack layout diagrams better, e.g. add grow direction (example: https://developer.apple.com/library/content/documentation/Xcode/Conceptual/iPhoneOSABIReference/art/arm_stack.jpg on https://developer.apple.com/library/content/documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARMv6FunctionCallingConventions.html#//apple_ref/doc/uid/TP40009021-SW1)
|
139
|
-
|
140
|
-
* good idea to review it all, anyways, if the calling conventions are actually
|
141
|
-
represented correctly (and if they are in sync with the .pdf, we used to have
|
142
|
-
problems with multirow.4ht)
|
147
|
+
* another example, chapter 3 of: ftp://www.sourceware.org/pub/binutils/ppc-docs/ppc-poweropen/
|
143
148
|
- provide more examples on how to use dyncall, dynload and dyncallback
|
144
149
|
* e.g. enhance manual with a couple of examples (e.g. calling MessageBoxA on windows, etc.)
|
145
150
|
- manuals for bindings (as stated in bindings-section, above)
|
@@ -152,7 +157,6 @@ regressions:
|
|
152
157
|
on default installations (one has to install the system headers)
|
153
158
|
* add to doc
|
154
159
|
- Solaris/gmake build doesn't build dynload and tests anymore (maybe not even dyncallback)
|
155
|
-
- test arm32/ATPCS/THUMB (and then change Status in doc Appendix)
|
156
160
|
- look over code and fix TODO or @@@ marks
|
157
161
|
- add ppc-support to doc (both, 32 and 64, as well as little and big endian remarks)
|
158
162
|
|
@@ -162,7 +166,12 @@ nice to have:
|
|
162
166
|
- consistency: on x64 platforms: make both ABIs available ('win64','sysv') for all x64 OS ports
|
163
167
|
- microsoft build enhancement: autodetect assembly via C preprocessor (like with .S gcc files)
|
164
168
|
- test/thunk: some platforms do not allow for allocation of executable code on heap and stack --
|
165
|
-
currently this test will
|
169
|
+
currently this test will segfault (handled), maybe we should collect information which platforms allow and which not.
|
170
|
+
- PSP
|
171
|
+
- automate ppsspp stuff, seems to print to stdout for callback_suite? but not for call_suite.. (?)
|
172
|
+
- fix link with dummy versions of the following for test-bins:
|
173
|
+
void __stack_chk_fail(){}
|
174
|
+
void __stack_chk_guard(){}
|
166
175
|
|
167
176
|
bugs:
|
168
177
|
-----
|