This is the mail archive of the gcc@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]

Re: Limited success with 3.0 branch on AIX


>>>>> 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.  N_OPT does
not have a corresponding storage class, xcoffout.c:stab_to_sclass()
specifically includes:

#ifdef N_OPT
    case N_OPT:
      UNKNOWN_STAB ("N_OPT");
#endif

and stab.def defines N_OPT based on Solaris's definition:

/* New stab from Solaris.  I don't know what it means, but it
   don't seem to contain useful information.  Possibly related to the
   optimization flags used in this module.  */
__define_stab (N_OPT, 0x3c, "OPT")

	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.

	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


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