1 /*!
2 * ======== Linux86_64.xdc ========
3 * Native 64-bit x86 Linux target (LP64)
4 *
5 * This module defines the native target for 64-bit (LP64) Linux
6 * on an x86 platform.
7 */
8 metaonly module Linux86_64 inherits gnu.targets.ITarget {
9 override readonly config string name = "Linux86_64";
10 override readonly config string os = "Linux";
11 override readonly config string suffix = "86_64U";
12 override readonly config string isa = "i686";
13 override readonly config xdc.bld.ITarget.Model model= {
14 endian: "little"
15 };
16 override readonly config string rts = "gnu.targets.rts86U";
17 override config string platform = "host.platforms.PC";
18
19 readonly config Bool arrayTypeVaList = true;
20
21 /*!
22 * ======== cc ========
23 * The command used to compile C/C++ source files into object files
24 */
25 override readonly config xdc.bld.ITarget2.Command cc = {
26 cmd: "$(rootDir)/bin/gcc -c -MD -MF $@.dep",
27 opts: "-m64"
28 };
29
30 /*!
31 * ======== asm ========
32 * The command used to assembles assembly source files into object files
33 */
34 override readonly config xdc.bld.ITarget2.Command asm = {
35 cmd: "$(rootDir)/bin/gcc -c -x assembler",
36 opts: "-m64"
37 };
38
39 /*!
40 * ======== lnk ========
41 * The command used to link executables.
42 */
43 override readonly config xdc.bld.ITarget2.Command lnk = {
44 cmd: "$(rootDir)/bin/gcc",
45 opts: "-m64"
46 };
47
48 49 50
51 override config xdc.bld.ITarget2.Options ccOpts = {
52 prefix: "-fPIC -Wunused",
53 suffix: "-Dfar="
54 };
55
56 57 58
59 override config xdc.bld.ITarget2.Options lnkOpts = {
60 prefix: "",
61 suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -lstdc++ -L$(rootDir)/lib64"
62 };
63
64 65 66 67 68 69 70 71 72
73 override config string includeOpts = "-isystem $(rootDir)/include";
74
75 76 77
78 override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
79 t_IArg : { size: 8, align: 8 },
80 t_Char : { size: 1, align: 1 },
81 t_Double : { size: 8, align: 8 },
82 t_Float : { size: 4, align: 4 },
83 t_Fxn : { size: 8, align: 8 },
84 t_Int : { size: 4, align: 4 },
85 t_Int8 : { size: 1, align: 1 },
86 t_Int16 : { size: 2, align: 2 },
87 t_Int32 : { size: 4, align: 4 },
88 t_Int64 : { size: 8, align: 8 },
89 t_Long : { size: 8, align: 8 },
90 t_LDouble : { size: 16, align: 16 },
91 t_LLong : { size: 8, align: 8 },
92 t_Ptr : { size: 8, align: 8 },
93 t_Short : { size: 2, align: 2 },
94 t_Size : { size: 8, align: 8 },
95 };
96 }
97 98 99
100