# HG changeset patch # User Tassilo Philipp # Date 1524315702 -7200 # Node ID 8d9629a078e493e9dcea6e17fa03882a1155f7fd # Parent 9f1f4efa663b409cf460e3882b09d03a9ce69fc0 - merged separate ToDo files, cleanups diff -r 9f1f4efa663b -r 8d9629a078e4 ToDo --- a/ToDo Sat Apr 21 14:35:25 2018 +0200 +++ b/ToDo Sat Apr 21 15:01:42 2018 +0200 @@ -52,11 +52,14 @@ dyncall: -------- +- merge arm32_thumb_{gas/apple} and include thumb support for portasm +- x64 verification: return values are passed via RAX and RDX, and XMM0 and XMM1. - find big endian arm box (also hardfloat), e.g. cubietruck: http://blog.netbsd.org/tnf/entry/working_arm_multiprocessor_support - test if armhf/thumb is actually working... pulls in arm mode code in dyncall_callvm.c - dyncall_call_mips_n32.h and dyncall_call_mips_n64.h are pretty much the same, share code - support for return values: aggregate return values - support for argument values: structures, half-precision, vector types, long double + * make sure that struct support for ellipsis calls are not forgotten (copy everything by value) - consider automatic type-promotion for arguments passed through DC_CALL_C_ELLIPSIS_VARARGS; this would make it easier to just pass arguments instead of having to know about the C type promotions (this is partly done, see todo-item above under 1.1) @@ -77,6 +80,7 @@ dynload: -------- +- RTLD_LAZY in darwin, why not in unix? - dlGetLibraryPath: dl_iterate_phdr() used on OpenBSD, but not available on version < 3.7 - bug: test/nm crashes on qemu mips linux o32 debian etch - test/resolve_self crashes/asserts on windows and bsds @@ -86,6 +90,20 @@ for implementation of dlSymsNameFromValue(..) - check if PSP can support dynload (missing elf.h, dlfcn.h, etc.); fixup readme if successful - some functionality like java's System.mapLibraryName('name') might be helpful? +- Failed On Open Solaris 11: + In file included from dynload_syms.c:28: + dynload_syms_elf.c:56: error: syntax error before "Elf_Dyn" + dynload_syms_elf.c:56: warning: data definition has no type or storage class + dynload_syms_elf.c: In function `dlSymsInit': + dynload_syms_elf.c:155: error: `pDyn' undeclared (first use in this function) + dynload_syms_elf.c:155: error: (Each undeclared identifier is reported only once + dynload_syms_elf.c:155: error: for each function it appears in.) + dynload_syms_elf.c:155: error: syntax error before ')' token + dynload_syms_elf.c:160: error: `DT_NULL' undeclared (first use in this function) + dynload_syms_elf.c:163: error: `DT_STRTAB' undeclared (first use in this function) + dynload_syms_elf.c:164: error: `DT_SYMTAB' undeclared (first use in this function) + dynload_syms_elf.c:165: error: `DT_HASH' undeclared (first use in this function) + make: *** [dynload_syms.o] Error 1 dyncallback: ------------ diff -r 9f1f4efa663b -r 8d9629a078e4 dyncall/TODO --- a/dyncall/TODO Sat Apr 21 14:35:25 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -- implement structure passing for all calling conventinos and platforms -- make sure that struct support for ellipsis calls are not forgotten (copy everything by value) - -- merge arm32_thumb_{gas/apple} and include thumb support for portasm -- check dyncall_call_x64_traditional_cpp.S / try-sync with win64 masm -- remove dyncall_call_x86_apple.s -- x64 port cleanup: all x64 calling conventions on all platforms -- remove dyncall_call_x86_masm.asm dyncall_call_x64_masm.asm -- x64 verification: return values are passed via RAX and RDX, and XMM0 and XMM1. diff -r 9f1f4efa663b -r 8d9629a078e4 dyncallback/README.txt --- a/dyncallback/README.txt Sat Apr 21 14:35:25 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -components: -- alloc_wx -- thunk - -BUGS -call back failures for x64 apple: - -lppffldplfffddd)i - diff -r 9f1f4efa663b -r 8d9629a078e4 dyncallback/TODO --- a/dyncallback/TODO Sat Apr 21 14:35:25 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -URGENT: -- discuss character literal return value specifiers (e.g. cmp %al, 'i'), we might wanna use just an int for the size - diff -r 9f1f4efa663b -r 8d9629a078e4 dynload/TODO --- a/dynload/TODO Sat Apr 21 14:35:25 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -- RTLD_LAZY in darwin, why not in unix? -- Failed On Open Solaris 11: - -In file included from dynload_syms.c:28: -dynload_syms_elf.c:56: error: syntax error before "Elf_Dyn" -dynload_syms_elf.c:56: warning: data definition has no type or storage class -dynload_syms_elf.c: In function `dlSymsInit': -dynload_syms_elf.c:155: error: `pDyn' undeclared (first use in this function) -dynload_syms_elf.c:155: error: (Each undeclared identifier is reported only once -dynload_syms_elf.c:155: error: for each function it appears in.) -dynload_syms_elf.c:155: error: syntax error before ')' token -dynload_syms_elf.c:160: error: `DT_NULL' undeclared (first use in this function) -dynload_syms_elf.c:163: error: `DT_STRTAB' undeclared (first use in this function) -dynload_syms_elf.c:164: error: `DT_SYMTAB' undeclared (first use in this function) -dynload_syms_elf.c:165: error: `DT_HASH' undeclared (first use in this function) -make: *** [dynload_syms.o] Error 1 -