sdpb icon indicating copy to clipboard operation
sdpb copied to clipboard

Possible waf configuration issues with libxm2

Open pkravchuk opened this issue 2 years ago • 1 comments

libxml2 has directory structure include/libxml2/libxml/*.h. Include statements in Vector_State.hxx and Number_State.hxx ask for #include <libxml2/libxml/parser.h>. At configuration time, waf configure tries to compile a trivial file with the include #include <libxml/parser.h> using the user-supplied include path for libxml2.

This means that providing the include path .../include/ fails the waf configuration step. Then waf resorts to asking pkg-config for libxml2 paths, which on my system gives ../include/libxml2 for the include path. This does not seem to be verified by compiling a trivial source.

The result of this is that compilation of files which include Vector_State.hxx and Number_State.hxx fails. A workaround is to run ./waf configure --libxml2-incdir=".../include/ .../include/libxml2/" which makes the configuration tool happy with its include of <libxml/parser.h> but also makes <libxml2/libxml/parser.h> work.

I am not sure what is the proper solution of this. Changing the configuration script to use <libxml2/libxml/parser.h> doesn't help -- parser.h uses <libxml/...> under the hood (or so it seemed). Perhaps the files Vector_State.hxx and Number_State.hxx should be changed. But it seems that the issue doesn't arise for other users.

pkravchuk avatar Jul 25 '22 18:07 pkravchuk

In any case there seems to be a clear discrepancy between the configuration script and the actual reference to the library which should be fixed.

pkravchuk avatar Jul 25 '22 18:07 pkravchuk