Re: HP-UX 11i compile failures
- From: Albert Chin <nautilus-list lists thewrittenword com>
- To: nautilus-list gnome org
- Subject: Re: HP-UX 11i compile failures
- Date: Fri, 18 Oct 2002 06:16:03 -0500
On Fri, Oct 18, 2002 at 05:38:52AM -0400, Alexander Larsson wrote:
> On Wed, 16 Oct 2002, Albert Chin wrote:
>
> > Attempting to build 2.0.7 with the HP C compiler on 11i:
> > cc: "nautilus-directory-async.c", line 1232: error 1721: Operands for
> > < must be of arithmetic type or pointers to compatible types.
> > cc: "nautilus-directory-async.c", line 1232: error 1563: Expression in
> > if must be scalar.
> > cc: "nautilus-directory-async.c", line 1235: error 1721: Operands for
> > > must be of arithmetic type or pointers to compatible types.
> > cc: "nautilus-directory-async.c", line 1235: error 1563: Expression
> > > in if must be scalar.
> > cc: "nautilus-directory-async.c", line 1239: error 1721: Operands
> > > for < must be of arithmetic type or pointers to compatible types.
> > cc: "nautilus-directory-async.c", line 1239: error 1563: Expression
> > > in if must be scalar.
> > cc: "nautilus-directory-async.c", line 1242: error 1721: Operands
> > > for > must be of arithmetic type or pointers to compatible types.
> > cc: "nautilus-directory-async.c", line 1242: error 1563: Expression
> > > in if must be scalar.
> > gmake[2]: *** [nautilus-directory-async.lo] Error 1
> > gmake[2]: Leaving directory
> > `/opt/build/nautilus-2.0.7/libnautilus-private'
> >
> > Problematic code:
> > if (callback_a->callback.directory < callback_b->callback.directory) {
> > return -1;
> > }
> > if (callback_a->callback.directory > callback_b->callback.directory) {
> > return 1;
> > }
> >
> > Should I cast to fix?
>
> I'll let my commit speak for itself:
Thanks. That fixes it. However, you also need to apply the fix a few
lines down for:
if (callback_a->callback.file < callback_b->callback.file) {
I think your verbage in the patch is overly harsh though. Being more
C89-compliant makes GNOME more portable to the likes of Tru64 UNIX,
IRIX, and Solaris, most of whom have vendor compilers that, by
default, are far more pedantic than GCC. I consider this a good thing.
> Index: ChangeLog
> ===================================================================
> RCS file: /cvs/gnome/nautilus/ChangeLog,v
> retrieving revision 1.5555
> diff -u -p -r1.5555 ChangeLog
> --- ChangeLog 16 Oct 2002 20:21:56 -0000 1.5555
> +++ ChangeLog 18 Oct 2002 09:37:07 -0000
> @@ -1,3 +1,8 @@
> +2002-10-18 Alexander Larsson <alexl redhat com>
> +
> + * libnautilus-private/nautilus-directory-async.c:
> + The HP-UX compiler is an anal retentive bastard.
> +
> 2002-10-16 Alex Duggan <aldug astrolinux com>
> * configure.in
> require gnome-desktop >= 2.1.0 (fixes #95979)
> Index: libnautilus-private/nautilus-directory-async.c
> ===================================================================
> RCS file: /cvs/gnome/nautilus/libnautilus-private/nautilus-directory-async.c,v
> retrieving revision 1.192
> diff -u -p -r1.192 nautilus-directory-async.c
> --- libnautilus-private/nautilus-directory-async.c 18 Sep 2002 18:26:09 -0000 1.192
> +++ libnautilus-private/nautilus-directory-async.c 18 Oct 2002 09:37:07 -0000
> @@ -1229,10 +1229,16 @@ ready_callback_key_compare (gconstpointe
> return 1;
> }
> if (callback_a->file == NULL) {
> - if (callback_a->callback.directory < callback_b->callback.directory) {
> + /* ANSI C doesn't allow ordered compares of function pointers, so we cast them to
> + * normal pointers to make some overly pedantic compilers (*cough* HP-UX *cough*)
> + * compile this. Of course, on any compiler where ordered function pointers actually
> + * break this probably won't work, but at least it will compile on platforms where it
> + * works, but stupid compilers won't let you use it.
> + */
> + if ((void *)callback_a->callback.directory < (void *)callback_b->callback.directory) {
> return -1;
> }
> - if (callback_a->callback.directory > callback_b->callback.directory) {
> + if ((void *)callback_a->callback.directory > (void *)callback_b->callback.directory) {
> return 1;
> }
> } else {
>
> --
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> Alexander Larsson Red Hat, Inc
> alexl redhat com alla lysator liu se
> He's a globe-trotting overambitious senator who hides his scarred face behind
> a mask. She's a violent French-Canadian mermaid with a song in her heart and a
> spring in her step. They fight crime!
>
> --
> nautilus-list mailing list
> nautilus-list gnome org
> http://mail.gnome.org/mailman/listinfo/nautilus-list
--
albert chin (china thewrittenword com)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]