This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

egcs-970929: GNU assembler too picky


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]