Skip to content
  • Fam Zheng's avatar
    rules.mak: introduce DSO rules · 17969268
    Fam Zheng authored
    
    
    Add necessary rules and flags for shared object generation.
    The new rules introduced here are:
    
    1) %.o in $(common-obj-m) is compiled to %.o, then linked to %.so.
    
    2) %.mo in $(common-obj-m) is the placeholder for %.so for pattern
    matching in Makefile. It's linked to "-shared" with all its dependencies
    (multiple *.o) as input. Which means the list of depended objects must
    be specified in each sub-Makefile.objs:
    
        foo.mo-objs := bar.o baz.o qux.o
    
    in the same style with foo.o-cflags and foo.o-libs. The objects here
    will be prefixed with "$(obj)/" if it's a subdirectory Makefile.objs.
    
    3) For all files ending up in %.so, the following is added automatically:
    
        foo.o-cflags += -fPIC -DBUILD_DSO
    
    Also introduce --enable-modules in configure, the option will enable
    support of shared object build. Otherwise objects are static linked to
    executables.
    
    Signed-off-by: default avatarFam Zheng <famz@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    17969268