Mail Archives: djgpp/1996/10/07/11:53:24
On Mon, 7 Oct 1996, Matthew B Kennedy wrote:
> The exact files and compile commands I have used are below. As you
> can see, I am using the "asmdefs.h" file to be able access the FUNC,
> ENTER and LEAVE macros. The problem is, the assembler spits-chips
> when it comes across the FUNC macro (see the compilation result).
[snip]
> ===== COMPILATION COMMANDS ============
> [1] C:\DJGPP >gcc add.c add.s -o add
> add.s: Assembler messages:
> add.s:6: Error: invalid character '(' in opcode
> add.s:7: Error: operands given don't match any known 386 instruction
Unlike other assemblers, Gas does NOT know how to handle macros like
those defined on `asmdefs.h'. It needs a cpp pass on the source before
you submit it to Gas. Gcc will do that automagically for you, if you
call it like so:
gcc add.c add.S -o add
(note the capital S!). Yes, gcc is NOT case-insensitive to filenames.
Capital S means run the preprocessor on the source before calling Gas.
I suggest you read section 8.4 of the DJGPP FAQ list (v2/faq201b.zip from
the same place you get DJGPP) for more info on the way gcc determines the
source language.
- Raw text -