This bug appears to be present in all version of gcc 3.x.x and 4.x.x When invoking gas via gcc the -mthumb option is not passed by the compiler driver to the assembler.
Repeat by: 1) build an arm cross compiler. 2) attempt to assemble an arm thumb .S file, using gcc as the driver: arm-elf-gcc -v -c foo.S 3) note that the assembler is invoked without the -mthumb option. Further, if the .S file is valid thumb assembler that happens to be valid arm assembler, the assembler will assemble it as arm code rather than thumb code. -- Summary: gcc driver should pass -mthumb option to arm assembler Product: gcc Version: unknown Status: UNCONFIRMED Severity: minor Priority: P3 Component: driver AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: mf dot danger at gmail dot com GCC build triplet: any GCC host triplet: any GCC target triplet: arm-any-any http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27237