Mercurial > pub > dyncall > dyncall
annotate dyncall/README-Developer.txt @ 533:71c884e610f0
- integration of patches from Raphael Luba, Thekla, Inc.:
* integration of aggregate-by-value (struct, union) support patch for x64 (win and sysv)
* windows/x64 asm additions to specify how stack unwinds (help for debuggers, exception handling, etc.)
* see Changelog for details
- new calling convention modes for thiscalls (platform agnostic, was specific before)
* new signature character for platform agnostic thiscalls ('*' / DC_SIGCHAR_CC_THISCALL)
- dcCallF(), dcVCallF(), dcArgF() and dcVArgF():
* added support for aggregates-by-value (wasn't part of patch)
* change that those functions don't implicitly call dcReset() anymore, which was unflexible (breaking change)
- added macros to feature test implementation for aggregate-by-value and syscall support
- changed libdyncall_s.lib and libdyncallback_s.lib order in callback test makefiles, as some toolchains are picky about order
- doc:
* man page updates to describe aggregate interface
* manual overview changes to highlight platforms with aggregate-by-value support
- test/plain: replaced tests w/ old/stale sctruct interface with new aggregate one
author | Tassilo Philipp |
---|---|
date | Thu, 21 Apr 2022 13:35:47 +0200 |
parents | 3e629dc19168 |
children |
rev | line source |
---|---|
0 | 1 Build with GCC Tool-Chain: |
2 | |
3 One assembly front-end *.S source file for all supported architectures: | |
4 | |
5 Usage: | |
6 gcc -c dyncall_call.S -o dyncall_call.o | |
7 | |
8 Advantages: | |
9 - works fine with universal binary builds (fat binaries), e.g.: | |
10 gcc -arch i386 -arch ppc -arch x86_64 -c dyncall_call.S -o dyncall_call.o | |
11 | |
12 Details: | |
13 Simplified assembly file compilation via using a gigantic C Preprocessor switch include. | |
14 | |
15 source file "dyncall_call.S" selects the appropriate GAS/Apple assembly file | |
16 "dyncall_call_<arch>_<asmtool>.[sS]". | |
17 | |
18 archs so far: | |
19 | |
20 arm32_thumb .s | |
21 arm32_arm .s | |
22 mips .s | |
23 ppc32 .s | |
24 x64 .s | |
25 x86 .S [ uses C macros ] | |
26 | |
27 asmtools: | |
28 | |
29 gas - standard GNU assembler | |
30 apple - apple's assembler (based on GNU but is significantly different in syntax) | |
31 masm - Microsoft assembler x86 and x64 | |
32 nasm - Netwide assembler for x86 and x64 | |
33 | |
34 | |
35 NOTE: .S is used for preprocessing assembly files using gcc | |
36 .s is used directly with as | |
37 | |
38 advantages: | |
39 - one way to build the kernel: | |
40 | |
41 gcc -c dyncall_call.S -o dyncall_call.o | |
42 | |
43 - we can build now universal binaries | |
44 | |
45 |