From: Carlo Marcelo Arenas Belon <carenas@sajinet.com.pe>
To: sol10x86@cox.net, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] error compiling hw/sh7750.c
Date: Sun, 11 Nov 2007 11:21:22 -0600 [thread overview]
Message-ID: <20071111172122.GA9387@tapir> (raw)
In-Reply-To: <20071111160634.GF25322@tapir>
On Sun, Nov 11, 2007 at 10:06:34AM -0600, Carlo Marcelo Arenas Belon wrote:
> On Sun, Nov 11, 2007 at 09:30:26AM -0500, Ben Taylor wrote:
> > So the macro turns the last _INTC_ARRAY(NULL) into
> >
> > "NULL, sizeof(NULL)/sizeof(*NULL)
>
> in my 64bit linux using gcc-4.1.2 it becomes instead :
>
> ((void *)0), sizeof(((void *)0))/sizeof(*((void *)0))
>
> what version of gcc (gcc -v) are you using in that Solaris 10 box? (HINT: not
> all available versions of gcc compile qemu correctly) :
>
> http://www.opensolaris.org/os/project/qemu/host/gcc-failures/
That didn't sound as clear as it should, so I booted an OpenSolaris Nevada 70b
using the sun provided gcc :
$ uname -a
SunOS dell 5.11 snv_70b i86pc i386 i86pc
$ gcc -v
Reading specs from /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/specs
Configured with: /builds2/sfwnv-gate/usr/src/cmd/gcc/gcc-3.4.3/configure
--prefix=/usr/sfw --with-as=/usr/sfw/bin/gas --with-gnu-as
--with-ld=/usr/ccs/bin/ld --without-gnu-ld --enable-languages=c,c++,f77,objc
--enable-shared
Thread model: posix
gcc version 3.4.3 (csl-sol210-3_4-20050802)
and run a test, the problem is in /usr/include/iso/stdio_iso.h that defined
NULL as an int and not a pointer as shown by :
fndef NULL
#if defined(_LP64)
#define NULL 0L
#else
#define NULL 0
#endif
#endif
contradicting (at least in spirit) the C99 (ISO/IEC 9899:TCS) standard that
says :
"A pointer to void shall have the same representation and alignment
requirements as a pointer to a character type"
and therefore makes sizeof(*NULL) == 1 solving the problem to compile as it is
done if applying the following patch :
Carlo
---
--- qemu/hw/sh7750.c Sun Oct 7 09:31:11 2007
+++ qemu/hw/sh7750.c Sun Nov 11 16:13:13 2007
@@ -29,6 +29,9 @@
#include "sh7750_regnames.h"
#include "sh_intc.h"
+#undef NULL
+#define NULL ((void *)0)
+
#define NB_DEVICES 4
typedef struct SH7750State {
next prev parent reply other threads:[~2007-11-11 17:16 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-11 14:30 [Qemu-devel] error compiling hw/sh7750.c Ben Taylor
2007-11-11 16:06 ` Carlo Marcelo Arenas Belon
2007-11-11 17:21 ` Carlo Marcelo Arenas Belon [this message]
2007-11-11 17:24 ` Paul Brook
2007-11-11 18:03 ` Carlo Marcelo Arenas Belon
2007-11-11 17:46 ` M. Warner Losh
2007-11-11 17:49 ` Andreas Schwab
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=20071111172122.GA9387@tapir \
--to=carenas@sajinet.com.pe \
--cc=qemu-devel@nongnu.org \
--cc=sol10x86@cox.net \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.