annotate dyncall/README-Developer.txt @ 356:2f64957d6a46

- fix to dynload to build with musl libc (latter has dlinfo but not RTLD_SELF, so fallback to dl_iterate_phdr if on ELF targets)
author Tassilo Philipp
date Tue, 25 Feb 2020 16:07:45 +0100
parents 3e629dc19168
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
1 Build with GCC Tool-Chain:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
2
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
3 One assembly front-end *.S source file for all supported architectures:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
4
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
5 Usage:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
6 gcc -c dyncall_call.S -o dyncall_call.o
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
7
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
8 Advantages:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
9 - works fine with universal binary builds (fat binaries), e.g.:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
10 gcc -arch i386 -arch ppc -arch x86_64 -c dyncall_call.S -o dyncall_call.o
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
11
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
12 Details:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
13 Simplified assembly file compilation via using a gigantic C Preprocessor switch include.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
14
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
15 source file "dyncall_call.S" selects the appropriate GAS/Apple assembly file
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
16 "dyncall_call_<arch>_<asmtool>.[sS]".
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
17
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
18 archs so far:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
19
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
20 arm32_thumb .s
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
21 arm32_arm .s
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
22 mips .s
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
23 ppc32 .s
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
24 x64 .s
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
25 x86 .S [ uses C macros ]
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
26
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
27 asmtools:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
28
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
29 gas - standard GNU assembler
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
30 apple - apple's assembler (based on GNU but is significantly different in syntax)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
31 masm - Microsoft assembler x86 and x64
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
32 nasm - Netwide assembler for x86 and x64
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
33
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
34
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
35 NOTE: .S is used for preprocessing assembly files using gcc
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
36 .s is used directly with as
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
37
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
38 advantages:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
39 - one way to build the kernel:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
40
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
41 gcc -c dyncall_call.S -o dyncall_call.o
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
42
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
43 - we can build now universal binaries
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
44
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
45