This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
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>