Bogosity in contrib/xml2/Makefile - Mailing list pgsql-hackers

From Tom Lane
Subject Bogosity in contrib/xml2/Makefile
Date
Msg-id 9604.1206495130@sss.pgh.pa.us
Whole thread Raw
Responses Re: Bogosity in contrib/xml2/Makefile  (Bruce Momjian <bruce@momjian.us>)
List 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


pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Script binaries renaming
Next
From: Sam Mason
Date:
Subject: Re: writing a MIN(RECORD) aggregate