Re: lttng-tools-2.14.0-rc1: fails to compile with libxml2-2.14.4
Kienan Stewart via lttng-dev <[email protected]> Tue, 17 Jun 2025 13:29:07 -0400
| Newsgroups | org.lttng.lists.lttng-dev |
|---|---|
| Message-ID | <[email protected]> |
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 > <[email protected]>: >> >> 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