This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more infromation.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: #define in assembler file


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.

Hmm,

#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.

Art

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]