Bogosity in contrib/xml2/Makefile

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-hackers(at)postgreSQL(dot)org
Subject: Bogosity in contrib/xml2/Makefile
Date: 2008-03-26 01:32:10
Message-ID: 9604.1206495130@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Whilst fooling with bug #4058 I noticed that xml2's .c files were being
compiled without -g or any of the various warning flags we normally use.
I saw this:

gcc -I/usr/include/libxml2 -fpic -I. -I../../src/include -D_GNU_SOURCE -I/usr/include/libxml2 -c -o xpath.o xpath.c

when I expected something like this:

gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Winline -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing -fwrapv -g -fpic -I. -I../../src/include -D_GNU_SOURCE -I/usr/include/libxml2 -c -o xpath.o xpath.c

The reason is apparently this line in its Makefile:

override CFLAGS += $(shell xml2-config --cflags)

It seems the "override" locks down the value so that the subsequent
assignment in Makefile.global does nothing. I didn't try the PGXS
case but I imagine it doesn't do the right thing either.

Now, in HEAD and 8.3 I think we could just remove this line, because
configure knows how to pull the needed -I and -L flags out of
xml2-config's output and stick them into appropriate flag variables
(neither of which is CFLAGS btw...). I am not sure what to do in older
branches though --- there doesn't seem to be any real nice solution.

Even though xml2 is deprecated and may go away for 8.4, I think this is
important to fix in the back branches. Failing to use the -f flags for
instance could be resulting in outright wrong code, and we'd be unlikely
to notice since there's no regression test at all for this module.

Thoughts?

regards, tom lane

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Sam Mason 2008-03-26 01:35:57 Re: writing a MIN(RECORD) aggregate
Previous Message Bruce Momjian 2008-03-26 01:21:36 Script binaries renaming