C6X Options (Using the GNU Compiler Collection (GCC))

#### 3.20.8 C6X Options ¶

`-march=name` ¶

  This specifies the name of the target architecture. GCC uses this name to determine what kind of instructions it can emit when generating assembly code. Permissible names are: ‘`c62x`’, ‘`c64x`’, ‘`c64x+`’, ‘`c67x`’, ‘`c67x+`’, ‘`c674x`’.

`-mbig-endian` ¶

  Generate code for a big-endian target.

`-mlittle-endian` ¶

  Generate code for a little-endian target. This is the default.

`-msim` ¶

  Choose startup files and linker script suitable for the simulator.

`-msdata=default` ¶

  Put small global and static data in the `.neardata` section, which is pointed to by register `B14`. Put small uninitialized global and static data in the `.bss` section, which is adjacent to the `.neardata` section. Put small read-only data into the `.rodata` section. The corresponding sections used for large pieces of data are `.fardata`, `.far` and `.const`.

`-msdata=all` ¶

  Put all data, not just small objects, into the sections reserved for small data, and use addressing relative to the `B14` register to access them.

`-msdata=none` ¶

  Make no use of the sections reserved for small data, and use absolute addresses to access all data. Put all initialized global and static data in the `.fardata` section, and all uninitialized data in the `.far` section. Put all constant data into the `.const` section.

`-mdsbt` ¶

  Compile for the DSBT shared library ABI. This option is required to compile with `-fpic` or `-fPIC`, and implies `-fpic`.

`-mlong-calls` ¶

  Avoid generating PC-relative calls; use indirection instead.