-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.txt
63 lines (35 loc) · 1.4 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
6502/65816 compatible target for LLVM.
CAVEATS
This is a *very* unstable, alpha version target.
For now, the target can output only to the library object format used
by WLA DX (WLAK). The target has been tested only on SFC (SNES)
emulators and hardware.
The "standard libraries" consist of a set of assembly routines that
need to be linked externally. See arith.s and shift.s in the SFC
example: https://github.com/Peppar/llvm-C65-sfc-example
BUILDING
Steps roughly based on https://llvm.org/docs/GettingStarted.html
1. Relative paths specified are important!
2. Check out the modified LLVM
git clone https://github.com/Peppar/llvm-C65-llvm.git llvm
3. Check out the target
cd llvm/lib/Target
git clone https://github.com/Peppar/llvm-C65.git C65
4. Check out the modified Clang
cd llvm/tools
git clone https://github.com/Peppar/llvm-C65-clang.git clang
5. Configure and build LLVM and Clang
mkdir build
cd build
cmake /path/to/llvm/src -DLLVM_TARGETS_TO_BUILD="X86;C65"
cmake --build .
TESTING
Using the target to compile an SFC (SNES) "game":
https://github.com/Peppar/llvm-C65-sfc-example
TROUBLESHOOTING
If you run out of memory while linking a Debug build of clang,
try using the "gold" linker from GNU Binutils.
https://www.gnu.org/software/binutils/
If you want to debug clang with gdb, you need to execute the following
commands for breakpoints to work consistently:
set follow-fork-mode child