From: Cesar S. <ces...@gm...> - 2008-05-27 18:36:17
|
Hi, Keith Keith Marshall wrote: > On Tuesday 27 May 2008 16:21, Song, Shan (GE Infra, Transportation) > wrote: >> Obviously, we should run arm-elf-gcc <option stuff ... > crt0.S >> It's not crt0.s. >> gcc treat *.s and *.S differently. > > To be strictly accurate, it's `gas' which treats `*.s' and `*.S' > differently, and IMO that is a bug in `gas'; it is simply unacceptable > for it to rely exclusively on any such distinction, if it expects to > target a case-insensitive file system, such as that of Win32. I don't think gas/binutils is the culprit here. It is only when you use the gcc front-end to the assembler that *.S is treated differently. >From the gcc 4.3.0 manual: http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gcc/Overall-Options.html For any given input file, the file name suffix determines what kind of compilation is done: [...] file.s Assembler code. file.S file.sx Assembler code which must be preprocessed. > Exactly the point. Just as `gcc' provides alternative methods to `*.c' > vs. `*.C' to discriminate between `C' and `C++', `gas' needs at least > one alternative to `*.s' vs. `*.S', to support use on case-insensitive > file systems. [...] As you see from above, this is already fixed in gcc 4.3.0, by using the .sx extension. Regards, Cesar |