This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: Changes to egcs-970924 for m68k-motorola-sysv
- To: law at cygnus dot com
- Subject: Re: Changes to egcs-970924 for m68k-motorola-sysv
- From: Manfred Hollstein <manfred at ks dot sel dot alcatel dot de>
- Date: Wed, 8 Oct 97 09:14:20 +0200
- Cc: wilson at cygnus dot com, egcs-bugs at cygnus dot com
- References: <199710072231.PAA17932@cygnus.com> <6213.876263805@hurl.cygnus.com>
- Reply-To: Manfred Hollstein <manfred at ks dot sel dot alcatel dot de>
On Tue, 7 October 1997, 16:36:45, law@hurl.cygnus.com wrote:
In message <199710072231.PAA17932@cygnus.com>you write:
> It is certainly OK to install this patch with the variable names fixed.
Good cuz it's done :-)
> However, keep in mind that this patch only fixes a small subset of the
> problem.
> It will fix the problem only if you are using GNU AS, and only if you
> are not using DWARF2 debug info. And even then, I suspect that only
> some systems will be fixed, because it depends on how the comment start
> characters in GNU as are defined. So even with this patch, the problem still remains.
Absolutely true.
Note, we're going to have to deal with the same problem in the LRS code
since it wants to put random debugging output into the assembly code
too. Might as well start cleaning this stuff up now.
In the meantime I found out, that the actual reason causing my problems was
the definition of ASM_BYTE_OP in config/m68k/mot3300.h. On Monday I sent two
messages concerning this area:
On Mon, 6 October 1997, 16:20:39, manfred@ks.sel.alcatel.de wrote:
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'.
[patch deleted]
and
On Mon, 6 October 1997, 15:41:17, manfred@ks.sel.alcatel.de wrote:
Hi there,
dwarf2out.c and varasm.c disagree in how ASM_BYTE_OP should be defined
if the actual configuration files do not provide a definition.
dwarf2out.c uses:
#ifndef ASM_BYTE_OP
#define ASM_BYTE_OP ".byte"
#endif
while varasm.c uses:
#ifdef ASM_BYTE_OP
fprintf (asm_out_file, "%s 0", ASM_BYTE_OP);
#else
fprintf (asm_out_file, "\tbyte 0");
#endif
According to gcc.texi varasm.c is right:
`ASM_BYTE_OP'
A C string constant giving the pseudo-op to use for a sequence of
single-byte constants. If this macro is not defined, the default
is `"byte"'.
I believe, dwarf2out.c should be fixed.
--
Manfred Hollstein Alcatel, Dept. US/EC4
<mailto:manfred@lts.sel.alcatel.de> Lorenzstrasse 10
70435 Stuttgart
Public PGP key on request Germany