Mercurial > pub > dyncall > dyncall
comparison ToDo @ 146:0ab08c1541f0
- fixed armhf ellipsis calls, were ignoring spill area
- minor cleanups for consistency
- todo update
author | cslag |
---|---|
date | Thu, 08 Sep 2016 23:00:45 +0200 |
parents | 63892f03e493 |
children | bbefb8b8e74c |
comparison
equal
deleted
inserted
replaced
145:63892f03e493 | 146:0ab08c1541f0 |
---|---|
23 it's stored is probably not zeroed, so half-words, etc., come with garbage | 23 it's stored is probably not zeroed, so half-words, etc., come with garbage |
24 * THUMB: | 24 * THUMB: |
25 - ellipsis (might be test itself, not respecting fixed part of args) | 25 - ellipsis (might be test itself, not respecting fixed part of args) |
26 - callback_plain retval, see above under ARM | 26 - callback_plain retval, see above under ARM |
27 - callf | 27 - callf |
28 - armhf ellipsis: fix weirdness with long long as first ... arg | |
29 - support Solaris11 CFLAGS with -D_FILE_OFFSET_BITS=64 | 28 - support Solaris11 CFLAGS with -D_FILE_OFFSET_BITS=64 |
30 - make sure selinux works (esp. regarding NX bits, asm might need (or similar): .section .note.GNU-stack,"",@progbits) | 29 - make sure selinux works (esp. regarding NX bits, asm might need (or similar): .section .note.GNU-stack,"",@progbits) |
31 Daniel has a patch for it, if needed, implementing allocwx with two memory blocks, one for w^x, mmaped to one for r|x | 30 Daniel has a patch for it, if needed, implementing allocwx with two memory blocks, one for w^x, mmaped to one for r|x |
32 - support /SAFESEH on cl/win32 | 31 - support /SAFESEH on cl/win32 |
33 - test code functions should be in .so files, optionally, so the suites can directly | 32 - test code functions should be in .so files, optionally, so the suites can directly |
34 be used to test dycnall bindings | 33 be used to test dycnall bindings |
35 - pkg-config support? | 34 - pkg-config support? |
36 - quadmath support (long double) | 35 - quadmath support (long double) |
37 - add tests using alloca(), as this might depend on the frame pointer being correctly | 36 - add tests using alloca(), as this might depend on the frame pointer being correctly |
38 set; we don't check for this, currently, at all | 37 set; we don't check for this, currently, at all |
38 - test on OpenBSD 6.0 which comes with W^X by default | |
39 | 39 |
40 portasm: | 40 portasm: |
41 -------- | 41 -------- |
42 - add solaris support for x64 | 42 - add solaris support for x64 |
43 | 43 |
44 dyncall: | 44 dyncall: |
45 -------- | 45 -------- |
46 - find big endian arm box (also hardfloat), e.g. cubietruck: http://blog.netbsd.org/tnf/entry/working_arm_multiprocessor_support | |
47 - test if armhf/thumb is actually working... pulls in arm mode code in dyncall_callvm.c | |
48 - dyncall_call_mips_n32.h and dyncall_call_mips_n64.h are pretty much the same, share code | |
46 - support for return values: aggregate return values | 49 - support for return values: aggregate return values |
47 - support for argument values: structures, half-precision, vector types, long double | 50 - support for argument values: structures, half-precision, vector types, long double |
48 - consider automatic type-promotion for arguments passed through DC_CALL_C_ELLIPSIS_VARARGS; | 51 - consider automatic type-promotion for arguments passed through DC_CALL_C_ELLIPSIS_VARARGS; |
49 this would make it easier to just pass arguments instead of having to know about the C | 52 this would make it easier to just pass arguments instead of having to know about the C |
50 type promotions (this is partly done, see todo-item above under 1.0) | 53 type promotions (this is partly done, see todo-item above under 1.0) |
56 - test MIPS32 eabi big endian (current port works on psp, which is little endian) | 59 - test MIPS32 eabi big endian (current port works on psp, which is little endian) |
57 - implement MIPS64 N32 (gcc -mabi=n32); both, little and big-endian (looks like NetNBSD on and | 60 - implement MIPS64 N32 (gcc -mabi=n32); both, little and big-endian (looks like NetNBSD on and |
58 EdgeRouter lite uses this: https://blog.netbsd.org/tnf/entry/hands_on_experience_with_edgerouter) | 61 EdgeRouter lite uses this: https://blog.netbsd.org/tnf/entry/hands_on_experience_with_edgerouter) |
59 - implement MIPS64 EABI (gcc -mabi=eabi); both, little and big-endian | 62 - implement MIPS64 EABI (gcc -mabi=eabi); both, little and big-endian |
60 - support for Minix/arm | 63 - support for Minix/arm |
64 - improve ellipsis test: | |
65 * test not just with one fixed arg, to also simulate alignment problems | |
66 * test return values | |
67 * convert from c++ to c, to have it also on plan9, and more portability | |
61 | 68 |
62 dynload: | 69 dynload: |
63 -------- | 70 -------- |
64 - bug: test/nm crashes on qemu mips linux o32 debian etch | 71 - bug: test/nm crashes on qemu mips linux o32 debian etch |
65 - test/resolve_self crashes/asserts on windows and bsds | 72 - test/resolve_self crashes/asserts on windows and bsds |
98 - add callback support for erlang, go, java, lua, python and ruby (and shell? how?) | 105 - add callback support for erlang, go, java, lua, python and ruby (and shell? how?) |
99 - add call-conv-mode-support for rbdc through signature | 106 - add call-conv-mode-support for rbdc through signature |
100 | 107 |
101 manual: | 108 manual: |
102 ------- | 109 ------- |
110 - 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 | |
103 - callconv diagrams: | 111 - callconv diagrams: |
104 * good idea to review it all, anyways, if the calling conventions are actually | 112 * good idea to review it all, anyways, if the calling conventions are actually |
105 represented correctly (and if they are in sync with the .pdf, we used to have | 113 represented correctly (and if they are in sync with the .pdf, we used to have |
106 problems with multirow.4ht) | 114 problems with multirow.4ht) |
107 - provide more examples on how to use dyncall, dynload and dyncallback | 115 - provide more examples on how to use dyncall, dynload and dyncallback |