Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 3 Jun 2012 14:34:05 +1200
From:      Andrew Turner <andrew@fubar.geek.nz>
To:        Bruce Evans <brde@optusnet.com.au>
Cc:        svn-src-projects@FreeBSD.org, src-committers@FreeBSD.org
Subject:   Re: svn commit: r235672 - in projects/arm_eabi/sys: amd64/include i386/include ia64/include mips/include pc98/include powerpc/include sparc64/include x86/include
Message-ID:  <20120603143405.3b2fbcac@fubar.geek.nz>
In-Reply-To: <20120520165107.D822@besplex.bde.org>
References:  <201205192351.q4JNpnAq053531@svn.freebsd.org> <20120520165107.D822@besplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help
--MP_/_AuLUcWMskKY0xPevRroGy0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On Sun, 20 May 2012 18:58:12 +1000 (EST)
Bruce Evans <brde@optusnet.com.au> wrote:

> On Sat, 19 May 2012, Andrew Turner wrote:
> 
> > Log:
> >  Fix wchar support in the not ARM case.
> >
> >   * Add machine/_wchar.h to define WCHAR_{MIN,MAX} and include it
> > from machine/_stdint.h, it is already in wchar.h.
> 
> This adds 2 layers of include pessimizations to x86, though only 1
> layer to other arches.  The pessimization is most noticeable over
> nfs, where the RPCs for reopening include files can take 10-100 times
> longer than actually reading and parsing of the files for small files.
> 
> This has some style bugs.
> 
> >   * Add the typedef for __wchar_t to machine/_types.h.
> 
> The limits should be defined (with leading underscores) here too, so
> that no new includes are needed.

How about the attached patch? It:
 * Removes machine/_wchar.h.
 * Moves the __wchar_t typedef to machine/_types.h.
 * Adds __WCHAR_MIN and __WCHAR_MAX to machine/_types.h and uses them where required.

This is against head and only for sparc64. I will do the same on the
other architectures.

Andrew

--MP_/_AuLUcWMskKY0xPevRroGy0
Content-Type: text/x-patch
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=sparc64_wchar.diff

Index: include/wchar.h
===================================================================
--- include/wchar.h	(revision 234300)
+++ include/wchar.h	(working copy)
@@ -89,8 +89,8 @@
 #endif
 
 #ifndef	WCHAR_MIN 
-#define	WCHAR_MIN	__INT_MIN
-#define	WCHAR_MAX	__INT_MAX
+#define	WCHAR_MIN	__WCHAR_MIN
+#define	WCHAR_MAX	__WCHAR_MAX
 #endif
 
 #ifndef WEOF
Index: sys/sparc64/include/_stdint.h
===================================================================
--- sys/sparc64/include/_stdint.h	(revision 234300)
+++ sys/sparc64/include/_stdint.h	(working copy)
@@ -151,8 +151,8 @@
 
 #ifndef WCHAR_MIN /* Also possibly defined in <wchar.h> */
 /* Limits of wchar_t. */
-#define	WCHAR_MIN	INT32_MIN
-#define	WCHAR_MAX	INT32_MAX
+#define	WCHAR_MIN	__WCHAR_MIN
+#define	WCHAR_MAX	__WCHAR_MIN
 #endif
 
 /* Limits of wint_t. */
Index: sys/sparc64/include/_types.h
===================================================================
--- sys/sparc64/include/_types.h	(revision 234300)
+++ sys/sparc64/include/_types.h	(working copy)
@@ -92,7 +92,11 @@
 typedef	__uint64_t	__vm_paddr_t;
 typedef	__uint64_t	__vm_pindex_t;
 typedef	__uint64_t	__vm_size_t;
+typedef	int		__wchar_t;
 
+#define	__WCHAR_MIN	__INT_MIN
+#define	__WCHAR_MAX	__INT_MAX
+
 /*
  * Unusual type definitions.
  */
Index: sys/sys/_types.h
===================================================================
--- sys/sys/_types.h	(revision 234300)
+++ sys/sys/_types.h	(working copy)
@@ -87,7 +87,6 @@
  */
 typedef	int		__ct_rune_t;	/* arg type for ctype funcs */
 typedef	__ct_rune_t	__rune_t;	/* rune_t (see above) */
-typedef	__ct_rune_t	__wchar_t;	/* wchar_t (see above) */
 typedef	__ct_rune_t	__wint_t;	/* wint_t (see above) */
 
 typedef	__uint32_t	__dev_t;	/* device number */

--MP_/_AuLUcWMskKY0xPevRroGy0--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120603143405.3b2fbcac>