[Etherboot-developers] Problem with gas 2.9.5 in etherboot 4.6.8
Brought to you by:
marty_connor,
stefanhajnoczi
|
From: Christoph P. <chr...@do...> - 2000-10-11 20:47:26
|
While compiling etherboot32 in version 4.6.8 I got following error
on Linux RedHat 6.2 (egcs-2.91.66, as 2.9.5)
gcc -E -DMOTD -DIMAGE_MENU -DBACKOFF_LIMIT=7 -DASK_BOOT=3
-DANS_DEFAULT=ANS_NETWORK -O2 -g -fstrength-reduce -fomit-frame-pointer
-m386 -malign-jumps=1 -malign-loops=1 -malign-functions=1 -Wall -W
-Wno-format -Wno-unused -DVERSION=\"4.6.8\" -DRELOC=0x98000 start32.S |
as -o bin32/start32.o
{standard input}: Assembler messages:
{standard input}:323: Error: suffix or operands invalid for `ljmp'
make: *** [bin32/start32.o] Error 1
The problem seem to be the `*' in the LJMPI() macro.
The problem is in the xstart routine. As I saw in the other
parts of the code and the the code 4.6.2, I think, the `*' has
to be removed. In 4.6.2 there was no distinguish between GAS291 and
GAS295 on this line in xstart:
ADDR32 ljmp _execaddr-_start
In 4.6.8 this line:
ADDR32 LJMPI(_execaddr-_start)
with the difference:
#ifdef GAS291
#define DATA32 data32;
#define ADDR32 addr32;
#define LJMPI(x) ljmp x
#else
#define DATA32 data32
#define ADDR32 addr32
#define LJMPI(x) ljmp *x
#endif
Whatfor the `*' here ?
With friendly regards
Christoph P.
PS: Without `*' the code builds, but I have not tested it !
-------------------------------------------------------------------------
private: chr...@do...
company: chr...@al...
|