Re: list_head naming conflict gcc 4.2/perl/solaris

From: Zdenek Kotala <Zdenek(dot)Kotala(at)Sun(dot)COM>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: list_head naming conflict gcc 4.2/perl/solaris
Date: 2009-06-01 20:27:07
Message-ID: 1243888027.1319.45.camel@localhost
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


Robert Haas píše v po 01. 06. 2009 v 16:03 -0400:
> On Mon, Jun 1, 2009 at 3:57 PM, Zdenek Kotala <Zdenek(dot)Kotala(at)sun(dot)com> wrote:
> > During integration gcc4.2 into Solaris. My colleague hit a following
> > problem with PostgreSQL compilation:
> >
> > http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6845982
> >
> > cd /builds/sfw-fixes/usr/src/cmd/postgres/postgresql-8.2/postgresql-8.2.13/src/pl/plperl
> > + /ws/onnv-tools/SUNWspro/SS12/bin/cc -xO3 -m32 -xchip=pentium -xspace -Xa -xildoff -xc99=all -xc99=none -xCC -KPIC -I. -I../../../src/include -I/builds/sfw-fixes/proto/root_i386/usr/include -I/builds/sfw-fixes/proto/root_i386/usr/sfw/include -I/usr/sfw/include -I/usr/include/kerberosv5 -I/usr/perl5/5.8.4/lib/i86pc-solaris-64int/CORE -c -o plperl.o plperl.c
> > "/usr/include/sys/list.h", line 52: identifier redeclared: list_head
> > current : function(pointer to struct list {unsigned int list_size, unsigned int list_offset, struct list_node {..} list_head}) returning pointer to void
> > previous: function(pointer to struct List {enum NodeTag {T_TIDBitmap(902), (blah blah)
> >
> > At this moment there is no clear conclusion how to fix it in solaris system headers to satisfy all side. :(
> >
> > My idea is to rename list_head to pg_list_head (and other functions analogously) to avoid name conflict.
> >
> > Comments, better ideas?
>
> Uh... isn't it rather bad form for the operating system headers to be
> defining commonly used type names like "list"?

It is in solaris since 2003 for kernel structure linked list. When I
look on it closer, it seems that problem is more in perl which includes
some sys/ headers which is probably not good practice. :(

> I'd be very surprised
> if PostgreSQL is the only application that is going to break on this.

At this moment I know only about PostgreSQL. How I understand it now, it
appears only when source is compiling with Perl.

I will look more on it tomorrow.

thanks Zdenek

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2009-06-01 20:40:48 Re: Suggested TODO: allow ALTERing of typemods without heap/index rebuild
Previous Message Josh Berkus 2009-06-01 20:26:56 Suggested TODO: allow ALTERing of typemods without heap/index rebuild