Hi Norbert,
thanks for the context. Using pkg-config is the expected method to find
the link flags. It sounds like you are building in an unsupported
environment, but here are some options you can try:
* When configuring, use: `libxml2_LIBS=-lxml2 ./configure`
* Use pkg-config and have an entry `PKG_CONFIG_PATH` for the directory
containing the .pc for your libxml build
* Use `LDFLAGS` as you are doing
thanks,
kienan
On 6/17/25 11:08 AM, Norbert Lange wrote:
Am Di., 17. Juni 2025 um 16:50 Uhr schrieb Kienan Stewart
<kstew...@efficios.com>:
Hi Norbert,
On 6/17/25 10:15 AM, Norbert Lange via lttng-dev wrote:
/tmp/dev_develop_libxml2/usr/include/libxml2/libxml/encoding.h:173:7:
note: declared here
173 | } input XML_DEPRECATED_MEMBER;
| ^~~~~
../../../src/common/config/session-config.cpp:297:75: error: no match
for call to '(_xmlCharEncodingHandler::<unnamed union>) (xmlChar*&,
int*, const xmlChar*, int*)'
297 | ret = handler->input(out_str, &out_len, (const xmlChar *)
in_str, &in_len);
|
^
Changing the call to handler->input.legacyFunc seems to fix it.
Also lttng seems to need libxml2, but doesnt add the necessary flags.
Regarding the "necessary flags" for libxml2 when building the lttng
binary, could you indicate clearly the error you have?
All uses of libxml2 are via libconfig, and the libxml2 LD flags are
added to lttng via libconfig.la.
When performing the final link of lttng, I see `-lxml2` in the command line.
thanks,
kienan
Regards, Norbert
The error is, that I don't see -lxml2 in the commandline (unless I use
the global LDFLAGS), libconfig.la does not contain the flags either.
However, the Makefiles all contain them:
src/common/Makefile:libxml2_CFLAGS =
-I/tmp/dev_develop_libxml2/usr/include/libxml2
src/common/Makefile:libxml2_LIBS =
/tmp/dev_develop_libxml2/usr/local/lib/libxml2.so
I dont use pkgconf, I set the variables directly (libxml2 is not a
part of our production filesystem + compiler and right now I just
barely managed to compile lttng somehow).
Regards, Norbert