This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/12764] New: gcc -g option leaves asterisk (*) on some names to assembler on HP-UX B.10.20
- From: "mario dot nigrovic at motorola dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 24 Oct 2003 16:52:53 -0000
- Subject: [Bug c/12764] New: gcc -g option leaves asterisk (*) on some names to assembler on HP-UX B.10.20
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12764
Summary: gcc -g option leaves asterisk (*) on some names to
assembler on HP-UX B.10.20
Product: gcc
Version: 3.3.1
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: mario dot nigrovic at motorola dot com
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: hppa2.0-hp-hpux10.20
GCC host triplet: hppa2.0-hp-hpux10.20
GCC target triplet: hppa2.0-hp-hpux10.20
Here's a faulty snippit of code I got trying to compile make 3.80 with gcc 3.3.1
on an HPUX machine. The problem seems to be that the "*" is not removed from
the function symbol name glob64:
glob64
.PROC
.CALLINFO FRAME=320,CALLS,SAVE_RP,SAVE_SP,ENTRY_GR=18
.ENTRY
stw %r2,-20(%r30)
copy %r3,%r1
.stabn 68,0,375,L$M17-*glob64
L$M17:
I've looked into this a bit, and it would seem that the .stabn line with the
problem is being created in .../gcc-3.3.1/gcc/config/pa/som.h, around line 39.
I've looked at some corresponding code for other architectures and they all seem
to surround the XSTR with a call to assemble_name(FILE, XSTR ... ). This line
is a bit curious because it ends with a "+ 1" to a string, which I assume is the
old way to get past the leading _ or other character on symbol names.
For now, I'm working around this by removing the -g from all compiles, but
that's not a great long-term solution...
I'm going to try a crack at fixing this code myself, and if I can solve the
problem, I'll add a diff or whatever to this bug report.
REPRODUCING
.../make-3.80/configure --prefix=$PWD/install --disable-nls
make
make exits with something like
Command: make
make all-recursive
make[1]: Entering directory `/tmp/make.2a'
Making all in glob
make[2]: Entering directory `/tmp/make.2a/glob'
if gcc -DHAVE_CONFIG_H -I. -I/media/gnu/make-3.80/glob -I.. -g -O2 -MT
glob.o -MD -MP -MF ".deps/glob.Tpo" \
-c -o glob.o `test -f '/media/gnu/make-3.80/glob/glob.c' || echo
'/media/gnu/make-3.80/glob/'`/media/gnu/make-3.80/glob/glob.c; \
then mv ".deps/glob.Tpo" ".deps/glob.Po"; \
else rm -f ".deps/glob.Tpo"; exit 1; \
fi
In file included from /media/gnu/make-3.80/glob/glob.c:203:
/media/gnu/make-3.80/glob/glob.c: In function `glob':
/media/gnu/make-3.80/glob/glob.c:197: warning: passing arg of `my_realloc' from
incompatible pointer type
In file included from /media/gnu/make-3.80/glob/glob.c:203:
/media/gnu/make-3.80/glob/glob.c:197: warning: passing arg of `my_realloc' from
incompatible pointer type
In file included from /media/gnu/make-3.80/glob/glob.c:203:
/media/gnu/make-3.80/glob/glob.c:197: warning: passing arg of `my_realloc' from
incompatible pointer type
In file included from /media/gnu/make-3.80/glob/glob.c:203:
/media/gnu/make-3.80/glob/glob.c: In function `glob_in_dir':
/media/gnu/make-3.80/glob/glob.c:197: warning: passing arg of `my_realloc' from
incompatible pointer type
/var/tmp//ccm47IgT.s: Assembler messages:
/var/tmp//ccm47IgT.s:641: Error: bad expression
/var/tmp//ccm47IgT.s:641: Warning: rest of line ignored; first ignored character
is `g'
/var/tmp//ccm47IgT.s:647: Error: bad expression
/var/tmp//ccm47IgT.s:647: Warning: rest of line ignored; first ignored character
is `g'
/var/tmp//ccm47IgT.s:670: Error: bad expression
/var/tmp//ccm47IgT.s:670: Warning: rest of line ignored; first ignored character
is `g'