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
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 |