This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: 3.0 PATCH: Fix wchar_t/wint_t definitions for bi-arch Solaris 7/8 and IRIX 6
Joseph S. Myers writes:
> Can you provide a complete list of all target triplets whose wint_t you've
> changed? For example, linux.h includes svr4.h, but wint_t on GNU/Linux
> should remain as unsigned int.
No, I won't :-) svr4.h is included in
arc/arc.h
d30v/d30v.h
fr30/fr30.h
i386/beos-elf.h
i386/sysv4.h
linux.h
m32r/m32r.h
m68k/m68kv4.h
m88k/dgux.h
m88k/sysv4.h
mcore/mcore-elf.h
mips/gnu.h
mn10200/mn10200.h
mn10300/mn10300.h
sh/elf.h
sparc/sysv4.h
v850/v850.h
directly, and many more via config.gcc. I just don't have the time now to
check which of them gets ths svr4.h definition of WINT_TYPE and which
provides their own. Besides, as I said, the System V ABI V4.1 explicitly
doesn't specify details of type sizes (see p. 38, 3-1), but leaves this to
the processor-specific supplements. In fact, SCD 2.4.1 (the SPARC
Compliance Definition) defines wchar_t and wint_t as long on p. 6-83 for
32-bit SPARC, and wchar_t as int for 64-bit SPARC (p. 6P-10, Figure 6.38).
There seems to no separate 64-bit definition of wint_t, so Sun may be
violating the ABI :-)
Anyway, this clearly doesn't belong into svr4.h at all. I'll add
appropriate comments, move my changes to sparc/sol2.h, re-bootstrap and
resubmit.
This will teach me not to change shared files without large amounts of
prior consideration :-)
Rainer
-----------------------------------------------------------------------------
Rainer Orth, Faculty of Technology, Bielefeld University
Email: ro@TechFak.Uni-Bielefeld.DE