Re: list_head naming conflict gcc 4.2/perl/solaris - Mailing list pgsql-hackers

From Zdenek Kotala
Subject Re: list_head naming conflict gcc 4.2/perl/solaris
Date
Msg-id 1243888027.1319.45.camel@localhost
Whole thread Raw
In response to Re: list_head naming conflict gcc 4.2/perl/solaris  (Robert Haas <robertmhaas@gmail.com>)
List 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.Kotala@sun.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




pgsql-hackers by date:

Previous
From: "Kevin Grittner"
Date:
Subject: Re: User-facing aspects of serializable transactions
Next
From: Josh Berkus
Date:
Subject: Suggested TODO: allow ALTERing of typemods without heap/index rebuild