Skip to content
Snippets Groups Projects
  • Paolo Bonzini's avatar
    07c4523c
    contrib/plugins: remove -soname argument · 07c4523c
    Paolo Bonzini authored
    
    -soname is not needed for runtime-loaded modules.  For example, Meson says:
    
                if not isinstance(target, build.SharedModule) or target.force_soname:
                    # Add -Wl,-soname arguments on Linux, -install_name on OS X
                    commands += linker.get_soname_args(
                        self.environment, target.prefix, target.name, target.suffix,
                        target.soversion, target.darwin_versions)
    
    (force_soname is set is shared modules are linked into a build target, which is not
    the case here.
    
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    07c4523c
    History
    contrib/plugins: remove -soname argument
    Paolo Bonzini authored
    
    -soname is not needed for runtime-loaded modules.  For example, Meson says:
    
                if not isinstance(target, build.SharedModule) or target.force_soname:
                    # Add -Wl,-soname arguments on Linux, -install_name on OS X
                    commands += linker.get_soname_args(
                        self.environment, target.prefix, target.name, target.suffix,
                        target.soversion, target.darwin_versions)
    
    (force_soname is set is shared modules are linked into a build target, which is not
    the case here.
    
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Makefile 1.00 KiB
# -*- Mode: makefile -*-
#
# This Makefile example is fairly independent from the main makefile
# so users can take and adapt it for their build. We only really
# include config-host.mak so we don't have to repeat probing for
# programs that the main configure has already done for us.
#

BUILD_DIR := $(CURDIR)/../..

include $(BUILD_DIR)/config-host.mak

VPATH += $(SRC_PATH)/contrib/plugins

NAMES :=
NAMES += execlog
NAMES += hotblocks
NAMES += hotpages
NAMES += howvec
NAMES += lockstep
NAMES += hwprofile
NAMES += cache
NAMES += drcov

SONAMES := $(addsuffix .so,$(addprefix lib,$(NAMES)))

# The main QEMU uses Glib extensively so it's perfectly fine to use it
# in plugins (which many example do).
CFLAGS := $(shell $(PKG_CONFIG) --cflags glib-2.0)
CFLAGS += -fPIC -Wall
CFLAGS += $(if $(CONFIG_DEBUG_TCG), -ggdb -O0)
CFLAGS += -I$(SRC_PATH)/include/qemu

all: $(SONAMES)

%.o: %.c
	$(CC) $(CFLAGS) -c -o $@ $<

lib%.so: %.o
	$(CC) -shared -o $@ $^ $(LDLIBS)

clean:
	rm -f *.o *.so *.d
	rm -Rf .libs

.PHONY: all clean