annotate ToDo @ 457:90b1d927912a

- suite_aggrs: make sure random memory used doesn't ever result in NaN fp values (for every possible address), as this messes with result comparison
author Tassilo Philipp
date Fri, 28 Jan 2022 14:11:21 +0100
parents 13475895a79b
children b42cee4358fc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
420
13475895a79b - prep for 1.3 release, version number bump, etc.
Tassilo Philipp
parents: 414
diff changeset
1 1.4:
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
2 ----
364
3bdd326dc269 - Todo entries
Tassilo Philipp
parents: 355
diff changeset
3 - test atpcs thumb on arm and verify if ellipsis and C++ thiscalls work, if so adapt doc appendix
3bdd326dc269 - Todo entries
Tassilo Philipp
parents: 355
diff changeset
4 - test eabi thumb on arm and verify if ellipsis and C++ thiscalls work, if so adapt doc appendix
3bdd326dc269 - Todo entries
Tassilo Philipp
parents: 355
diff changeset
5 - new platform matrix
3bdd326dc269 - Todo entries
Tassilo Philipp
parents: 355
diff changeset
6 * check dark green cells and validate in general
355
5ac53b2d5f1e - changelog and todo prep for upcoming 1.2
Tassilo Philipp
parents: 339
diff changeset
7 - openbsd-4.0-* test/resolve_self fails, but unsure why. dlopen correctly returns RTLD_DEFAULT, which
5ac53b2d5f1e - changelog and todo prep for upcoming 1.2
Tassilo Philipp
parents: 339
diff changeset
8 should lookup via dlsym the function in the object itself, but cannot. So... some compiler flag might
5ac53b2d5f1e - changelog and todo prep for upcoming 1.2
Tassilo Philipp
parents: 339
diff changeset
9 be missing to keep symbol names, or some prefixing happens
5ac53b2d5f1e - changelog and todo prep for upcoming 1.2
Tassilo Philipp
parents: 339
diff changeset
10 - 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)
5ac53b2d5f1e - changelog and todo prep for upcoming 1.2
Tassilo Philipp
parents: 339
diff changeset
11 - remove test/gen-masm alltogether
329
8b0fc583ce62 - tex formatting fix
Tassilo Philipp
parents: 306
diff changeset
12 - test code: add sparc tests for when out of register windows, meaning multiple layers deep in the call stack
286
Tassilo Philipp
parents: 284
diff changeset
13 - ./configure on macOS does not pass CFLAGS etc.. to Makefile.config
256
7520e2260097 - added to configure some detection on how to compile .s/.S with --noexecstack (or similar), as compilers' defaults are often insane
Tassilo Philipp
parents: 250
diff changeset
14 - support platforms without shared libraries so they can be built by just typing `./configure;make` (e.g. minix < 3.2.1)
7520e2260097 - added to configure some detection on how to compile .s/.S with --noexecstack (or similar), as compilers' defaults are often insane
Tassilo Philipp
parents: 250
diff changeset
15 * 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)
201
136409adbdd1 - todo update
Tassilo Philipp
parents: 169
diff changeset
16 - dyncall supports calls to functions where prototype exists (with and without varargs); however not when no
136409adbdd1 - todo update
Tassilo Philipp
parents: 169
diff changeset
17 prototype exist (e.g. just calling some pointer), without any declaration... even possible in C, as one has
136409adbdd1 - todo update
Tassilo Philipp
parents: 169
diff changeset
18 to cast to the function type? need to support?
155
bbefb8b8e74c - sparc32 thunk code
cslag
parents: 146
diff changeset
19 - dyncallback's "stack_cleanup" can be removed from non x86 impls... test if they still work
165
572aff021627 - file name/layout cleanup, removed "-att" from x64 .S filenames, as unnecessary and also misleading
cslag
parents: 159
diff changeset
20 - target a minimum c version, for use with -pedantic, etc.? Right now we use e.g. extensions
329
8b0fc583ce62 - tex formatting fix
Tassilo Philipp
parents: 306
diff changeset
21 for anon structs, etc. -> we do now target c99
86
0c8535820000 - todo cleanup
cslag
parents: 85
diff changeset
22 - the CallVM-free functions are per VTable, however the latter can be changed out
0c8535820000 - todo cleanup
cslag
parents: 85
diff changeset
23 at runtime... which basically changes potentially the deallocator...
0c8535820000 - todo cleanup
cslag
parents: 85
diff changeset
24 same goes for functions setting the mode. think about how to make this safer - currently
0c8535820000 - todo cleanup
cslag
parents: 85
diff changeset
25 we have a higher flexibility and we need to potentially clean up from the mode we are in,
0c8535820000 - todo cleanup
cslag
parents: 85
diff changeset
26 however, this is open to misuse
78
d4114b708bd4 - todo entry
cslag
parents: 69
diff changeset
27 - check all vararg calling conv implementations if they promote correctly
d4114b708bd4 - todo entry
cslag
parents: 69
diff changeset
28 (e.g. float to double); we used to not care as it was the user's job to
d4114b708bd4 - todo entry
cslag
parents: 69
diff changeset
29 think of that, but we allow users to use ArgFloat, etc. on "..." now,
d4114b708bd4 - todo entry
cslag
parents: 69
diff changeset
30 taking care of the promotion; so it should be consistent all across the
d4114b708bd4 - todo entry
cslag
parents: 69
diff changeset
31 implementations -> also write testcode specifically for that
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
32 - autovar was never really pushed all the way through and still plays second
9
cslag
parents: 6
diff changeset
33 fiddle to dyncall_macros.h, clean this all up, eventually (Tassilo: for now, I
cslag
parents: 6
diff changeset
34 removed out of sync files to avoid confusion; but still probably duped code)
69
43675cb378ce - work on html doc generation
cslag
parents: 68
diff changeset
35 - add portable "make install"
43675cb378ce - work on html doc generation
cslag
parents: 68
diff changeset
36 * make install should also install manpages
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
37 - fix for NDS:
69
43675cb378ce - work on html doc generation
cslag
parents: 68
diff changeset
38 * ARM:
104
dbca6763f2be - complete, working mips o32 callback (using hardware fp); fixes error from last commit, which ignored first 2 float args
cslag
parents: 100
diff changeset
39 - callback_plain retval wrong (not only platform), area on stack where
dbca6763f2be - complete, working mips o32 callback (using hardware fp); fixes error from last commit, which ignored first 2 float args
cslag
parents: 100
diff changeset
40 it's stored is probably not zeroed, so half-words, etc., come with garbage
69
43675cb378ce - work on html doc generation
cslag
parents: 68
diff changeset
41 * THUMB:
43675cb378ce - work on html doc generation
cslag
parents: 68
diff changeset
42 - ellipsis (might be test itself, not respecting fixed part of args)
104
dbca6763f2be - complete, working mips o32 callback (using hardware fp); fixes error from last commit, which ignored first 2 float args
cslag
parents: 100
diff changeset
43 - callback_plain retval, see above under ARM
69
43675cb378ce - work on html doc generation
cslag
parents: 68
diff changeset
44 - callf
24
d9c707a699d9 - note about selinux support for 1.0 added to ToDo
cslag
parents: 23
diff changeset
45 - support Solaris11 CFLAGS with -D_FILE_OFFSET_BITS=64
256
7520e2260097 - added to configure some detection on how to compile .s/.S with --noexecstack (or similar), as compilers' defaults are often insane
Tassilo Philipp
parents: 250
diff changeset
46 - make sure selinux works (esp. regarding NX bits)
54
1ba2f70f80b8 - todo update
cslag
parents: 42
diff changeset
47 Daniel has a patch for it, if needed, implementing allocwx with two memory blocks, one for w^x, mmaped to one for r|x
68
b36a2fe30602 - cleanup
cslag
parents: 54
diff changeset
48 - support /SAFESEH on cl/win32
370
fa78490381f3 todo update
Tassilo Philipp
parents: 366
diff changeset
49 - test code functions should be in .so files, optionally, so the suites can directly be used to test dyncall bindings
83
54930a037e8a - PPC64 single-precision float fixes for more than 13 float args (thanks Masanori!)
cslag
parents: 78
diff changeset
50 - pkg-config support?
329
8b0fc583ce62 - tex formatting fix
Tassilo Philipp
parents: 306
diff changeset
51 - add tests using alloca(), as this might depend on the frame pointer being correctly set (we don't
8b0fc583ce62 - tex formatting fix
Tassilo Philipp
parents: 306
diff changeset
52 check for this, currently, at all - but might not affect dyncall's stubs, anyways) - verify
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
53
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
54 portasm:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
55 --------
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
56 - add solaris support for x64
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
57
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
58 dyncall:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
59 --------
370
fa78490381f3 todo update
Tassilo Philipp
parents: 366
diff changeset
60 - dyncall sparc v7/v8: -xO3 on SunPro segfaults in tests (observed years ago)
364
3bdd326dc269 - Todo entries
Tassilo Philipp
parents: 355
diff changeset
61 - callbacks and use of CC signature characters (only x86 has any support for different CCs for callbacks):
3bdd326dc269 - Todo entries
Tassilo Philipp
parents: 355
diff changeset
62 * support for arm (arm/thumb on same platform)
3bdd326dc269 - Todo entries
Tassilo Philipp
parents: 355
diff changeset
63 * check if ellipsis support is needed (is there any need for calling back into an ellipse function?)
3bdd326dc269 - Todo entries
Tassilo Philipp
parents: 355
diff changeset
64 * check if syscalls support is needed (is there any need for calling back into a syscall?)
3bdd326dc269 - Todo entries
Tassilo Philipp
parents: 355
diff changeset
65 - think about using 'inline' for all/most dyncall_api.c functions?
3bdd326dc269 - Todo entries
Tassilo Philipp
parents: 355
diff changeset
66 - support for where syscalls originate from on OpenBSD: http://undeadly.org/cgi?action=article;sid=20191202105849
288
8d9629a078e4 - merged separate ToDo files, cleanups
Tassilo Philipp
parents: 286
diff changeset
67 - merge arm32_thumb_{gas/apple} and include thumb support for portasm
8d9629a078e4 - merged separate ToDo files, cleanups
Tassilo Philipp
parents: 286
diff changeset
68 - x64 verification: return values are passed via RAX and RDX, and XMM0 and XMM1.
146
0ab08c1541f0 - fixed armhf ellipsis calls, were ignoring spill area
cslag
parents: 145
diff changeset
69 - find big endian arm box (also hardfloat), e.g. cubietruck: http://blog.netbsd.org/tnf/entry/working_arm_multiprocessor_support
0ab08c1541f0 - fixed armhf ellipsis calls, were ignoring spill area
cslag
parents: 145
diff changeset
70 - test if armhf/thumb is actually working... pulls in arm mode code in dyncall_callvm.c
0ab08c1541f0 - fixed armhf ellipsis calls, were ignoring spill area
cslag
parents: 145
diff changeset
71 - dyncall_call_mips_n32.h and dyncall_call_mips_n64.h are pretty much the same, share code
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
72 - support for return values: aggregate return values
370
fa78490381f3 todo update
Tassilo Philipp
parents: 366
diff changeset
73 - support for argument values: structures, half-precision, vector types, long double (c89)
fa78490381f3 todo update
Tassilo Philipp
parents: 366
diff changeset
74 - support for argument values: _Complex (c99)
fa78490381f3 todo update
Tassilo Philipp
parents: 366
diff changeset
75 - support for argument values: Fixed-width integer types (c99) - could be just aliases but would help abstracting it away from library users
288
8d9629a078e4 - merged separate ToDo files, cleanups
Tassilo Philipp
parents: 286
diff changeset
76 * make sure that struct support for ellipsis calls are not forgotten (copy everything by value)
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
77 - consider automatic type-promotion for arguments passed through DC_CALL_C_ELLIPSIS_VARARGS;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
78 this would make it easier to just pass arguments instead of having to know about the C
278
dfc6f1736141 - prep for 1.0 release
Tassilo Philipp
parents: 256
diff changeset
79 type promotions (this is partly done, see todo-item above under 1.1)
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
80 - other syscalls
135
fcbec299b736 - todo/changelog update
cslag
parents: 132
diff changeset
81 - test MIPS32 eabi big endian (current port works on psp, which is little endian)
132
b0cca984c740 - manual update, started splitting platform overview in EP and EL for some platforms
cslag
parents: 129
diff changeset
82 - implement MIPS64 N32 (gcc -mabi=n32); both, little and big-endian (looks like NetNBSD on and
b0cca984c740 - manual update, started splitting platform overview in EP and EL for some platforms
cslag
parents: 129
diff changeset
83 EdgeRouter lite uses this: https://blog.netbsd.org/tnf/entry/hands_on_experience_with_edgerouter)
306
9f2aff560fa7 - todo update reflecting mips softfloat status more precisely (as only lacking for mips64/n32 callconv)
Tassilo Philipp
parents: 295
diff changeset
84 - MIPS64 n32 softfloat support (-msoft-float)
129
a130676d0ceb - todo update
cslag
parents: 128
diff changeset
85 - implement MIPS64 EABI (gcc -mabi=eabi); both, little and big-endian
141
e63089fe5bef - todo update
cslag
parents: 135
diff changeset
86 - support for Minix/arm
146
0ab08c1541f0 - fixed armhf ellipsis calls, were ignoring spill area
cslag
parents: 145
diff changeset
87 - improve ellipsis test:
0ab08c1541f0 - fixed armhf ellipsis calls, were ignoring spill area
cslag
parents: 145
diff changeset
88 * test not just with one fixed arg, to also simulate alignment problems
0ab08c1541f0 - fixed armhf ellipsis calls, were ignoring spill area
cslag
parents: 145
diff changeset
89 * test return values
0ab08c1541f0 - fixed armhf ellipsis calls, were ignoring spill area
cslag
parents: 145
diff changeset
90 * convert from c++ to c, to have it also on plan9, and more portability
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
91
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
92 dynload:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
93 --------
366
ad5f9803f52f - removal of some unnecessary headers that only contained internally used forward declarations, so no need to have them
Tassilo Philipp
parents: 364
diff changeset
94 - investigate issue where if dlGetLibraryPath() is called from within a .so,
ad5f9803f52f - removal of some unnecessary headers that only contained internally used forward declarations, so no need to have them
Tassilo Philipp
parents: 364
diff changeset
95 passing NULL will return .so name, whereas passing result of
ad5f9803f52f - removal of some unnecessary headers that only contained internally used forward declarations, so no need to have them
Tassilo Philipp
parents: 364
diff changeset
96 dlLoadLibrary(NULL) returns process' name
244
Tassilo Philipp
parents: 201
diff changeset
97 - dlGetLibraryPath: dl_iterate_phdr() used on OpenBSD, but not available on version < 3.7
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
98 - bug: test/nm crashes on qemu mips linux o32 debian etch
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
99 - rename SymsInit to InitSyms and similar for cleanup function to reflect naming
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
100 in dyncall
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
101 - get rid of Dl_info and friends (_GNU_SOURCE) in dynload/dynload_syms_elf.c
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
102 for implementation of dlSymsNameFromValue(..)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
103 - check if PSP can support dynload (missing elf.h, dlfcn.h, etc.); fixup readme if successful
84
67961454902b - bigger cleanup in callvm code
cslag
parents: 83
diff changeset
104 - some functionality like java's System.mapLibraryName('name') might be helpful?
288
8d9629a078e4 - merged separate ToDo files, cleanups
Tassilo Philipp
parents: 286
diff changeset
105 - Failed On Open Solaris 11:
8d9629a078e4 - merged separate ToDo files, cleanups
Tassilo Philipp
parents: 286
diff changeset
106 In file included from dynload_syms.c:28:
8d9629a078e4 - merged separate ToDo files, cleanups
Tassilo Philipp
parents: 286
diff changeset
107 dynload_syms_elf.c:56: error: syntax error before "Elf_Dyn"
8d9629a078e4 - merged separate ToDo files, cleanups
Tassilo Philipp
parents: 286
diff changeset
108 dynload_syms_elf.c:56: warning: data definition has no type or storage class
8d9629a078e4 - merged separate ToDo files, cleanups
Tassilo Philipp
parents: 286
diff changeset
109 dynload_syms_elf.c: In function `dlSymsInit':
8d9629a078e4 - merged separate ToDo files, cleanups
Tassilo Philipp
parents: 286
diff changeset
110 dynload_syms_elf.c:155: error: `pDyn' undeclared (first use in this function)
8d9629a078e4 - merged separate ToDo files, cleanups
Tassilo Philipp
parents: 286
diff changeset
111 dynload_syms_elf.c:155: error: (Each undeclared identifier is reported only once
8d9629a078e4 - merged separate ToDo files, cleanups
Tassilo Philipp
parents: 286
diff changeset
112 dynload_syms_elf.c:155: error: for each function it appears in.)
8d9629a078e4 - merged separate ToDo files, cleanups
Tassilo Philipp
parents: 286
diff changeset
113 dynload_syms_elf.c:155: error: syntax error before ')' token
8d9629a078e4 - merged separate ToDo files, cleanups
Tassilo Philipp
parents: 286
diff changeset
114 dynload_syms_elf.c:160: error: `DT_NULL' undeclared (first use in this function)
8d9629a078e4 - merged separate ToDo files, cleanups
Tassilo Philipp
parents: 286
diff changeset
115 dynload_syms_elf.c:163: error: `DT_STRTAB' undeclared (first use in this function)
8d9629a078e4 - merged separate ToDo files, cleanups
Tassilo Philipp
parents: 286
diff changeset
116 dynload_syms_elf.c:164: error: `DT_SYMTAB' undeclared (first use in this function)
8d9629a078e4 - merged separate ToDo files, cleanups
Tassilo Philipp
parents: 286
diff changeset
117 dynload_syms_elf.c:165: error: `DT_HASH' undeclared (first use in this function)
8d9629a078e4 - merged separate ToDo files, cleanups
Tassilo Philipp
parents: 286
diff changeset
118 make: *** [dynload_syms.o] Error 1
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
119
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
120 dyncallback:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
121 ------------
104
dbca6763f2be - complete, working mips o32 callback (using hardware fp); fixes error from last commit, which ignored first 2 float args
cslag
parents: 100
diff changeset
122 - callback_plain's return value not correct anymore on NDS (maybe just broken testcode?),
278
dfc6f1736141 - prep for 1.0 release
Tassilo Philipp
parents: 256
diff changeset
123 see above under 1.1 items
104
dbca6763f2be - complete, working mips o32 callback (using hardware fp); fixes error from last commit, which ignored first 2 float args
cslag
parents: 100
diff changeset
124 * check other platforms also, if asm stub initializes retval space, correctly
135
fcbec299b736 - todo/changelog update
cslag
parents: 132
diff changeset
125 - test MIPS32 eabi big endian (current port works on psp, which is little endian)
132
b0cca984c740 - manual update, started splitting platform overview in EP and EL for some platforms
cslag
parents: 129
diff changeset
126 - implement MIPS64 N32 (gcc -mabi=n32); both, little and big-endian (looks like NetNBSD on and
b0cca984c740 - manual update, started splitting platform overview in EP and EL for some platforms
cslag
parents: 129
diff changeset
127 EdgeRouter lite uses this: https://blog.netbsd.org/tnf/entry/hands_on_experience_with_edgerouter)
306
9f2aff560fa7 - todo update reflecting mips softfloat status more precisely (as only lacking for mips64/n32 callconv)
Tassilo Philipp
parents: 295
diff changeset
128 - MIPS64 n32 softfloat support (-msoft-float)
129
a130676d0ceb - todo update
cslag
parents: 128
diff changeset
129 - implement MIPS64 EABI (gcc -mabi=eabi); both, little and big-endian
141
e63089fe5bef - todo update
cslag
parents: 135
diff changeset
130 - support for Minix/arm
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
131
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
132 bindings:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
133 ---------
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
134 - release bindings as standalone packages (already done for rbdc as a gem and rdyncall on cran)
366
ad5f9803f52f - removal of some unnecessary headers that only contained internally used forward declarations, so no need to have them
Tassilo Philipp
parents: 364
diff changeset
135 * add note to documentation, where bindings are
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
136 - add rdoc documentation to ruby gem
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
137 - add pydoc for python
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
138 - add manpage for shdc
366
ad5f9803f52f - removal of some unnecessary headers that only contained internally used forward declarations, so no need to have them
Tassilo Philipp
parents: 364
diff changeset
139 - expose callf-convenience functions to godc
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
140 - add godoc for godc
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
141 - add javadoc to java
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
142 - add more bindings
414
49b669422ad8 - introducing version number
Tassilo Philipp
parents: 393
diff changeset
143 - add callback support for erlang, go, java, lua and ruby (and shell? how?)
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
144 - add call-conv-mode-support for rbdc through signature
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
145
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
146 manual:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
147 -------
366
ad5f9803f52f - removal of some unnecessary headers that only contained internally used forward declarations, so no need to have them
Tassilo Philipp
parents: 364
diff changeset
148 - introduce doc overview tables and common vocab for calling convention specifics, following example of table on page 13 of
ad5f9803f52f - removal of some unnecessary headers that only contained internally used forward declarations, so no need to have them
Tassilo Philipp
parents: 364
diff changeset
149 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.
ad5f9803f52f - removal of some unnecessary headers that only contained internally used forward declarations, so no need to have them
Tassilo Philipp
parents: 364
diff changeset
150 https://developer.apple.com/library/content/documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARMv6FunctionCallingConventions.html#//apple_ref/doc/uid/TP40009021-SW4
329
8b0fc583ce62 - tex formatting fix
Tassilo Philipp
parents: 306
diff changeset
151 * 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
201
136409adbdd1 - todo update
Tassilo Philipp
parents: 169
diff changeset
152 - 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)
332
73c528d2cd4d - todo and changelog update
Tassilo Philipp
parents: 329
diff changeset
153 * another example, chapter 3 of: ftp://www.sourceware.org/pub/binutils/ppc-docs/ppc-poweropen/
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
154 - provide more examples on how to use dyncall, dynload and dyncallback
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
155 * e.g. enhance manual with a couple of examples (e.g. calling MessageBoxA on windows, etc.)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
156 - manuals for bindings (as stated in bindings-section, above)
117
4a64b733dc76 - doc, added first version of mips64 callconv page
cslag
parents: 116
diff changeset
157 - under "dyncall support", in each calling convention appendix, list crucial details of e.g. big/little endian support, etc.
4a64b733dc76 - doc, added first version of mips64 callconv page
cslag
parents: 116
diff changeset
158 - specify integer models in use, use common ILP32, LLP64, etc. terms
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
159
88
82a0eef83db0 - cosmetics
cslag
parents: 86
diff changeset
160 regressions:
82a0eef83db0 - cosmetics
cslag
parents: 86
diff changeset
161 ------------
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
162 - Solaris/gmake build doesn't build dynload and tests anymore (maybe not even dyncallback)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
163 - look over code and fix TODO or @@@ marks
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
164
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
165 nice to have:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
166 -------------
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
167 - update: microsoft visual c++ build files - integrate all test suites in solution file
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
168 - consistency: on x64 platforms: make both ABIs available ('win64','sysv') for all x64 OS ports
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
169 - microsoft build enhancement: autodetect assembly via C preprocessor (like with .S gcc files)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
170 - test/thunk: some platforms do not allow for allocation of executable code on heap and stack --
329
8b0fc583ce62 - tex formatting fix
Tassilo Philipp
parents: 306
diff changeset
171 currently this test will segfault (handled), maybe we should collect information which platforms allow and which not.
8b0fc583ce62 - tex formatting fix
Tassilo Philipp
parents: 306
diff changeset
172 - PSP
8b0fc583ce62 - tex formatting fix
Tassilo Philipp
parents: 306
diff changeset
173 - automate ppsspp stuff, seems to print to stdout for callback_suite? but not for call_suite.. (?)
8b0fc583ce62 - tex formatting fix
Tassilo Philipp
parents: 306
diff changeset
174 - fix link with dummy versions of the following for test-bins:
8b0fc583ce62 - tex formatting fix
Tassilo Philipp
parents: 306
diff changeset
175 void __stack_chk_fail(){}
8b0fc583ce62 - tex formatting fix
Tassilo Philipp
parents: 306
diff changeset
176 void __stack_chk_guard(){}
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
177
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
178 bugs:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
179 -----
88
82a0eef83db0 - cosmetics
cslag
parents: 86
diff changeset
180 - setting callconv, specifically for platforms that have only one (default)) excepts on some
6
cslag
parents: 0
diff changeset
181 platforms, eg. setting X64_sysv on amd64/Linux - keeping cdecl which is the same in
88
82a0eef83db0 - cosmetics
cslag
parents: 86
diff changeset
182 this case, works (this should work now...)
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
183 - vararg function calls don't work for ARM THUMB mode (Daniel's new interface for modesetting for varag
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
184 args should be used); adapt test/ellipsis and/or retest
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
185
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
186 missing implementations (descending priority):
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
187 ----------------------------------------------
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
188 - riscv
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
189 - itanium
88
82a0eef83db0 - cosmetics
cslag
parents: 86
diff changeset
190 - superh/j-core
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
191 - 68k, 88k, 6502, etc.
88
82a0eef83db0 - cosmetics
cslag
parents: 86
diff changeset
192 - arc
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
193 - alpha
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
194 - cell
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
195 - blackfin
88
82a0eef83db0 - cosmetics
cslag
parents: 86
diff changeset
196 - seaforth
21
39d570758588 - cleanups in changelog and todo
cslag
parents: 19
diff changeset
197 - s/390
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
198 - z80
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
199 - hppa
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
200 - vax
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
201 - atmel avr
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
202 - propeller
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
203 - amd29k
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
204