public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Zack Weinberg <zack@bitmover.com>
To: obrien@NUXI.com
Cc: rittle@rsch.comm.mot.com, morganw@engr.sc.edu, rth@cygnus.com,
	gcc@gcc.gnu.org, pfeifer@dbai.tuwien.ac.at
Subject: Re: FreeBSD 4.0
Date: Thu, 30 Sep 1999 18:02:00 -0000	[thread overview]
Message-ID: <199909151623.JAA02391@zack.bitmover.com> (raw)
Message-ID: <19990930180200.v-Air64Uv6oq5-vobBdNTNjUvVDjn_0R6FH_yzvq3GQ@z> (raw)
In-Reply-To: <19990915011710.B25121@relay.nuxi.com>

"David O'Brien" wrote:
> > Because the "real" type is __gnuc_va_list.  Doing it your way won't do
> > what you want.  I hope you don't have system headers that typedef
> > _BSD_VA_LIST_ without reference to gcc's stdarg.h - 
> 
>     from /usr/include/machine/ansi.h
> 
>         #define _BSD_VA_LIST_   char *                  /* va_list */
> 
> There are no GCC headers in my base system.  We've never needed them, and
> there are copyright issues anyway.

Do you have your own stdarg.h too?

This definition will not work with the new stdarg scheme.  gcc's
stdarg.h does

#ifndef __GNUC_VA_LIST
#define __GNUC_VA_LIST
typedef __builtin_va_list __gnuc_va_list;
#endif

__builtin_va_list is an opaque type which may be 'char *' deep inside,
but won't be compatible in the C sense with 'char *'.

Since it's a #define not a typedef, we can work around it:

#ifdef _BSD_VA_LIST_
#undef _BSD_VA_LIST_
#define _BSD_VA_LIST_ __gnuc_va_list
#endif

but that requires us to get machine/ansi.h included by stdarg.h.
Since that header is BSD specific, we go back to needing some
automatically defined macro that can be tested.  And I'm sorry, but
Andreas is right, we cannot use 'BSD'.  Suppose stdarg.h is the very
first header included by a user program.  Only the macros predefined
by the compiler are available, and those don't include BSD.  (It has
nothing to do with -ansi.)  gcc's stddef.h has the same problem and is
using

/* On 4.3bsd-net2, make sure ansi.h is included, so we have
   one less case to deal with in the following.  */
#if defined __BSD_NET2__ || defined ____386BSD____ \
    || defined __FreeBSD__ || defined __NetBSD__
#include <machine/ansi.h>
#endif

which looks pretty safe modulo the absence of __OpenBSD__...

I'd like to know what machine/ansi.h does on Alphas, where "char *"
doesn't work for va_list.

zw

  reply	other threads:[~1999-09-30 18:02 UTC|newest]

Thread overview: 107+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-09-14 19:32 Wes Morgan
1999-09-14 20:08 ` Richard Henderson
1999-09-15  2:00   ` Jeffrey A Law
1999-09-30 18:02     ` Jeffrey A Law
1999-09-30 18:02   ` Richard Henderson
1999-09-14 22:34 ` Loren James Rittle
1999-09-14 23:00   ` Zack Weinberg
1999-09-14 23:14     ` David O'Brien
1999-09-15  0:25       ` Zack Weinberg
1999-09-15  0:56         ` David O'Brien
1999-09-15  1:21           ` Andreas Schwab
1999-09-15  1:40             ` David O'Brien
1999-09-15  2:23               ` Andreas Schwab
1999-09-15  3:11                 ` David O'Brien
1999-09-15  3:52                   ` Andreas Schwab
1999-09-30 18:02                     ` Andreas Schwab
1999-09-30 18:02                   ` David O'Brien
1999-09-30 18:02                 ` Andreas Schwab
1999-09-20  3:58               ` Jeffrey A Law
1999-09-30 18:02                 ` Jeffrey A Law
1999-09-30 18:02               ` David O'Brien
1999-09-30 18:02             ` Andreas Schwab
1999-09-30 18:02           ` David O'Brien
1999-09-15  1:17         ` David O'Brien
1999-09-15  9:23           ` Zack Weinberg [this message]
1999-09-15 10:24             ` David O'Brien
1999-09-16 14:48               ` Richard Henderson
1999-09-30 18:02                 ` Richard Henderson
1999-09-30 18:02               ` David O'Brien
1999-09-20  4:20             ` Jeffrey A Law
1999-09-21  6:33               ` The USER_H issue Marc Espie
1999-09-30 18:02                 ` Marc Espie
1999-09-30 18:02               ` FreeBSD 4.0 Jeffrey A Law
1999-09-30 18:02             ` Zack Weinberg
1999-09-20  4:34           ` Jeffrey A Law
1999-09-20  9:26             ` Zack Weinberg
1999-09-20  9:55               ` Jeffrey A Law
1999-09-20 10:17                 ` Zack Weinberg
1999-09-20 10:38                   ` Richard Earnshaw
1999-09-20 11:02                     ` Zack Weinberg
1999-09-30 18:02                       ` Zack Weinberg
1999-09-20 11:39                     ` Horst von Brand
1999-09-20 11:49                       ` Chris G. Demetriou
1999-09-30 18:02                         ` Chris G. Demetriou
1999-09-30 18:02                       ` Horst von Brand
1999-09-30 18:02                     ` Richard Earnshaw
1999-09-23  8:51                   ` Jeffrey A Law
1999-09-23  9:13                     ` Pending Projects Bruce Korb
1999-09-30 18:02                       ` Bruce Korb
1999-09-30 18:02                     ` FreeBSD 4.0 Jeffrey A Law
1999-09-30 18:02                   ` Zack Weinberg
1999-09-30 18:02                 ` Jeffrey A Law
1999-09-30 18:02               ` Zack Weinberg
1999-09-30 18:02             ` Jeffrey A Law
1999-09-30 18:02           ` David O'Brien
1999-09-30 18:02         ` Zack Weinberg
1999-09-15  2:00       ` Jeffrey A Law
1999-09-15  2:25         ` David O'Brien
1999-09-15  2:33           ` Jeffrey A Law
1999-09-30 18:02             ` Jeffrey A Law
1999-09-30 18:02           ` David O'Brien
     [not found]         ` <37DFAD27.3E6A25E3@datadesign.com>
     [not found]           ` <199909152042.PAA29374@latour.rsch.comm.mot.com>
1999-09-15 14:26             ` Bruce Korb
1999-09-15 17:10               ` Jeffrey A Law
1999-09-16  1:46                 ` Marc Espie
1999-09-16  6:57                   ` Jeffrey A Law
1999-09-16  7:41                     ` Marc Espie
1999-09-16  7:55                       ` Jeffrey A Law
1999-09-30 18:02                         ` Jeffrey A Law
1999-09-30 18:02                       ` Marc Espie
1999-09-30 18:02                     ` Jeffrey A Law
1999-09-30 18:02                   ` Marc Espie
1999-09-30 18:02                 ` Jeffrey A Law
1999-09-30 18:02               ` Bruce Korb
1999-09-30 18:02         ` Jeffrey A Law
1999-09-30 18:02       ` David O'Brien
1999-09-15  1:59     ` Jeffrey A Law
1999-09-30 18:02       ` Jeffrey A Law
1999-09-30 18:02     ` Zack Weinberg
1999-09-15  7:42   ` Wes Morgan
1999-09-30 18:02     ` Wes Morgan
1999-09-30 18:02   ` Loren James Rittle
1999-09-30 18:02 ` Wes Morgan
1999-09-16 12:42 Mike Stump
1999-09-30 18:02 ` Mike Stump
1999-09-16 13:13 Mike Stump
1999-09-16 13:36 ` Marc Espie
1999-09-16 13:54   ` Jeffrey A Law
1999-09-30 18:02     ` Jeffrey A Law
1999-09-30 18:02   ` Marc Espie
1999-09-30 18:02 ` Mike Stump
1999-09-20 13:43 Mike Stump
1999-09-30 18:02 ` Mike Stump
2000-06-08 12:42 Conerned about lack of detail in ChangeLog/commit messges David O'Brien
2000-06-08 15:18 ` Martin v. Loewis
2000-06-09  8:30 ` David Edelsohn
2000-06-09  8:51   ` David O'Brien
2000-06-09  9:13     ` Nick Burrett
2000-06-09  9:21       ` David O'Brien
2000-06-11  6:38       ` Marc Espie
2001-05-02 18:21 [PATCH] rs6000.c ELF bits inclusion David O'Brien
2001-05-02 20:07 ` David Edelsohn
2001-05-02 20:32   ` David O'Brien
2001-05-02 20:52     ` David Edelsohn
2001-05-03  0:39       ` David O'Brien
2001-05-03 13:17 ` David O'Brien
2001-05-03 16:04   ` David Edelsohn
2001-05-03 19:11     ` David O'Brien

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=199909151623.JAA02391@zack.bitmover.com \
    --to=zack@bitmover.com \
    --cc=gcc@gcc.gnu.org \
    --cc=morganw@engr.sc.edu \
    --cc=obrien@NUXI.com \
    --cc=pfeifer@dbai.tuwien.ac.at \
    --cc=rittle@rsch.comm.mot.com \
    --cc=rth@cygnus.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).