#define in assembler file

Art Berggreen art@acc.com
Mon Oct 23 17:55:00 GMT 2000

Robert Floyd wrote:
> I am attempting to create an object file from my sh-hms-gcc
> crosscompiler with an example *.s file that I have. But I noticed the
> following when I type the line below:
> ./sh-hms-gcc -o initsh.o initsh.s
> /var/tmp/ccaJD08h.o(.text+0x20):InitSh.S: undefined reference to 'WCR1'
> This is only one of many. When I look at my initsh.s example file for
> the lines concerning WCR1 I find the following:
> #define WCR1    0x05FFFFA2
> ...and further down...
>         .long   WCR1
> I noticed however there is no problems with the use of the two byte word
> such as:
> #define INIT_WCR1       0x05FD
> ....further down...
>         .word INIT_WCR1
> Why am I having these errors with the long words?  Thanks for your help.


#defines are handled by the C preprocessor (cpp).  Somewhere in the back
of my mind I seem to recall that gcc will invoke cpp if the extension is
.S (upper case) and doesn't for .s (lower case).  You might want to
check in the gcc documentation.


Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com

More information about the crossgcc mailing list