This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Limited success with 3.0 branch on AIX
- To: David Edelsohn <dje at watson dot ibm dot com>
- Subject: Re: Limited success with 3.0 branch on AIX
- From: "Zack Weinberg" <zackw at Stanford dot EDU>
- Date: Wed, 2 May 2001 23:24:59 -0700
- Cc: Matthew Conway <matt_conway at i2 dot com>, gcc at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org, gdb at sources dot redhat dot com
- References: <matt_conway@i2.com> <200104302116.RAA23290@makai.watson.ibm.com>
On Mon, Apr 30, 2001 at 05:16:49PM -0400, David Edelsohn wrote:
> >>>>> Matthew Conway writes:
>
> Matthew> "ar -rc libFooBar.a Foo.o Bar.o"
> Matthew> "BFD: Foo.o: Unrecognized storage class 60 for *ABS* symbol `gcc2_compiled.'"
> Matthew> "BFD: Bar.o: Unrecognized storage class 60 for *ABS* symbol `gcc2_compiled.'"
>
> Matthew> What does it mean? Can I safely ignore it? Should I get the latest
> Matthew> binutils snapshot? If I do get the latest binutils, have the problems
> Matthew> that forced me to use the gnupro assembler been fixed yet? Thanks,
>
> Zack's STABS_GCC_MARKER change still is not fully correct for AIX,
> despite his attempt at DBX_OUTPUT_GCC_MARKER in xcoffout.h:
>
> /* .stabx has the type in a different place. */
> #define DBX_OUTPUT_GCC_MARKER(FILE) \
> fprintf ((FILE), "%s\"%s\",0,%d,0\n", ASM_STABS_OP, STABS_GCC_MARKER, N_OPT)
>
> This directly emits a stabs type (N_OPT) in the AIX .stabx directive when
> all stabs are suppose to be converted to AIX storage classes.
Sorry. This was not clear from the code.
...
> I do not see anything in the AIX equivalent to N_OPT -- no comment
> storage class. Would using N_GSYM (AIX's C_GSYM) be appropriate? It
> seems to be a stab for which only the name is significant, not the value,
> which matches the use of gcc2_compiled.
The question is whether gdb on AIX will notice the marker in a C_GSYM
.stabx directive; also whether the native debugger will choke on it.
I've cc:ed the gdb folks for comment. Leaving your patch quoted so
they can look at it.
zw
> Does anyone see a problem with the following patch? I am not
> enough of an expert about DBX Stabs to know the significance of this
> choice of stab type.
>
>
> * xcoffout.h (DBX_OUTPUT_GCC_MARKER): Use N_GSYM, not N_OPT.
>
> Index: xcoffout.h
> ===================================================================
> RCS file: /cvs/gcc/egcs/gcc/xcoffout.h,v
> retrieving revision 1.10.4.1
> diff -c -p -r1.10.4.1 xcoffout.h
> *** xcoffout.h 2001/04/18 06:15:20 1.10.4.1
> --- xcoffout.h 2001/04/30 21:11:18
> *************** extern const char *xcoff_lastfile;
> *** 174,180 ****
>
> /* .stabx has the type in a different place. */
> #define DBX_OUTPUT_GCC_MARKER(FILE) \
> ! fprintf ((FILE), "%s\"%s\",0,%d,0\n", ASM_STABS_OP, STABS_GCC_MARKER, N_OPT)
>
> /* Do not break .stabs pseudos into continuations. */
> #define DBX_CONTIN_LENGTH 0
> --- 174,181 ----
>
> /* .stabx has the type in a different place. */
> #define DBX_OUTPUT_GCC_MARKER(FILE) \
> ! fprintf ((FILE), "%s\"%s\",0,%d,0\n", ASM_STABS_OP, STABS_GCC_MARKER, \
> ! stab_to_sclass (N_GSYM))
>
> /* Do not break .stabs pseudos into continuations. */
> #define DBX_CONTIN_LENGTH 0
>
>
> David