This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
egcs-970929: GNU assembler too picky
- To: egcs-bugs at cygnus dot com
- Subject: egcs-970929: GNU assembler too picky
- From: Manfred Hollstein <manfred at ks dot sel dot alcatel dot de>
- Date: Mon, 6 Oct 97 16:20:39 +0200
- Reply-To: Manfred Hollstein <manfred at ks dot sel dot alcatel dot de>
I'm trying to build egcs on a m68k-motorola-sysv using GNU as and
ld. dwarf2out.c emits it's data definitions using ASM_BYTE_OP which is
defined on this particular platform as
#define ASM_BYTE_OP "\t.byte"
Since dwarf2out.c emits the data as follows:
fprintf ((FILE), "\t%s\t...", ASM_BYTE_OP, ...)
two consecutive tab chars occur in the assembler, which GNU as really
doesn't like while in #NO_APP mode:
./xgcc -B./ -DIN_GCC -I./include -DUSE_GAS -DUSE_GLD -DNO_MEM -DNO_LONG_DOUBLE_IO -O0 -I. -c ../../egcs-970929/gcc/enquire.c
/usr1/tmp/cca10659.s: Assembler messages:
/usr1/tmp/cca10659.s:17146: Error: Rest of line ignored. First ignored character valued 0x9.
/usr1/tmp/cca10659.s:17147: Error: Rest of line ignored. First ignored character valued 0x9.
/usr1/tmp/cca10659.s:17148: Error: Rest of line ignored. First ignored character valued 0x9.
...
The obvious fix is to remove the \t from ASM_BYTE_OP's definition in
config/m68k/mot3300.h:
Mon Oct 6 16:04:19 1997 Manfred Hollstein <manfred@lts.sel.alcatel.de>
* config/m68k/mot3300.h (ASM_BYTE_OP): Don't include '\t' in the
definition.
(ASM_OUTPUT_ASCII): Prefix ASM_BYTE_OP by one single '\t'.
diff --context --recursive --show-c-function -x *.o -x *.info* -x *.html* -x *.elc -x *.dvi -x *.orig -x *~ -x version.el egcs-970929.orig/gcc/config/m68k/mot3300.h egcs-970929/gcc/config/m68k/mot3300.h
*** egcs-970929.orig/gcc/config/m68k/mot3300.h Mon Aug 11 17:57:30 1997
--- egcs-970929/gcc/config/m68k/mot3300.h Mon Oct 6 13:45:25 1997
*************** dtors_section () \
*** 353,359 ****
#undef ASM_BYTE
#define ASM_BYTE ".byte"
#undef ASM_BYTE_OP
! #define ASM_BYTE_OP "\t.byte"
#else
#undef ASM_LONG
#define ASM_LONG "long"
--- 353,359 ----
#undef ASM_BYTE
#define ASM_BYTE ".byte"
#undef ASM_BYTE_OP
! #define ASM_BYTE_OP ".byte"
#else
#undef ASM_LONG
#define ASM_LONG "long"
*************** dtors_section () \
*** 364,370 ****
#undef ASM_BYTE
#define ASM_BYTE "byte"
#undef ASM_BYTE_OP
! #define ASM_BYTE_OP "\tbyte"
#endif /* USE_GAS */
/* The sysV68 as doesn't know about double's and float's. */
--- 364,370 ----
#undef ASM_BYTE
#define ASM_BYTE "byte"
#undef ASM_BYTE_OP
! #define ASM_BYTE_OP "byte"
#endif /* USE_GAS */
/* The sysV68 as doesn't know about double's and float's. */
*************** do { long l; \
*** 475,481 ****
#undef ASM_OUTPUT_ASCII
#define ASM_OUTPUT_ASCII(FILE,PTR,LEN) \
do { register int sp = 0, lp = 0; \
! fprintf ((FILE), "%s\t", ASM_BYTE_OP); \
loop: \
if ((PTR)[sp] > ' ' && ! ((PTR)[sp] & 0x80) && (PTR)[sp] != '\\') \
{ lp += 3; \
--- 475,481 ----
#undef ASM_OUTPUT_ASCII
#define ASM_OUTPUT_ASCII(FILE,PTR,LEN) \
do { register int sp = 0, lp = 0; \
! fprintf ((FILE), "\t%s\t", ASM_BYTE_OP); \
loop: \
if ((PTR)[sp] > ' ' && ! ((PTR)[sp] & 0x80) && (PTR)[sp] != '\\') \
{ lp += 3; \
--
Manfred Hollstein Alcatel, Dept. US/EC4
<mailto:manfred@lts.sel.alcatel.de> Lorenzstrasse 10
70435 Stuttgart
Public PGP key on request Germany