| 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: | Whole Thread | Raw Message | 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 |