• D
    crypto: move crypto objects out of libqemuutil.la · fb37726d
    Daniel P. Berrange 提交于
    Future patches will be adding more crypto related APIs which
    rely on QOM infrastructure. This creates a problem, because
    QOM relies on library constructors to register objects. When
    you have a file in a static .a library though which is only
    referenced by a constructor the linker is dumb and will drop
    that file when linking to the final executable :-( The only
    workaround for this is to link the .a library to the executable
    using the -Wl,--whole-archive flag, but this creates its own
    set of problems because QEMU is relying on lazy linking for
    libqemuutil.a. Using --whole-archive majorly increases the
    size of final executables as they now contain a bunch of
    object code they don't actually use.
    
    The least bad option is to thus not include the crypto objects
    in libqemuutil.la, and instead define a crypto-obj-y variable
    that is referenced directly by all the executables that need
    this code (tools + softmmu, but not qemu-ga). We avoid pulling
    entire of crypto-obj-y into the userspace emulators as that
    would force them to link to gnutls too, which is not required.
    Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
    fb37726d
Makefile 21.3 KB