On 31 January 2014 14:49, Paolo Bonzini <pbonz...@redhat.com> wrote: > Yet another rebase of the loadable module series, with the > following changes: > > 1) reworked a bit the build system magic so that "make foo.o" will pick > the right flags when foo.o is part of a module. > > 2) redid the split between patches 6/7/9, doing first the makefile rules, > then the C code to load the modules, and only introducing the (initially > empty) *-obj-m variables at the end. > > 3) finally, tweaked the patches to only require limited changes to > scripts/create_config.
My testing on MacOS shows that it's not looking in the right relative-to-executable path for modules. This is with an extra printf in module_load() to show every path we pass to module_load_file(): manooth$ ./build/modules/x86_64-softmmu/qemu-system-x86_64 -cdrom http://boot.ipxe.org/ipxe.iso trying module load /usr/local/lib/qemu/block-curl.so trying module load /../block-curl.so trying module load /block-curl.so Can't find module: block-curl trying module load /usr/local/lib/qemu/block-ssh.so trying module load /../block-ssh.so trying module load /block-ssh.so Can't find module: block-ssh qemu-system-x86_64: -cdrom http://boot.ipxe.org/ipxe.iso: could not open disk image http://boot.ipxe.org/ipxe.iso: Unknown protocol Looking in "/../" and "/" seems pretty weird. Contrast the set of search paths on Linux: pm215@canth:~/src/qemu/qemu$ ./build/modules/x86_64-softmmu/qemu-system-x86_64 -cdrom http://boot.ipxe.org/ipxe.iso trying /usr/local/lib/qemu/block-curl.so trying /home/pm215/src/qemu/qemu/build/modules/x86_64-softmmu/../block-curl.so trying /usr/local/lib/qemu/block-rbd.so trying /home/pm215/src/qemu/qemu/build/modules/x86_64-softmmu/../block-rbd.so Looks like we're not getting the executable path correctly on MacOS for some reason. Also, mjt pointed out on IRC that we probably want to allow installing binary modules into a path with the arch name in it, to allow for multiarch distros. thanks -- PMM