Oddity with install in older debian (stretch)

I’m trying to install a new version of lxc in an older debian system (9.13) on an armhf device which can’t be upgraded (Asus Tinkerboard), and the repo lxc is not compatible with current templates.

I have pulled the stable-4.0 branch from here: GitHub - lxc/lxc: LXC - Linux Containers
and do the standard ./autogen.sh, ./configure, make, make install.
Afterward though, lxc-create and other commands report as version 2.0.7, and fail because of the issue reported here: symbol lookup error: lxc-create: undefined symbol: strlcpy · Issue #3960 · lxc/lxc · GitHub

This is not me being confused about $PATH; the distro version has been uninstalled.

My question here is about an oddity with the install described in this comment: symbol lookup error: lxc-create: undefined symbol: strlcpy · Issue #3960 · lxc/lxc · GitHub

I was using the master and stable-40 branch. Because the version reports wrong, I thought perhaps I had pulled the repo wrong, so I’ve gone through this again. Here’s the funny bit: After make install, /usr/local/bin/lxc-create reports as 2.0.7 and throws the undefined symbol error. So does lxc/src/lxc/.libs/lxc-create (which is what make installed). However, lxc/src/lxc/lxc-create (the shell script one level up) reports 4.0.10. But there’s more: lxc/src/lxc/.libs/lt-lxc-create (something which is not installed by make) reports 4.0.10 and !! works when lxc-create in the same directory does not. So right now it appears I’ve gotten my wish (it installed a fedora 35 image), hopefully I can sort it out (since other commands like lxc-start also report 2.0.7 and do not have an lt- version).

Obviously this is not right: The tools being built report a different version than what is in the toplevel Makefile (4.0.10) and there is no confusion here: It is easy to confirm the executables in /usr/local are the ones installed from lxc/src/lxc/.libs, which is where the lt-lxc-create binary is that reports the correct version and works (or so far so good).

What’s up with this? Does anyone know why this happens?


In the end it seems I may be out of luck no matter what: I copied the scripts which correlate to the lxc commands (in lxc/src/lxc), and which return the correct version, to a directory at the top of $PATH and tried to use a container:

    > lxc-start -n fedora35 -l DEBUG -F     
    lxc-start: foobar: utils.c: lxc_can_use_pidfd: 1772 Kernel does not support pidfds

A work-around for this is really a separate question…