cmake barfing on i386 only?

I’m trying to get libnfs to compile on i386, but it keeps failing with errors like this:

CMake Error at lib/CMakeLists.txt:19 (target_link_libraries):
  Target "nfs_rquota" of type OBJECT_LIBRARY may not be linked into another
  target.  One may link only to STATIC or SHARED libraries, or to executables
  with the ENABLE_EXPORTS property set.

To reproduce:

  • docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
  • docker run --rm --interactive i386/ubuntu bash -c 'apt update; apt install -y git gcc cmake make; git clone https://github.com/sahlberg/libnfs; cd libnfs; mkdir build; cd build; cmake ..'

If you change i386 in the above to arm32v7 then it’ll work.

Any ideas for what’s going on here would be appreciated—thank you!

It sounds like there’s an old CMake in the i386 container. Linking to OBJECT libraries needs at least CMake 3.12.