ludo@gnu.org (Ludovic Courtès) writes: > Chris Marusich skribis: > >> [ 1.345843] FS-Cache: Loaded >> [ 1.362140] 9pnet: Installing 9P2000 support >> [ 1.366118] 9p: Installing v9fs 9p2000 file system support >> [ 1.368730] FS-Cache: Netfs '9p' registered for caching >> configuring QEMU networking... >> loading '/gnu/store/jy509dgcsz82y13fmizv2sqaj90s1vfg-linux-vm-loader'... >> ERROR: In procedure dynamic-link: >> ERROR: In procedure dynamic-link: file: "/gnu/store/hwygv5jwd47amhp1m67iy3bkvxqjlbhm-libgcrypt-1.8.1/lib/libgcrypt", message: "file not found" > > The code above is running in the initrd, which means that it’s executed > by ‘guile-static-stripped’, which does not support dlopening: Glad I asked! It would have required much more fumbling around before I had even though about a possibility like that. It makes sense now. > So we should either make a big initrd with the dynamically-linked >Guile, > but then we may need to pass “-m 512” or similar to qemu… I will try this. I'm running the gexp in a linux vm is only because I need permission to create some of the device files. If you try to run this as a normal builder (e.g., using gexp->derivation), the build will fail because the builder tries to create device nodes and lacks permission to do so. I might also look into building the image in a container, since we also have some build-side container logic available (e.g., call-with-container). I'll let you know how it goes. > Or we mount the host store over 9p and exec a dynamically-linked Guile > from there. I understand hat by "9p" you mean to share the file system with the VM, but I don't quite understand what this option entails. If the initrd doesn't use the right Guile, why will sharing the store via 9p work? Do you mean to exec directly somehow, instead of using an initrd...? -- Chris