Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 4 Aug 2015 07:14:58 +0300
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Jung-uk Kim <jkim@FreeBSD.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r286265 - head/sys/x86/include
Message-ID:  <20150804041458.GF2072@kib.kiev.ua>
In-Reply-To: <201508040011.t740BeD3088014@repo.freebsd.org>
References:  <201508040011.t740BeD3088014@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Aug 04, 2015 at 12:11:40AM +0000, Jung-uk Kim wrote:
> Author: jkim
> Date: Tue Aug  4 00:11:39 2015
> New Revision: 286265
> URL: https://svnweb.freebsd.org/changeset/base/286265
> 
> Log:
>   Always define __va_list for amd64 and restore pre-r232261 behavior for i386.
>   Note it allows exotic compilers, e.g., TCC, to build with our stdio.h, etc.
>   
>   PR:		201749
>   MFC after:	1 week
> 
> Modified:
>   head/sys/x86/include/_types.h
> 
> Modified: head/sys/x86/include/_types.h
> ==============================================================================
> --- head/sys/x86/include/_types.h	Tue Aug  4 00:11:38 2015	(r286264)
> +++ head/sys/x86/include/_types.h	Tue Aug  4 00:11:39 2015	(r286265)
> @@ -152,8 +152,17 @@ typedef	int		___wchar_t;
>   */
>  #ifdef __GNUCLIKE_BUILTIN_VARARGS
>  typedef	__builtin_va_list	__va_list;	/* internally known to gcc */
> -#elif defined(lint)
> -typedef	char *			__va_list;	/* pretend */
> +#else
> +#ifdef __LP64__
> +typedef	struct {
> +	unsigned int	__gpo;
> +	unsigned int	__fpo;
> +	void		*__oaa;
> +	void		*__rsa;
> +} __va_list;
What do the structure fields mean ?  How is it related to the amd64 vararg
ABI ?

> +#else
> +typedef	char *			__va_list;
> +#endif
>  #endif
>  #if defined(__GNUC_VA_LIST_COMPATIBILITY) && !defined(__GNUC_VA_LIST) \
>      && !defined(__NO_GNUC_VA_LIST)



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