1.2. Development Flow Differences

There are a few significant differences in terms of development flow behavior when migrating from the TI ARM compiler to the tiarmclang compiler. These include the following:

  • The linker is invoked automatically by default by the compiler.

    The tiarmclang compiler invokes the linker automatically by default, whereas the TI ARM compiler must be told to invoke the linker via the armcl’s --run_linker (-z) option. Further details about how to manage the linker invocation from the tiarmclang command-line can be found in the Using the tiarmclang Compiler and Linker section of the tiarmclang Getting Started Guide.

  • The interlist option is not supported on the compiler command line.

    Unlike the TI ARM compiler, which provides -s, -ss, and -os options to instruct the compiler to generate an interlisted assembly source file, the tiarmclang does not support an interlisting option on the compiler command-line. Instead, when a C/C++ source file is compiled with debug enabled, the tiarmobjdump utility can be used with its -S option on the compiler-generated object file to produce disassembled object code with C/C++ source lines interlisted.

  • Altering the file extension of generated files is not supported on the compiler command line.

    The tiarmclang compiler does not support options to alter the file extension of compiler-generated files. For more details about which TI ARM options do not have analogous tiarmclang options, please see the Migrating Command-Line Options chapter of this migration guide.

  • Compilation stops after generating assembly source if the -S option is specified.

    The tiarmclang compiler supports a -S option that allows you to keep the compiler-generated assembly file, but unlike the armcl’s -k option, the tiarmclang’s -S option causes the compiler to halt immediately after generating the assembly file. When -S is used, an object file is not created by the compiler.