From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47080) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJd8b-0005tm-MA for qemu-devel@nongnu.org; Wed, 11 Sep 2013 01:38:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VJd8X-0006YL-30 for qemu-devel@nongnu.org; Wed, 11 Sep 2013 01:38:49 -0400 Received: from mx1.redhat.com ([209.132.183.28]:35662) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJd8W-0006Y9-S4 for qemu-devel@nongnu.org; Wed, 11 Sep 2013 01:38:45 -0400 From: Fam Zheng Date: Wed, 11 Sep 2013 13:38:23 +0800 Message-Id: <1378877909-28518-1-git-send-email-famz@redhat.com> Subject: [Qemu-devel] [RFC PATCH v5 0/6] Shared Library Module Support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, famz@redhat.com, mjt@tls.msk.ru, stefanha@redhat.com, pbonzini@redhat.com, vilanova@ac.upc.edu, rth@twiddle.net This series implements feature of shared object building as described in: http://wiki.qemu.org/Features/Modules It's achieved in three steps, with extra bonus to change curl and qed to shared library modules in the end (only to demonstrate the usage, no "make install" support of .so files yet). v5: Keep foo.mo-objs idea for module objects. Unnest block-obj-m and common-obj-m in Makefile.target. Move add-modules to unnest-vars to be reused in Makefile.target. Use /dev/null to replace realpath for expand-objs. v4: Added --enable-modules in the end of series. Make nested-vars and obj-base as arguemnts to unnest-vars. Take Paolo's idea in comments for v2 and switch back module objects syntax to: $(obj)/foo.mo : $(addprefix $(obj)/, bar.o biz.o qux.o) because this needs less duplication among Makefiles. Fam Zheng (6): make.rule: fix $(obj) to a real relative path rule.mak: allow per object cflags and libs Makefile: introduce common-obj-m and block-obj-m for DSO module: implement module loading function configure: introduce --enable-modules block: build qed and curl as shared library Makefile | 22 ++++++++++++++- Makefile.objs | 18 ++---------- Makefile.target | 20 +++++++++++-- block.c | 1 + block/Makefile.objs | 7 +++-- bsd-user/main.c | 3 ++ configure | 40 ++++++++++++++++++-------- include/qemu/module.h | 9 ++++++ linux-user/main.c | 3 ++ rules.mak | 77 ++++++++++++++++++++++++++++++++++++++++++--------- scripts/create_config | 4 +++ tests/Makefile | 2 ++ util/module.c | 53 +++++++++++++++++++++++++++++++++++ vl.c | 2 ++ 14 files changed, 215 insertions(+), 46 deletions(-) -- 1.8.3.1