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         *  ======== ccOpts ========
    50         */
    51        override config xdc.bld.ITarget2.Options ccOpts = {
    52            prefix: "-fPIC -Wunused",
    53            suffix: "-Dfar="
    54        };
    55    
    56        /*
    57         *  ======== lnkOpts ========
    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         *  ======== includeOpts ========
    66         *  $(rootDir)/include        - contains compiler specific headers
    67         *
    68         *  GCC compilers for Linux automatically add this directory, but at least
    69         *  in some cases, the directory is added searched after standard system
    70         *  directories. This way, we ensure $(rootDir)/include is searched
    71         *  before standard system directories.
    72         */
    73        override config string includeOpts = "-isystem $(rootDir)/include";
    74    
    75        /*
    76         *  ======== stdTypes ========
    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     *  @(#) gnu.targets; 1, 0, 1,0; 2-9-2020 18:50:41; /db/ztree/library/trees/xdc/xdc-I08/src/targets/
    99     */
   100