From patchwork Tue Oct 27 15:38:13 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sava Jakovljev X-Patchwork-Id: 1388730 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::338; helo=mail-wm1-x338.google.com; envelope-from=swupdate+bncbaabbbp64d6akgqeqfed3ca@googlegroups.com; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=teufel.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=pwQywcII; dkim-atps=neutral Received: from mail-wm1-x338.google.com (mail-wm1-x338.google.com [IPv6:2a00:1450:4864:20::338]) (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 4CLG8B5Lcwz9sVH for ; Wed, 28 Oct 2020 02:38:50 +1100 (AEDT) Received: by mail-wm1-x338.google.com with SMTP id f191sf449755wmf.9 for ; Tue, 27 Oct 2020 08:38:50 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1603813126; cv=pass; d=google.com; s=arc-20160816; b=XpjwtkURgngjd2RlFmMIkXGSFtxjp8soU4NVsmS9POshubaqvoQHP9y+r1JEr9xO45 VeQBWom3eUhfpbnHBBEA8ZhqmcrIkbqfl287H2dqKEH8Rz6/zLtNZ1jKGzlGxqvJlVnc sXtdrzSaYXMe0TkSnU4MPwTTEk7ux8yS3PHWbV9gFWPLn+qE6bztzISXopvnnREaNdpY HxKxY8Q8LHoMCdG3HM8xLEhS0RFEQ4tPMYSzJDY22JlsrzYaQ6gPa8n6XdvxL0HfVokv 6twL3dHS2UKShD4vx35G1GBBpPoGmIBKSwI5ChIuVQsy+ih0C6TtLqMs7XcY8svFdoPP Dq2A== 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=Lk/Wv6h31Bpv9Fsg1h9IT3pehqUPzt80ZYUHiLWOV+s=; b=KK5sGH561CKkLBM8x2dx+6TSp1wO+stEaA8LEmV38d9Fq8NXvobydeYwOMCFStOKL6 /FfQfDpCCzTn/kcq5uMlKcG8nnu0S2+bwLPE3hOXsWgDmAT8PiYdMfirp2qKCIFB4yGb 0kzRwMIjpdB+NtLDi3YgUlTST6peR26obIKPGMYompR7JOg4HPxXgZ/VE6V+JtqJwd8n tWo3ytcyg7NTKdqV7rv9BCodwMp0393AhAMplnHkfxz9uJQQ6p7uIb3mgBQLD6s6vonQ GqlgtmKlOb6gyQbOJIyhZAGUx+CdPCrtpaoUrwBfLRsjVjzTfiaDopM/BVgfAclml4vv TrDw== ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=pass (google.com: domain of sava.jakovljev@teufel.de designates 94.100.132.219 as permitted sender) smtp.mailfrom=sava.jakovljev@teufel.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=Lk/Wv6h31Bpv9Fsg1h9IT3pehqUPzt80ZYUHiLWOV+s=; b=pwQywcII7cdHvn52dIPFH8sKaucLpGS7QtHhdxWsh97Dd/hZiVxbpkb/kj9IhzbQIt GE6E5ZTiFrJ6wyZSgl4ri7gLIgSiJRuYvwyATQE29f8ywdKEM5S849LKlSnYf6fJF3Ny Be571tK+1sOve1WCXy2dd9yLIbsbwQxFRFpNiawoOPx6FUioCkRcKUumTI1NJGCS511U ui5SgC+h0hnHZwlZmOoSZlNTsOnQaqxVY4XhX85f5dU5Tgc0REBxC7mKg6blxhqQwa1Y JJIjyuHbWIdABJRTXr02ANgrc/NeKC/ifmF4PmcGrzdGSfmd6W/XjYmhindgilxoqvLE D6jQ== 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=Lk/Wv6h31Bpv9Fsg1h9IT3pehqUPzt80ZYUHiLWOV+s=; b=JxM54+yplGF3DZEdrKKuQYDcTNjJXBCsqWB4gxi+VRYVRENhkut//OcnoCSdskApvP lnub9C4YQzB4OSXO+eNwCqFbZ26y+L4bvS+P9GUnwc8PPHR07hkCp2dZbsUcqg/lXSJa ILP6st95gkbkukNbNnkRemvbL0IKxLOVACgVmcMcL3ROCmhKjbPq5+eRBogwRr3nbv/H d4p3ldhFfzW/BG83m6eVLSfhJMKdMJhLB2ry7uUczgTZT4H0c6yLC0CIbXD2rDm0t8Kh gGSIDNv1kZUkuNyJ7UgMUR+c3/o/NTCeZ/nvpEevpYde6ko6MOV2od5lJRzou0M4YBx5 Mamg== Sender: swupdate@googlegroups.com X-Gm-Message-State: AOAM530fWY/KOUggmDLktudx+mETY8Oiim5aWkAKG5aZtrRt8WvFdExn CT8YxLueWL46w3RstRPBuWQ= X-Google-Smtp-Source: ABdhPJwspdn5xaC1t7QZ7nxWjAO4noE0qpS8+8QfrQMpg7WnGsgy17g5nZ91AlYus0Dsw6OIEEqTbw== X-Received: by 2002:a1c:7f97:: with SMTP id a145mr3479385wmd.160.1603813126138; Tue, 27 Oct 2020 08:38:46 -0700 (PDT) X-BeenThere: swupdate@googlegroups.com Received: by 2002:a1c:6886:: with SMTP id d128ls42603wmc.2.canary-gmail; Tue, 27 Oct 2020 08:38:45 -0700 (PDT) X-Received: by 2002:a1c:55c1:: with SMTP id j184mr3390199wmb.180.1603813124916; Tue, 27 Oct 2020 08:38:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603813124; cv=none; d=google.com; s=arc-20160816; b=rJ3JIaghqe2bDRH8mrNGtMStXhl6Tx95UM5B+pXb8Z/Q7Z4SsXBO1LHriUmtZznZcK hzLnlo/lvD55meuQrqgDHjufLxhAZv3S2tkb/UAKM0tdgMP2z5/wTVL2E47EpZq6oMyK a1lIfY+hi2UmJx22G5j+1HPC5+v9OKikmqYv8aNKbRTcrnzarvnC0zmbVBRZg7MAZqUK AsZ08+ltxmmeflys7sCsjDWsOwqewP1/dvroqyVvPrHItEuur798WuBbfv95tkdJ78kD pxz/UA4QLja5cDhg5rPnTS2sRmnqeA3DX9wVkrqpvGUOWi8GGg1zGxl2GOhdppoQzOc6 NMzw== 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=mqAgVw7/5TxaekX9QH47XLoO9R9mCmBndBJd35S+rYg=; b=P3pMIad0cPGj13DfmytFpclcaLiKrRBthDK62yS8HtOd8fof8LxLbBrM5ZQg1LqQAk BTAGnSOrS6tK74DB4g7SzXGx4A1Gl4cBOntr+2EwzrMx/bFgwDBl77iVxshacNWjaU45 +zBHsHqD0SvuCG5clFi9J+EqnHUpm16fEFTaWCHxbCJb8NQUiUrDaEctYoOMZULk8cWg oX/eS6TfSW+kmpOuOwb4ZOrFxwn4bVH3F+sUD88pnvAEgOLZkhRJdM5rAWhTRXhvIjPX YIC5w12HyQgNgYTnMPzSeyN0iKr597bebiYQdHL26Tsi12NYfVCHJwUJrQ18J76eWznw 6xhQ== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of sava.jakovljev@teufel.de designates 94.100.132.219 as permitted sender) smtp.mailfrom=sava.jakovljev@teufel.de Received: from mx-relay19-hz1.antispameurope.com (mx-relay19-hz1.antispameurope.com. [94.100.132.219]) by gmr-mx.google.com with ESMTPS id o138si47054wme.2.2020.10.27.08.38.44 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 27 Oct 2020 08:38:44 -0700 (PDT) Received-SPF: pass (google.com: domain of sava.jakovljev@teufel.de designates 94.100.132.219 as permitted sender) client-ip=94.100.132.219; Received: from unknown ([212.91.255.190]) by mx-relay19-hz1.antispameurope.com; Tue, 27 Oct 2020 16:38:44 +0100 From: Sava Jakovljev To: CC: Sava Jakovljev Subject: [swupdate] [PATCH] Generate shared IPC library and link executables against it Date: Tue, 27 Oct 2020 16:38:13 +0100 Message-ID: <20201027153813.1741603-1-sava.jakovljev@teufel.de> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 X-Originating-IP: [10.10.25.44] X-ClientProxiedBy: DNS-EX-01.teufel.local (10.10.0.80) To DNS-EX-02.teufel.local (10.10.0.81) X-C2ProcessedOrg: b93e13a0-e8da-4ba4-97b8-f14375b21c41 X-cloud-security-sender: sava.jakovljev@teufel.de X-cloud-security-recipient: swupdate@googlegroups.com X-cloud-security-Virusscan: CLEAN X-cloud-security-disclaimer: This E-Mail was scanned by E-Mailservice on mx-relay19-hz1.antispameurope.com with B0DCA10E1DF2 X-cloud-security-connect: unknown[212.91.255.190], TLS=1, IP=212.91.255.190 X-cloud-security: scantime:1.304 X-Original-Sender: sava.jakovljev@teufel.de X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of sava.jakovljev@teufel.de designates 94.100.132.219 as permitted sender) smtp.mailfrom=sava.jakovljev@teufel.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 --- Makefile | 53 +++++++++++++++++++++++++++++++++++++++------------- ipc/Makefile | 2 +- 2 files changed, 41 insertions(+), 14 deletions(-) diff --git a/Makefile b/Makefile index a94c50d..a3ea9b3 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 +libs-y := corelib mongoose parser suricatta bootloader shareds-y := bindings tools-y := tools +ipc-y := ipc +ipc-lib := $(patsubst %,%/built-in.o, $(ipc-y)) +ipc-dirs := $(ipc-y) + +swupdate-ipc-lib := libswupdate_ipc.so.${IPCLIB_VERSION} + swupdate-dirs := $(objs-y) $(libs-y) swupdate-objs := $(patsubst %,%/built-in.o, $(objs-y)) swupdate-libs := $(patsubst %,%/lib.a, $(libs-y)) @@ -400,12 +408,12 @@ quiet_cmd_swupdate = LD $@ "$@" \ "$(CC)" \ "$(KBUILD_CFLAGS) $(CFLAGS_swupdate)" \ - "$(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_swupdate)" \ + "$(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_swupdate) -L$(srctree)" \ "$(swupdate-objs)" \ "$(swupdate-libs)" \ - "$(LDLIBS)" + "$(LDLIBS) :${swupdate-ipc-lib}" -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$(srctree)" \ "$(2)" \ "$(swupdate-libs)" \ - "$(LDLIBS)" + "$(LDLIBS) :${swupdate-ipc-lib}" quiet_cmd_shared = LD $@ cmd_shared = $(srctree)/scripts/trylink \ @@ -424,13 +432,28 @@ quiet_cmd_shared = LD $@ "$(CC)" \ "-shared -Wl,-soname,$@" \ "$(KBUILD_CFLAGS) $(CFLAGS_swupdate)" \ + "$(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_swupdate) -L$(srctree)" \ + "$(shared-libs)" \ + "" \ + "$(LDLIBS) :${swupdate-ipc-lib}" + +quiet_cmd_ipclib = LD $@ + cmd_ipclib = $(srctree)/scripts/trylink \ + "$@" \ + "$(CC)" \ + "-shared -Wl,-soname,$@" \ + "$(KBUILD_CFLAGS) $(CFLAGS_swupdate)" \ "$(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_swupdate)" \ - "$(shared-libs) ipc/lib.a" \ + "$(ipc-lib)" \ + "" \ "$(LDLIBS)" -lua_swupdate.so.0.1: $(shared-libs) ${swupdate-libs} FORCE +lua_swupdate.so.0.1: $(shared-libs) ${swupdate-ipc-lib} FORCE $(call if_changed,shared) +${swupdate-ipc-lib}: $(ipc-lib) FORCE + $(call if_changed,ipclib) + ifeq ($(SKIP_STRIP),y) quiet_cmd_strip = echo $@ cmd_strip = cp $@_unstripped $@ @@ -443,7 +466,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 +482,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 $(srctree)/${swupdate-ipc-lib} ${DESTDIR}/${LIBDIR} + ln -sr ${DESTDIR}/${LIBDIR}/${swupdate-ipc-lib} ${DESTDIR}/${LIBDIR}/libswupdate_ipc.so if [ $(HAVE_LUA) = y ]; then \ install -d ${DESTDIR}/${LIBDIR}/lua/$(LUAVER); \ install -m 0755 ${lua_swupdate} $(DESTDIR)/${LIBDIR}/lua/$(LUAVER); \ @@ -481,6 +505,7 @@ test: $(sort $(swupdate-all)): $(swupdate-dirs) ; $(sort $(tools-all)): $(tools-dirs) ; $(sort $(shared-all)): $(shared-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,13 +513,15 @@ $(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) $(shared-dirs) $(ipc-dirs) $(swupdate-dirs): scripts $(Q)$(MAKE) $(build)=$@ $(tools-dirs): scripts $(Q)$(MAKE) $(build)=$@ $(shared-dirs): scripts $(Q)$(MAKE) $(build)=$@ +$(ipc-dirs): scripts + $(Q)$(MAKE) $(build)=$@ ### # Cleaning is done on three levels. @@ -505,7 +532,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_ipc* ${tools-bins} \ $(patsubst %,%_unstripped,$(tools-bins)) \ $(patsubst %,%.out,$(tools-bins)) \ $(patsubst %,%.map,$(tools-bins)) \ @@ -518,7 +545,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) $(shared-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