linux-mips
[Top] [All Lists]

Re: YAMON compiling

To: Roman Mashak <mrv@tusur.ru>
Subject: Re: YAMON compiling
From: Chris Dearman <chris@mips.com>
Date: Wed, 21 Jul 2004 11:52:30 +0100
Cc: linux-mips@linux-mips.org
In-reply-to: <002601c46edc$809fe700$cc20bdd3@roman>
Organization: MIPS Technologies (UK)
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <002601c46edc$809fe700$cc20bdd3@roman>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7b) Gecko/20040421
Roman Mashak wrote:
Hello!

After installing SDE toolkit onto Linux box I tried to compile the YAMON bootloader source code (version of YAMON is 2.00). Few errors
arised:
...
The lines in mips.h that arise these warnings are the following:

// #define AU1000 0x00030100
//#define AU1000 0x01030200
//#define AU1000_2_1 0x00030200


The original MIPS assembler used '#' as a comment character. Using an ANSI style C preprocessor where preprocessor directives do not need to be at the beginning of the line can can cause problems with files using this type of comment. For this reason sde-gcc tells the preprocessor to run in "traditional" mode which disables various ANSI features. In particular, the preprocessor in traditional mode does not accept '//' style comments.

#define t1 $9
#define mem_sdconfiga  0x0840
#define MEM_SDCONFIGA_DDR   0x9030060A
#define MEM_SDREFCFG_D_DDR  MEM_SDCONFIGA_DDR

li      t1, MEM_SDREFCFG_D_DDR
sw      t1, mem_sdconfiga(t0)
sync

Compiler thinks  'li t1, MEM_SDREFCFG_D_DDR'  is 'bad expression',  may be
it guesses MEM_SDREFCFG_D_DDR is not defined correctly?


If the '#define' was not at the beginning of the line the preprocessor in traditional mode will ignore them and the assembler would end up treating these lines as comments which would cause this error.

I've attached a patch that works on a MIPS release of the YAMON-2.00 sources to override the preprocessor mode for assembler files. See if it helps...

        Chris

--
Chris Dearman          The Fruit Farm, Ely Road    voice +44 1223 706206
MIPS Technologies (UK) Chittering, Cambs, CB5 9PH  fax   +44 1223 706250
--- bin/makefile.orig   Tue Jul 20 19:49:19 2004
+++ bin/makefile        Tue Jul 20 19:49:49 2004
@@ -288,7 +288,7 @@
 # SDE toolchain does not allow a construct like ".bss", it requires
 # .section bss instead.
 ifeq ($(TOOLCHAIN),sde)
-CC_OPTS_A = $(CC_OPTS) -D_ASSEMBLER_ -D_SDE_
+CC_OPTS_A = $(CC_OPTS) -D_ASSEMBLER_ -D_SDE_ -fno-traditional-cpp
 else
 CC_OPTS_A = $(CC_OPTS) -D_ASSEMBLER_
 endif
<Prev in Thread] Current Thread [Next in Thread>