From patchwork Mon Nov 9 20:55:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Babic X-Patchwork-Id: 1397137 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com (client-ip=2a00:1450:4864:20::140; helo=mail-lf1-x140.google.com; envelope-from=swupdate+bncbcxploxj6ikrbwwzu36qkgqeqpuyhxi@googlegroups.com; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.a=rsa-sha256 header.s=20161025 header.b=k01oCL0m; dkim-atps=neutral Received: from mail-lf1-x140.google.com (mail-lf1-x140.google.com [IPv6:2a00:1450:4864:20::140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CVNZB6bhyz9sPB for ; Tue, 10 Nov 2020 07:56:00 +1100 (AEDT) Received: by mail-lf1-x140.google.com with SMTP id w1sf1754913lfl.14 for ; Mon, 09 Nov 2020 12:56:00 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1604955355; cv=pass; d=google.com; s=arc-20160816; b=syoUQUBkH477grHtW5n10gTlEmsDwRW1QanE35AxRL+kSkF7R9siNgvwiZuUgUXdko 4ba1Tty1zjNJVlVvCn9+YOXe1+A2f40Vd0OASwsJcUw569x5+Qn1wWYvhkvvdPEZCFmU 92P7acg5k7mcCPs0s0EqJptIlGipDMvveSMAJ6Gbm8ZqaUS0lUi4T3LztxR9KbTIk58K oN+HLirstyk9qeVUN8Vq+omkR8dq/7RubqcFJJJU3honykJPX66jxqlp94yhnETjg38/ 7rWk91eeyh9/igxv/c9llnhZNHqsxetolb+0iHDmVLmQdXXLoVPhtvnjZYWdUMkBskiI ONqw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:message-id:date :subject:cc:to:from:sender:dkim-signature; bh=zPqJo4fAagDmnuQVQTlG2DkDmB7Gv6btFJ5s2Dv5mzk=; b=FPMCv6gPGkptGHJPI1hWN1bBlYks1VVevlqssbwyVZVHXWdBsC+NAYz5CSw+bvfTPx Bx+nOvJKSS5Rmo2WV+5F2jA4+rQRgivPYYisJ3/9U3Ybug3tgvKIwCTVZ3gKMzetPmhM cDLafOF9xw4SLHo3KhWseDsZaCjWziwOwVvCxJkptkJzfafF5CzuU+oVHLxkrXSmzdBV ZIW42giGEPt8Q2DV00DwT9HQAYfOb2iXOZrNM379K33cd2+KgU3SBVI7eXS9q2LuhSWX hCXbcoVbsSKNzOCdCkPmO9IWeHGHnbZKxSRE+3yYP2LsdS3ipGLuK6cQo+QKvuGsvPu6 D9jA== ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=neutral (google.com: 212.18.0.9 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) smtp.mailfrom=sbabic@denx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:mime-version :x-original-sender:x-original-authentication-results:precedence :mailing-list:list-id:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=zPqJo4fAagDmnuQVQTlG2DkDmB7Gv6btFJ5s2Dv5mzk=; b=k01oCL0mCmGliRv8NM1zp8td+1xhiZgf6SjhJmWeKFHCHLdSMkS29FFtHdY69qwB94 D99vXj47KgtwUp8xyFl0JVKwU1YeUZVw3PN82Fp855MPjofgfmrLxBW3gr8DSDZrO1Sq mxAngh3R1t/DECUh8nacKwesGdD5D4lAk71S0nF3Mbvb4EmxfQrd/VCqn9IDJ3lYf7J7 OWaT5cZ41SfcbfjWSJof63HeKy8TLgmdCGWzndUlIac+dZ/BdygfGTjzGpkFFcilzLYB G5IPC19ZdTzQgPROFlkSek9nK5w0SB5FnTxIfzJRyxDJrlAf9my2TZXathDI/TJfKkNK BjHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=sender:x-gm-message-state:from:to:cc:subject:date:message-id :mime-version:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:x-spam-checked-in-group:list-post :list-help:list-archive:list-subscribe:list-unsubscribe; bh=zPqJo4fAagDmnuQVQTlG2DkDmB7Gv6btFJ5s2Dv5mzk=; b=NCnx6rSPzBsyp6UnnJr6eGxczOpSqhrHy9qTWO02uwtTaKDl/G1CUrWSmoZoCfIvow KjzcSRYDDreEZqi81cOjCb2+3iTtAZ8BshaZSCAfBlh/NRCN0lwocjvsl7TCLC+ooAZz re7lVMBbOuu2b2kSBGW9CsN9S/zYLPWcfQKargWfmfxBibM8ckIt63IeuTeXJZei9+8U ByFQtqWgxYd01eYYL43gV/L3uNF+zXChxw5phFLd7QxOUFnAlSK38uymoANYUHdPBiyl 48AzYFJpRZ1h0Rurb0f/QRgtXEORAvzEhZ6H0fwFGrzuIy2XTr6+g1okLvzTm5A72XFH J7KA== Sender: swupdate@googlegroups.com X-Gm-Message-State: AOAM531A2LzHagOU4/wPZrPuFBFPjSewgTvFpaca92VHWqsNlGTsvjH7 fPBTY2F7g+G6D4yu9h04MzU= X-Google-Smtp-Source: ABdhPJxC3+ZZFnPcCVpt3V0py9oq8IldEijWFMLsX6N1HlWXo6GqIoAO+QXTSoJULt541JK3bcSjZA== X-Received: by 2002:a19:c791:: with SMTP id x139mr883282lff.513.1604955355027; Mon, 09 Nov 2020 12:55:55 -0800 (PST) X-BeenThere: swupdate@googlegroups.com Received: by 2002:a2e:818d:: with SMTP id e13ls1695468ljg.5.gmail; Mon, 09 Nov 2020 12:55:53 -0800 (PST) X-Received: by 2002:a2e:3a12:: with SMTP id h18mr7404422lja.225.1604955353491; Mon, 09 Nov 2020 12:55:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1604955353; cv=none; d=google.com; s=arc-20160816; b=GpQPiN/2fHCc1/mprY4nJGPhBfV+nIP3eaRKSBV0Vmp9SoV54xbcmG/PnY9HO6psIk 3f9noXks0qMuhvRePhfy68t+iDz3cqcR8Q0tbdoYmmeheFrj+TDVqeHckSPY7Ju6Zf2g 2jjpEOcX4/BGIQTh9XRLkvKlR5MNUY/NFbFF0swR6ELwgzsJ0f15D4PnaVDr3fvC7JZD hUhqKKa/ZDAHmUznNcsZX0tPQvwg44KxHzUHIWH44T20LlL9GEYPTg9BdMocvV9H5to8 ceBonV40Gcuu10jfcpcqRdxom+qJgmUWpa9uihOJCulro35rt1+Mva8hU7rGJD1LuinA lcfg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from; bh=eNzHNaD4eWcu/1NzAJwLkPHoVa/NKM3NXa6xYG7gKU4=; b=vxcQHfF8avfh4aTkYZAkQQQDB0PdIFFmv/pK7OxWDoS6RcHX8iVx6GG+YB7xIm1fW+ lJIuHc4ytWW6VkbRtIlnz1hR0jNLvkZyPEHCdka4fgLFF+IculEYvpDnJ6PX95u/VE5k LSsNFPZzvMGxPr4krdvLEc/rtQStVOxN/IojkmkFo6BhIshTTtBpeH5JGqiz10tOUQGA qilk2lRDTRG8pEJCPoLy7EZL+IA6cbDSm/7nazXPn2z1Y5SheBss+jCAYKLMvdYzh35R J+hVzcZLSCyfdhzPMe4JEj/4nVEY70mHNvJl9eouFrrQFyYEL+UcSSfNFOIKm/tCg9hg T0/w== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=neutral (google.com: 212.18.0.9 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) smtp.mailfrom=sbabic@denx.de Received: from mail-out.m-online.net (mail-out.m-online.net. [212.18.0.9]) by gmr-mx.google.com with ESMTPS id h4si336724ljl.1.2020.11.09.12.55.52 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 09 Nov 2020 12:55:52 -0800 (PST) Received-SPF: neutral (google.com: 212.18.0.9 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) client-ip=212.18.0.9; Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 4CVNYz6dKpz1qs0j; Mon, 9 Nov 2020 21:55:51 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 4CVNYz6GQ6z1qyX3; Mon, 9 Nov 2020 21:55:51 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id 5V6OX92MGExN; Mon, 9 Nov 2020 21:55:50 +0100 (CET) Received: from babic.homelinux.org (host-88-217-136-221.customer.m-online.net [88.217.136.221]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS; Mon, 9 Nov 2020 21:55:50 +0100 (CET) Received: from localhost (mail.babic.homelinux.org [127.0.0.1]) by babic.homelinux.org (Postfix) with ESMTP id 893694540496; Mon, 9 Nov 2020 21:55:50 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at babic.homelinux.org Received: from babic.homelinux.org ([127.0.0.1]) by localhost (mail.babic.homelinux.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SuDIBOpeCNBb; Mon, 9 Nov 2020 21:55:48 +0100 (CET) Received: from paperino.fritz.box (paperino.fritz.box [192.168.178.64]) by babic.homelinux.org (Postfix) with ESMTP id EF95345403CB; Mon, 9 Nov 2020 21:55:47 +0100 (CET) From: Stefano Babic To: swupdate@googlegroups.com Cc: Stefano Babic , Sava Jakovljev Subject: [swupdate] [PATCH] Generate shared IPC library and link tools against it Date: Mon, 9 Nov 2020 21:55:46 +0100 Message-Id: <20201109205546.379888-1-sbabic@denx.de> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-Original-Sender: sbabic@denx.de X-Original-Authentication-Results: gmr-mx.google.com; spf=neutral (google.com: 212.18.0.9 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) smtp.mailfrom=sbabic@denx.de Precedence: list Mailing-list: list swupdate@googlegroups.com; contact swupdate+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: swupdate@googlegroups.com X-Google-Group-Id: 605343134186 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , Signed-off-by: Sava Jakovljev Signed-off-by: Stefano Babic --- Makefile | 62 ++++++++++++++++++++++++++++++++------------------- ipc/Makefile | 2 +- test/Makefile | 2 +- 3 files changed, 41 insertions(+), 25 deletions(-) diff --git a/Makefile b/Makefile index a94c50d..7252f77 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,8 @@ SUBLEVEL = 0 EXTRAVERSION = NAME = +IPCLIB_VERSION = 0.1 + # *DOCUMENTATION* # To see a list of typical targets execute "make help" # More info can be located in ./README @@ -357,10 +359,16 @@ include $(srctree)/Makefile.flags # Defaults to vmlinux, but the arch makefile usually adds further targets objs-y := core handlers -libs-y := corelib ipc mongoose parser suricatta bootloader -shareds-y := bindings +libs-y := corelib mongoose parser suricatta bootloader +bindings-y := bindings tools-y := tools +ipc-y := ipc +ipc-lib := $(patsubst %,%/built-in.o, $(ipc-y)) +ipc-dirs := $(ipc-y) + +swupdate-ipc-lib := libswupdate.so.${IPCLIB_VERSION} + swupdate-dirs := $(objs-y) $(libs-y) swupdate-objs := $(patsubst %,%/built-in.o, $(objs-y)) swupdate-libs := $(patsubst %,%/lib.a, $(libs-y)) @@ -376,9 +384,9 @@ ifeq ($(HAVE_LUA),y) lua_swupdate := lua_swupdate.so.0.1 endif -shared-dirs := $(shareds-y) -shared-libs := $(patsubst %,%/built-in.o, $(shareds-y)) -shared-all := $(shared-libs) +bindings-dirs := $(bindings-y) +bindings-libs := $(patsubst %,%/built-in.o, $(bindings-y)) +bindings-all := $(bindings-libs) PHONY += cfg-sanity-check cfg-sanity-check: @@ -401,11 +409,11 @@ quiet_cmd_swupdate = LD $@ "$(CC)" \ "$(KBUILD_CFLAGS) $(CFLAGS_swupdate)" \ "$(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_swupdate)" \ - "$(swupdate-objs)" \ + "$(swupdate-objs) $(ipc-lib)" \ "$(swupdate-libs)" \ - "$(LDLIBS)" + "$(LDLIBS)" -swupdate_unstripped: $(swupdate-all) FORCE +swupdate_unstripped: ${swupdate-ipc-lib} $(swupdate-all) FORCE $(call if_changed,swupdate) quiet_cmd_addon = LD $@ @@ -413,10 +421,10 @@ quiet_cmd_addon = LD $@ "$@" \ "$(CC)" \ "$(KBUILD_CFLAGS) $(CFLAGS_swupdate)" \ - "$(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_swupdate)" \ + "$(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_swupdate) -L$(objtree)" \ "$(2)" \ "$(swupdate-libs)" \ - "$(LDLIBS)" + "$(LDLIBS) :${swupdate-ipc-lib}" quiet_cmd_shared = LD $@ cmd_shared = $(srctree)/scripts/trylink \ @@ -424,12 +432,16 @@ quiet_cmd_shared = LD $@ "$(CC)" \ "-shared -Wl,-soname,$@" \ "$(KBUILD_CFLAGS) $(CFLAGS_swupdate)" \ - "$(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_swupdate)" \ - "$(shared-libs) ipc/lib.a" \ - "$(LDLIBS)" + "$(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_swupdate) -L$(objtree)" \ + "$(2)" \ + "" \ + "$(LDLIBS)" -lua_swupdate.so.0.1: $(shared-libs) ${swupdate-libs} FORCE - $(call if_changed,shared) +lua_swupdate.so.0.1: $(bindings-libs) ${swupdate-ipc-lib} FORCE + $(call if_changed,shared,$(bindings-libs) $(ipc-lib)) + +${swupdate-ipc-lib}: $(ipc-lib) FORCE + $(call if_changed,shared,$(ipc-lib)) ifeq ($(SKIP_STRIP),y) quiet_cmd_strip = echo $@ @@ -443,7 +455,7 @@ endif swupdate: cfg-sanity-check swupdate_unstripped $(call cmd,strip) -${tools-bins}: ${tools-objs} ${swupdate-libs} FORCE +${tools-bins}: ${swupdate-ipc-lib} ${tools-objs} ${swupdate-libs} FORCE $(call if_changed,addon,$@.o) @mv $@ $@_unstripped $(call cmd,strip) @@ -459,7 +471,8 @@ install: all install -m 0644 $(srctree)/include/network_ipc.h ${DESTDIR}/${INCLUDEDIR} install -m 0644 $(srctree)/include/swupdate_status.h ${DESTDIR}/${INCLUDEDIR} install -m 0644 $(srctree)/include/progress_ipc.h ${DESTDIR}/${INCLUDEDIR} - install -m 0755 ipc/lib.a ${DESTDIR}/${LIBDIR}/libswupdate.a + install -m 0755 $(objtree)/${swupdate-ipc-lib} ${DESTDIR}/${LIBDIR} + ln -sr ${DESTDIR}/${LIBDIR}/${swupdate-ipc-lib} ${DESTDIR}/${LIBDIR}/libswupdate.so if [ $(HAVE_LUA) = y ]; then \ install -d ${DESTDIR}/${LIBDIR}/lua/$(LUAVER); \ install -m 0755 ${lua_swupdate} $(DESTDIR)/${LIBDIR}/lua/$(LUAVER); \ @@ -474,13 +487,14 @@ acceptance-tests: FORCE PHONY += test test: - $(Q)$(MAKE) $(build)=test SWOBJS="$(swupdate-objs)" SWLIBS="$(swupdate-libs)" LDLIBS="$(LDLIBS)" tests + $(Q)$(MAKE) $(build)=test SWOBJS="$(swupdate-objs)" SWLIBS="$(swupdate-libs) ${swupdate-ipc-lib}" LDLIBS="$(LDLIBS)" tests # The actual objects are generated when descending, # make sure no implicit rule kicks in $(sort $(swupdate-all)): $(swupdate-dirs) ; $(sort $(tools-all)): $(tools-dirs) ; -$(sort $(shared-all)): $(shared-dirs) ; +$(sort $(bindings-all)): $(bindings-dirs) ; +$(sort $(ipc-lib)): $(ipc-dirs) ; # Handle descending into subdirectories listed in $(vmlinux-dirs) # Preset locale variables to speed up the build process. Limit locale @@ -488,12 +502,14 @@ $(sort $(shared-all)): $(shared-dirs) ; # make menuconfig etc. # Error messages still appears in the original language -PHONY += $(swupdate-dirs) $(tools-dirs) $(shared-dirs) +PHONY += $(swupdate-dirs) $(tools-dirs) $(bindings-dirs) $(ipc-dirs) $(swupdate-dirs): scripts $(Q)$(MAKE) $(build)=$@ $(tools-dirs): scripts $(Q)$(MAKE) $(build)=$@ -$(shared-dirs): scripts +$(bindings-dirs): scripts + $(Q)$(MAKE) $(build)=$@ +$(ipc-dirs): scripts $(Q)$(MAKE) $(build)=$@ ### @@ -505,7 +521,7 @@ $(shared-dirs): scripts # Directories & files removed with 'make clean' CLEAN_DIRS += -CLEAN_FILES += swupdate swupdate_unstripped* lua_swupdate* ${tools-bins} \ +CLEAN_FILES += swupdate swupdate_unstripped* lua_swupdate* libswupdate* ${tools-bins} \ $(patsubst %,%_unstripped,$(tools-bins)) \ $(patsubst %,%.out,$(tools-bins)) \ $(patsubst %,%.map,$(tools-bins)) \ @@ -518,7 +534,7 @@ MRPROPER_FILES += .config .config.old tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS # clean: rm-dirs := $(CLEAN_DIRS) clean: rm-files := $(CLEAN_FILES) -clean-dirs := $(addprefix _clean_, $(swupdate-dirs) $(tools-dirs) $(shared-dirs) scripts/acceptance-tests) +clean-dirs := $(addprefix _clean_, $(swupdate-dirs) $(ipc-dirs) $(tools-dirs) $(bindings-dirs) scripts/acceptance-tests) PHONY += $(clean-dirs) clean archclean $(clean-dirs): diff --git a/ipc/Makefile b/ipc/Makefile index 5c12d3d..f634dce 100644 --- a/ipc/Makefile +++ b/ipc/Makefile @@ -1,6 +1,6 @@ # Copyright (C) 2014-2018 Stefano Babic # # SPDX-License-Identifier: GPL-2.0-or-later -lib-y += network_ipc.o network_ipc-if.o progress_ipc.o +obj-y += network_ipc.o network_ipc-if.o progress_ipc.o EXTRA_CFLAGS += -fPIC diff --git a/test/Makefile b/test/Makefile index 747d973..0e100ab 100644 --- a/test/Makefile +++ b/test/Makefile @@ -49,7 +49,7 @@ quiet_cmd_linktestexe = LD $(basename $@) "$(SWLIBS)" \ "$(LDLIBS) cmocka" -EXECUTE_TEST = echo "RUN $(subst $(obj)/,,$(var))"; CMOCKA_MESSAGE_OUTPUT=TAP $(var) +EXECUTE_TEST = echo "RUN $(subst $(obj)/,,$(var))"; LD_LIBRARY_PATH=$(objtree) CMOCKA_MESSAGE_OUTPUT=TAP $(var) PHONY += default default: