From patchwork Wed Sep 19 21:07:44 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Fine X-Patchwork-Id: 971944 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.138; helo=whitealder.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="ibPFSMb4"; dkim-atps=neutral Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42Fsrz3pcyz9sBs for ; Thu, 20 Sep 2018 07:08:03 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 3D15188298; Wed, 19 Sep 2018 21:08:01 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2w85LY5-jzUV; Wed, 19 Sep 2018 21:07:59 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id 0B56788295; Wed, 19 Sep 2018 21:07:59 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id C9EE41C0816 for ; Wed, 19 Sep 2018 21:07:57 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id C2C9488295 for ; Wed, 19 Sep 2018 21:07:57 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xV4RI2-A2Yf7 for ; Wed, 19 Sep 2018 21:07:55 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) by whitealder.osuosl.org (Postfix) with ESMTPS id 872D288291 for ; Wed, 19 Sep 2018 21:07:55 +0000 (UTC) Received: by mail-pl1-f178.google.com with SMTP id g2-v6so3233829plo.2 for ; Wed, 19 Sep 2018 14:07:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=DKm2QROTnnH5d11zTq7R6L50sOvB+995w7KquNl6KmY=; b=ibPFSMb42Dp8gtHp/x3+XzQSzxpTlQWRQaxoJUU8oN8vK+V3YTQ4wHEnuY02SLaRAd HlswWuwJf5IXx1C0bfPFXXmFFWVZ7LlTaiQQyUN/sD417IWms0j6jRdywz0LDB+x2CvI 92MektVeyGZ23NZmFKcGNC4KGLiqM2rCGxbtUZyp6x5JBE1jM5OgO9uNVzYxzUKDoYVX PpnYqb5uLFSVYwMxl5bAPtbrsQMN+DWdXg52gardD3AVH6MIqVG+DktS5HQI6amMHyL0 lWRgXZulmPmo1LmoH8xOe6agQAgWBKlxnIQoHkJza6Rkqnhy4WUH/U7YXMm0kvC9nMc4 chow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=DKm2QROTnnH5d11zTq7R6L50sOvB+995w7KquNl6KmY=; b=D0QkClnPwDvBJ5D8SmTlNwqLKphjRFlGTZ/7Du3fuBZAcoGjjvBn00hPXU8LibRbj5 XgMKNRb4/sSrL+J0hDMYih60Ph0NiFJFW9VHPJ0DMU8+FhVG3poZrAfG55+sSJYkoVTi bypp6UvSAMLQC8+pwMbKQO3rnlgxb9hMFhJrYroDPd324GFbtLDPNoQ443/LG2GbX2RJ 8hsmwVmQvYMmEQUkQV5NepnIN+l1Ie5NUs2tdmmcLA7pnEfvwlIS6O4vTQyl7BIhE2I0 9FzPVegdZ9AAP8LtJhLrGAuHVpQP7qYsxG3E7z6IMMsqk5qof/feK+OaynjjPyQ/u5vr ZOlA== X-Gm-Message-State: APzg51CBhhat3KKKspQnv2IHf1cFhwBmrUXIPCu8nFJoT0bJyc4Muigy VJP+gLPY2HJ0QIDINl7xqqwS5Z3Q X-Google-Smtp-Source: ANB0VdavN13Hgw60xN8fFQfIKt4bXYl7V9znl7HPtvXNWlbl0SvXL5xVnh5hpr3bVTKtgdyc5QW8UA== X-Received: by 2002:a17:902:c8:: with SMTP id a66-v6mr36386592pla.269.1537391274838; Wed, 19 Sep 2018 14:07:54 -0700 (PDT) Received: from localhost.localdomain ([4.35.165.218]) by smtp.gmail.com with ESMTPSA id t21-v6sm34628795pfi.73.2018.09.19.14.07.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 19 Sep 2018 14:07:54 -0700 (PDT) From: Mark Fine To: buildroot@buildroot.org Date: Wed, 19 Sep 2018 14:07:44 -0700 Message-Id: <20180919210744.66688-2-mark.fine@gmail.com> X-Mailer: git-send-email 2.14.3 (Apple Git-98) In-Reply-To: <20180919210744.66688-1-mark.fine@gmail.com> References: <20180919210744.66688-1-mark.fine@gmail.com> Subject: [Buildroot] [PATCH 2/2] grpc: new package X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.24 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Fine , thomas.petazzoni@bootlin.com MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Add the gRPC package from Google's gRPC github repo. Build and install the C and C++ libraries on the target installation. Signed-off-by: Mark Fine --- package/Config.in | 1 + ...01-Update-HOST-flags-with-passed-in-flags.patch | 36 +++++++++++ package/grpc/Config.in | 28 +++++++++ package/grpc/grpc.hash | 2 + package/grpc/grpc.mk | 69 ++++++++++++++++++++++ 5 files changed, 136 insertions(+) create mode 100644 package/grpc/0001-Update-HOST-flags-with-passed-in-flags.patch create mode 100644 package/grpc/Config.in create mode 100644 package/grpc/grpc.hash create mode 100644 package/grpc/grpc.mk diff --git a/package/Config.in b/package/Config.in index c04645a30b..1690c77929 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1452,6 +1452,7 @@ menu "Networking" source "package/freeradius-client/Config.in" source "package/geoip/Config.in" source "package/glib-networking/Config.in" + source "package/grpc/Config.in" source "package/gssdp/Config.in" source "package/gupnp/Config.in" source "package/gupnp-av/Config.in" diff --git a/package/grpc/0001-Update-HOST-flags-with-passed-in-flags.patch b/package/grpc/0001-Update-HOST-flags-with-passed-in-flags.patch new file mode 100644 index 0000000000..5207c471b4 --- /dev/null +++ b/package/grpc/0001-Update-HOST-flags-with-passed-in-flags.patch @@ -0,0 +1,36 @@ +From 6b84168130b8ac4322aa612f7ef6aa726d085054 Mon Sep 17 00:00:00 2001 +From: Mark Fine +Date: Wed, 19 Sep 2018 13:47:52 -0700 +Subject: [PATCH 1/1] Update HOST flags with passed in flags. + +To better support cross compilation, update HOST flags with passed in flags. + +Signed-off-by: Mark Fine +--- + Makefile | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/Makefile b/Makefile +index 4e993782ee..8bac7e3f91 100644 +--- a/Makefile ++++ b/Makefile +@@ -455,11 +455,11 @@ LDFLAGS += $(EXTRA_LDFLAGS) + DEFINES += $(EXTRA_DEFINES) + LDLIBS += $(EXTRA_LDLIBS) + +-HOST_CPPFLAGS = $(CPPFLAGS) +-HOST_CFLAGS = $(CFLAGS) +-HOST_CXXFLAGS = $(CXXFLAGS) +-HOST_LDFLAGS = $(LDFLAGS) +-HOST_LDLIBS = $(LDLIBS) ++HOST_CPPFLAGS += $(CPPFLAGS) ++HOST_CFLAGS += $(CFLAGS) ++HOST_CXXFLAGS += $(CXXFLAGS) ++HOST_LDFLAGS += $(LDFLAGS) ++HOST_LDLIBS += $(LDLIBS) + + # These are automatically computed variables. + # There shouldn't be any need to change anything from now on. +-- +2.14.3 (Apple Git-98) + diff --git a/package/grpc/Config.in b/package/grpc/Config.in new file mode 100644 index 0000000000..7713a37e17 --- /dev/null +++ b/package/grpc/Config.in @@ -0,0 +1,28 @@ +config BR2_PACKAGE_GRPC + bool "grpc" + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_USE_WCHAR + depends on BR2_USE_MMU + depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS + depends on BR2_HOST_GCC_AT_LEAST_4_8 # C++11 + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11 + depends on !BR2_STATIC_LIBS + select BR2_PACKAGE_C_ARES + select BR2_PACKAGE_GFLAGS + select BR2_PACKAGE_GTEST + select BR2_PACKAGE_GTEST_GMOCK + select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_PROTOBUF + select BR2_PACKAGE_ZLIB + help + gRPC is Google's protocol buffer based implementation of a + remote procedure call protocol. + + http://www.grpc.io + +comment "grpc needs a toolchain w/ C++, threads, dynamic library, host and target gcc >= 4.8" + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \ + || BR2_STATIC_LIBS || !BR2_HOST_GCC_AT_LEAST_4_8 \ + || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_USE_WCHAR || !BR2_USE_MMU + depends on BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS diff --git a/package/grpc/grpc.hash b/package/grpc/grpc.hash new file mode 100644 index 0000000000..a3b0a4c3a4 --- /dev/null +++ b/package/grpc/grpc.hash @@ -0,0 +1,2 @@ +# Locally computed +sha256 013cc34f3c51c0f87e059a12ea203087a7a15dca2e453295345e1d02e2b9634b grpc-v1.15.0.tar.gz diff --git a/package/grpc/grpc.mk b/package/grpc/grpc.mk new file mode 100644 index 0000000000..207c2676e8 --- /dev/null +++ b/package/grpc/grpc.mk @@ -0,0 +1,69 @@ +################################################################################ +# +# grpc +# +################################################################################ + +GRPC_VERSION = v1.15.0 +GRPC_SITE = $(call github,grpc,grpc,$(GRPC_VERSION)) +GRPC_LICENSE = BSD-3-Clause +GRPC_LICENSE_FILES = LICENSE + +GRPC_DEPENDENCIES = host-grpc gflags gtest c-ares openssl protobuf zlib +HOST_GRPC_DEPENDENCIES = host-c-ares host-protobuf host-openssl + +GRPC_INSTALL_STAGING = YES + +GRPC_MAKE_ENV = \ + CC="$(TARGET_CC)" \ + CXX="$(TARGET_CXX)" \ + LD="$(TARGET_CC)" \ + LDXX="$(TARGET_CXX)" \ + STRIP="$(TARGET_STRIP)" \ + PROTOC="$(HOST_DIR)/bin/protoc" \ + PATH="$(HOST_DIR)/bin:$(BR_PATH)" \ + GRPC_CROSS_COMPILE=true \ + GRPC_CROSS_LDOPTS="$(TARGET_LDFLAGS)" \ + HAS_PKG_CONFIG=false \ + PROTOBUF_CONFIG_OPTS="--host=$(GNU_TARGET_NAME) --with-protoc=$(HOST_DIR)/bin/protoc" \ + HOST_CC="$(HOSTCC)" \ + HOST_CXX="$(HOSTCXX)" \ + HOST_LD="$(HOSTCC)" \ + HOST_LDXX="$(HOSTCXX)" \ + HOST_CPPFLAGS="$(HOST_CPPFLAGS)" \ + HOST_CFLAGS="$(HOST_CFLAGS)" \ + HOST_CXXFLAGS="$(HOST_CXXFLAGS)" \ + HOST_LDFLAGS="$(HOST_LDFLAGS)" + +define GRPC_BUILD_CMDS + $(GRPC_MAKE_ENV) $(MAKE) -C $(@D) \ + PROTOC="$(HOST_DIR)/bin/protoc" shared +endef + +define GRPC_INSTALL_STAGING_CMDS + $(GRPC_MAKE_ENV) $(MAKE) -C $(@D) \ + prefix="$(STAGING_DIR)/usr" install-headers install-shared_c install-shared_cxx +endef + +define GRPC_INSTALL_TARGET_CMDS + $(GRPC_MAKE_ENV) $(MAKE) -C $(@D) \ + prefix="$(TARGET_DIR)/usr" install-shared_c install-shared_cxx +endef + +HOST_GRPC_MAKE_ENV = \ + $(HOST_MAKE_ENV) \ + CFLAGS="$(HOST_CFLAGS)" \ + LDFLAGS="$(HOST_LDFLAGS)" + +define HOST_GRPC_BUILD_CMDS + $(HOST_GRPC_MAKE_ENV) $(MAKE) -C $(@D) \ + prefix=$(HOST_DIR) plugins +endef + +define HOST_GRPC_INSTALL_CMDS + $(HOST_GRPC_MAKE_ENV) $(MAKE) -C $(@D) \ + prefix=$(HOST_DIR) install-plugins +endef + +$(eval $(generic-package)) +$(eval $(host-generic-package))