comparison ToDo @ 329:8b0fc583ce62

- tex formatting fix - ToDo list cleanup
author Tassilo Philipp
date Fri, 22 Nov 2019 23:23:14 +0100
parents 9f2aff560fa7
children 73c528d2cd4d
comparison
equal deleted inserted replaced
328:276eb8c87aa0 329:8b0fc583ce62
1 1.1: 1 1.1:
2 ---- 2 ----
3 - plain_cpp only supports windows; fix 3 - test code: add sparc tests for when out of register windows, meaning multiple layers deep in the call stack
4 - ./configure on macOS does not pass CFLAGS etc.. to Makefile.config 4 - ./configure on macOS does not pass CFLAGS etc.. to Makefile.config
5 - support platforms without shared libraries so they can be built by just typing `./configure;make` (e.g. minix < 3.2.1) 5 - support platforms without shared libraries so they can be built by just typing `./configure;make` (e.g. minix < 3.2.1)
6 * 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) 6 * 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)
7 - dyncall supports calls to functions where prototype exists (with and without varargs); however not when no 7 - dyncall supports calls to functions where prototype exists (with and without varargs); however not when no
8 prototype exist (e.g. just calling some pointer), without any declaration... even possible in C, as one has 8 prototype exist (e.g. just calling some pointer), without any declaration... even possible in C, as one has
9 to cast to the function type? need to support? 9 to cast to the function type? need to support?
10 10
11 11
12 - dyncallback's "stack_cleanup" can be removed from non x86 impls... test if they still work 12 - dyncallback's "stack_cleanup" can be removed from non x86 impls... test if they still work
13 - target a minimum c version, for use with -pedantic, etc.? Right now we use e.g. extensions 13 - target a minimum c version, for use with -pedantic, etc.? Right now we use e.g. extensions
14 for anon structs, etc. 14 for anon structs, etc. -> we do now target c99
15 - the CallVM-free functions are per VTable, however the latter can be changed out 15 - the CallVM-free functions are per VTable, however the latter can be changed out
16 at runtime... which basically changes potentially the deallocator... 16 at runtime... which basically changes potentially the deallocator...
17 same goes for functions setting the mode. think about how to make this safer - currently 17 same goes for functions setting the mode. think about how to make this safer - currently
18 we have a higher flexibility and we need to potentially clean up from the mode we are in, 18 we have a higher flexibility and we need to potentially clean up from the mode we are in,
19 however, this is open to misuse 19 however, this is open to misuse
23 taking care of the promotion; so it should be consistent all across the 23 taking care of the promotion; so it should be consistent all across the
24 implementations -> also write testcode specifically for that 24 implementations -> also write testcode specifically for that
25 - autovar was never really pushed all the way through and still plays second 25 - autovar was never really pushed all the way through and still plays second
26 fiddle to dyncall_macros.h, clean this all up, eventually (Tassilo: for now, I 26 fiddle to dyncall_macros.h, clean this all up, eventually (Tassilo: for now, I
27 removed out of sync files to avoid confusion; but still probably duped code) 27 removed out of sync files to avoid confusion; but still probably duped code)
28 - ppc32 callback fixes on bsd @@@
29 - add portable "make install" 28 - add portable "make install"
30 * make install should also install manpages 29 * make install should also install manpages
31 - mailing list announcements (html email?) 30 - mailing list announcements (html email?)
32 - fix for NDS: 31 - fix for NDS:
33 * ARM: 32 * ARM:
43 - support /SAFESEH on cl/win32 42 - support /SAFESEH on cl/win32
44 - test code functions should be in .so files, optionally, so the suites can directly 43 - test code functions should be in .so files, optionally, so the suites can directly
45 be used to test dycnall bindings 44 be used to test dycnall bindings
46 - pkg-config support? 45 - pkg-config support?
47 - quadmath support (long double) 46 - quadmath support (long double)
48 - add tests using alloca(), as this might depend on the frame pointer being correctly 47 - add tests using alloca(), as this might depend on the frame pointer being correctly set (we don't
49 set; we don't check for this, currently, at all 48 check for this, currently, at all - but might not affect dyncall's stubs, anyways) - verify
50 49
51 portasm: 50 portasm:
52 -------- 51 --------
53 - add solaris support for x64 52 - add solaris support for x64
54 53
80 * test return values 79 * test return values
81 * convert from c++ to c, to have it also on plan9, and more portability 80 * convert from c++ to c, to have it also on plan9, and more portability
82 81
83 dynload: 82 dynload:
84 -------- 83 --------
85 - RTLD_LAZY in darwin, why not in unix?
86 - dlGetLibraryPath: dl_iterate_phdr() used on OpenBSD, but not available on version < 3.7 84 - dlGetLibraryPath: dl_iterate_phdr() used on OpenBSD, but not available on version < 3.7
87 - bug: test/nm crashes on qemu mips linux o32 debian etch 85 - bug: test/nm crashes on qemu mips linux o32 debian etch
88 - test/resolve_self crashes/asserts on windows and bsds
89 - rename SymsInit to InitSyms and similar for cleanup function to reflect naming 86 - rename SymsInit to InitSyms and similar for cleanup function to reflect naming
90 in dyncall 87 in dyncall
91 - get rid of Dl_info and friends (_GNU_SOURCE) in dynload/dynload_syms_elf.c 88 - get rid of Dl_info and friends (_GNU_SOURCE) in dynload/dynload_syms_elf.c
92 for implementation of dlSymsNameFromValue(..) 89 for implementation of dlSymsNameFromValue(..)
93 - check if PSP can support dynload (missing elf.h, dlfcn.h, etc.); fixup readme if successful 90 - check if PSP can support dynload (missing elf.h, dlfcn.h, etc.); fixup readme if successful
110 dyncallback: 107 dyncallback:
111 ------------ 108 ------------
112 - callback_plain's return value not correct anymore on NDS (maybe just broken testcode?), 109 - callback_plain's return value not correct anymore on NDS (maybe just broken testcode?),
113 see above under 1.1 items 110 see above under 1.1 items
114 * check other platforms also, if asm stub initializes retval space, correctly 111 * check other platforms also, if asm stub initializes retval space, correctly
115 - finish PPC32 callbacks (see bugs section, below, BSD not working)
116 - test MIPS32 eabi big endian (current port works on psp, which is little endian) 112 - test MIPS32 eabi big endian (current port works on psp, which is little endian)
117 - implement MIPS64 N32 (gcc -mabi=n32); both, little and big-endian (looks like NetNBSD on and 113 - implement MIPS64 N32 (gcc -mabi=n32); both, little and big-endian (looks like NetNBSD on and
118 EdgeRouter lite uses this: https://blog.netbsd.org/tnf/entry/hands_on_experience_with_edgerouter) 114 EdgeRouter lite uses this: https://blog.netbsd.org/tnf/entry/hands_on_experience_with_edgerouter)
119 - MIPS64 n32 softfloat support (-msoft-float) 115 - MIPS64 n32 softfloat support (-msoft-float)
120 - implement MIPS64 EABI (gcc -mabi=eabi); both, little and big-endian 116 - implement MIPS64 EABI (gcc -mabi=eabi); both, little and big-endian
135 - add call-conv-mode-support for rbdc through signature 131 - add call-conv-mode-support for rbdc through signature
136 132
137 manual: 133 manual:
138 ------- 134 -------
139 - 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 135 - 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
136 * 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
140 - 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) 137 - 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)
141 - callconv diagrams:
142 * good idea to review it all, anyways, if the calling conventions are actually
143 represented correctly (and if they are in sync with the .pdf, we used to have
144 problems with multirow.4ht)
145 - provide more examples on how to use dyncall, dynload and dyncallback 138 - provide more examples on how to use dyncall, dynload and dyncallback
146 * e.g. enhance manual with a couple of examples (e.g. calling MessageBoxA on windows, etc.) 139 * e.g. enhance manual with a couple of examples (e.g. calling MessageBoxA on windows, etc.)
147 - manuals for bindings (as stated in bindings-section, above) 140 - manuals for bindings (as stated in bindings-section, above)
148 - under "dyncall support", in each calling convention appendix, list crucial details of e.g. big/little endian support, etc. 141 - under "dyncall support", in each calling convention appendix, list crucial details of e.g. big/little endian support, etc.
149 - specify integer models in use, use common ILP32, LLP64, etc. terms 142 - specify integer models in use, use common ILP32, LLP64, etc. terms
152 ------------ 145 ------------
153 - Haiku/gmake build doesn't build dynload due to the fact, that elf.h is not found 146 - Haiku/gmake build doesn't build dynload due to the fact, that elf.h is not found
154 on default installations (one has to install the system headers) 147 on default installations (one has to install the system headers)
155 * add to doc 148 * add to doc
156 - Solaris/gmake build doesn't build dynload and tests anymore (maybe not even dyncallback) 149 - Solaris/gmake build doesn't build dynload and tests anymore (maybe not even dyncallback)
157 - test arm32/ATPCS/THUMB (and then change Status in doc Appendix)
158 - look over code and fix TODO or @@@ marks 150 - look over code and fix TODO or @@@ marks
159 - add ppc-support to doc (both, 32 and 64, as well as little and big endian remarks) 151 - add ppc-support to doc (both, 32 and 64, as well as little and big endian remarks)
160 152
161 nice to have: 153 nice to have:
162 ------------- 154 -------------
163 - update: microsoft visual c++ build files - integrate all test suites in solution file 155 - update: microsoft visual c++ build files - integrate all test suites in solution file
164 - consistency: on x64 platforms: make both ABIs available ('win64','sysv') for all x64 OS ports 156 - consistency: on x64 platforms: make both ABIs available ('win64','sysv') for all x64 OS ports
165 - microsoft build enhancement: autodetect assembly via C preprocessor (like with .S gcc files) 157 - microsoft build enhancement: autodetect assembly via C preprocessor (like with .S gcc files)
166 - test/thunk: some platforms do not allow for allocation of executable code on heap and stack -- 158 - test/thunk: some platforms do not allow for allocation of executable code on heap and stack --
167 currently this test will crash, maybe we should collect information which platforms allow and which not. 159 currently this test will segfault (handled), maybe we should collect information which platforms allow and which not.
160 - PSP
161 - automate ppsspp stuff, seems to print to stdout for callback_suite? but not for call_suite.. (?)
162 - fix link with dummy versions of the following for test-bins:
163 void __stack_chk_fail(){}
164 void __stack_chk_guard(){}
168 165
169 bugs: 166 bugs:
170 ----- 167 -----
171 - setting callconv, specifically for platforms that have only one (default)) excepts on some 168 - setting callconv, specifically for platforms that have only one (default)) excepts on some
172 platforms, eg. setting X64_sysv on amd64/Linux - keeping cdecl which is the same in 169 platforms, eg. setting X64_sysv on amd64/Linux - keeping cdecl which is the same in