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]

Re: 'make bootstrap' failure on m88k-dg-dgux5.4R3.10


On Sat, 15 November 1997, 15:13:55, jepler@inetnebr.com wrote:

   /* Excerpt from /usr/include/stdarg.h:  */
    #define va_arg(__p,__t) (\
     (__p).__va_arg = (((__p).__va_arg + (1 << (__alignof__(__t) >> 3)) - 1) \
    		   & ~((1 << (__alignof__(__t) >> 3)) - 1)) + __va_size(__t), \
      *((__t *) ((__va_reg_p(__t) && (__p).__va_arg < 8 + __va_size(__t) \
    	      ? (__p).__va_reg : (__p).__va_stk) \
    	     + ((__p).__va_arg - __va_size(__t)))))
    
    

The    reason for  your   problems  is   that  the  `va_*' macros from
/usr/include/stdarg.h  use  other macros  `__va_size' and `__va_reg_p'
which are normally defined by gcc's  ginclude/va-m88k.h file and which
seem  to  be    undefined   in   your  configuration    (according  to
config/m88k/x-dgux gcc's  dgux  configuration   doesn't use  its   own
version for stdarg's and varargs).

Because I don't  have access to such  a  DG-UX system, can you  please
check whether any files  below /usr/include provide such a  definition
and if so, how it looks like. It would be best, if you could send me

  these files (which contain the definition)
+ /usr/include/sys/_int_features.h
+ /usr/include/_int_varargs.h
+ /usr/include/stdio.h
+ /usr/include/stdlib.h
+ /usr/include/stddef.h

Then  it  should be possible   to fix the    problem correctly; in the
meantime  the following patch might be   helpful (perhaps, this may be
the final one already - depends if  there are any conflicts with other
files from /usr/include):


Sun Nov 16 12:33:09 1997  Manfred Hollstein  <manfred@s-direktnet.de>

	* fixinc.dgux (__va_reg_p, __va_size): Emit definitions.

*** egcs-971114.orig/gcc/fixinc.dgux	Mon Aug 11 17:57:07 1997
--- egcs-971114/gcc/fixinc.dgux	Sun Nov 16 12:32:14 1997
*************** typedef struct
*** 151,156 ****
--- 151,168 ----
  typedef __gnuc_va_list va_list;
  #endif /* _VA_LIST_ */
  
+ /* This seems to be missing for the dgux configuration:  */
+ 
+ #undef __va_reg_p
+ #define __va_reg_p(TYPE) \
+   (__builtin_classify_type(*(TYPE *)0) < 12 \
+    ? sizeof(TYPE) <= 8 : sizeof(TYPE) == 4 && __alignof__(TYPE) == 4)
+ 
+ #undef __va_size
+ #define	__va_size(TYPE) ((sizeof(TYPE) + 3) >> 2)
+ 
+ /* End of copy from gcc/ginclude/va-m88k.h  */
+ 
  #endif /* __INT_VARARGS_H */
  
  EOF

-- 
 Manfred Hollstein       If you have any questions about GNU software:
 Hindenburgstr. 13/1                   <mailto:manfred@s-direktnet.de>
 75446 Wiernsheim, FRG  <http://www.s-direktnet.de/HomePages/manfred/>
 PGP key:    <http://www.s-direktnet.de/HomePages/manfred/manfred.asc>


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