1 2 3 4 5 6 7 8 9 10 11
12 import xdc.bld.ITarget2;
13
14 /*!
15 * ======== GCArmv7A.xdc ========
16 * Embedded little endian Arm v7A Linux target
17 *
18 * This module defines an embedded target for Linux on Arm. The target
19 * generates code compatible with the "v7A" architecture.
20 *
21 */
22 metaonly module GCArmv7A inherits gnu.targets.arm.ITarget {
23 override readonly config string name = "GCArmv7A";
24 override readonly config string os = "Linux";
25 override readonly config string suffix = "v7A";
26 override readonly config string isa = "v7A";
27 override readonly config xdc.bld.ITarget.Model model= {
28 endian: "little"
29 };
30
31 override readonly config string rts = "gnu.targets.arm.rtsv7A";
32 override config string platform = "host.platforms.arm";
33
34 override readonly config String stdInclude = "gnu/targets/arm/std.h";
35
36 37 38
39 override readonly config ITarget2.Command cc = {
40 cmd: "$(rootDir)/bin/$(GCCTARG)-gcc -c -MD -MF $@.dep",
41 opts: "-march=armv7-a"
42 };
43
44 45 46
47 override config ITarget2.Options ccOpts = {
48 prefix: "-fPIC -Wunused",
49 suffix: "-Dfar= "
50 };
51
52 53 54
55 override readonly config ITarget2.Command asm = {
56 cmd: "$(rootDir)/bin/$(GCCTARG)-gcc -c -x assembler",
57 opts: "-march=armv7-a"
58 };
59
60 61 62
63 override config ITarget2.Options lnkOpts = {
64 prefix: "",
65 suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -lstdc++ -L$(rootDir)/$(GCCTARG)/lib"
66 };
67
68 69 70
71 override config String compatibleSuffixes[] = ["v6", "v5T", "470MV", "v5t"];
72
73 74 75
76 override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
77 t_IArg : { size: 4, align: 4 },
78 t_Char : { size: 1, align: 1 },
79 t_Double : { size: 8, align: 4 },
80 t_Float : { size: 4, align: 4 },
81 t_Fxn : { size: 4, align: 4 },
82 t_Int : { size: 4, align: 4 },
83 t_Int8 : { size: 1, align: 1 },
84 t_Int16 : { size: 2, align: 2 },
85 t_Int32 : { size: 4, align: 4 },
86 t_Int64 : { size: 8, align: 4 },
87 t_Long : { size: 4, align: 4 },
88 t_LDouble : { size: 8, align: 4 },
89 t_LLong : { size: 8, align: 4 },
90 t_Ptr : { size: 4, align: 4 },
91 t_Short : { size: 2, align: 2 },
92 t_Size : { size: 4, align: 4 },
93 };
94 }
95 96 97 98
99