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
|