This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Trouble assembling variant.S for sh3 on Linux/alpha
- To: ecos-discuss at sources dot redhat dot com
- Subject: [ECOS] Trouble assembling variant.S for sh3 on Linux/alpha
- From: Stephen Williams <steve at icarus dot com>
- Date: Wed, 22 Nov 2000 14:15:25 -0800
This just gets worse.
The error below comes from trying to compile (actually assemble) variant.S
now that I finally got the host tools built. The error message about the
offset out of range applies to this line:
_cyg_hal_cache_enable:
GOTO_NONCACHED_SHADOW
mov #CYGARC_REG_CCR,r1 ; <-- here!
mov.l @r1,r0
mov #CYGARC_REG_CCR_CE,r2
mov.l r2,@r1
nop
rts
nop
CYGARC_REG_CCR is defined in mod_regs_cac.h as:
#define CYGARC_REG_CCR 0xffffffec
...which just happens to be 4294967276 in decimal. Well, I think as should
be expected to know that this is really -0x14 when talking to an sh3/4
processor. I don't think I can get much more recent than this:
icarus.com % sh-elf-as --version
GNU assembler 001118
But given that as has slipped a clue on 64bit hosts, is it practical to
replace this with -20? Or is it maybe that as is doing the right thing
and this really *should* be -20?
The final compile line:
sh-elf-gcc -c -I/home/icarus/steve/picturel/ecos-sh/install/include -I/usr/local/src/ecos-cvs/ecos/packages/hal/sh/sh3/current -I/usr/local/src/ecos-cvs/ecos/packages/hal/sh/sh3/current/src -I/usr/local/src/ecos-cvs/ecos/packages/hal/sh/sh3/current/tests -I. -I/usr/local/src/ecos-cvs/ecos/packages/hal/sh/sh3/current/src/ -mb -m3 -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority -Wp,-MD,src/variant.tmp -o src/hal_sh_sh3_variant.o /usr/local/src/ecos-cvs/ecos/packages/hal/sh/sh3/current/src/variant.S
/usr/local/src/ecos-cvs/ecos/packages/hal/sh/sh3/current/src/variant.S: Assembler messages:
/usr/local/src/ecos-cvs/ecos/packages/hal/sh/sh3/current/src/variant.S:71: Error: offset out of range
/usr/local/src/ecos-cvs/ecos/packages/hal/sh/sh3/current/src/variant.S:71: Error: Value of 4294967276 too large for field of 2 bytes at 17
/usr/local/src/ecos-cvs/ecos/packages/hal/sh/sh3/current/src/variant.S:82: Error: offset out of range
/usr/local/src/ecos-cvs/ecos/packages/hal/sh/sh3/current/src/variant.S:82: Error: Value of 4294967276 too large for field of 2 bytes at 45
/usr/local/src/ecos-cvs/ecos/packages/hal/sh/sh3/current/src/variant.S:95: Error: offset out of range
/usr/local/src/ecos-cvs/ecos/packages/hal/sh/sh3/current/src/variant.S:95: Error: Value of 4294967276 too large for field of 2 bytes at 77
/usr/local/src/ecos-cvs/ecos/packages/hal/sh/sh3/current/src/variant.S:165: Error: offset out of range
/usr/local/src/ecos-cvs/ecos/packages/hal/sh/sh3/current/src/variant.S:165: Error: Value of 4294967276 too large for field of 2 bytes at 229
make[1]: *** [src/variant.o.d] Error 1
make[1]: Leaving directory `/home/icarus/steve/picturel/ecos-sh/hal/sh/sh3/current'
make: *** [build] Error 2