From patchwork Wed Sep 26 22:37:15 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Erico Nunes X-Patchwork-Id: 975478 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="XXH4NsAz"; 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 42LCWL1gqzz9s47 for ; Thu, 27 Sep 2018 08:37:49 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 9C0CD86A1E; Wed, 26 Sep 2018 22:37:45 +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 TspGOdYVJqym; Wed, 26 Sep 2018 22:37:43 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id 498C98692C; Wed, 26 Sep 2018 22:37:43 +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 62BC61C14A4 for ; Wed, 26 Sep 2018 22:37:41 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 5D04D8692C for ; Wed, 26 Sep 2018 22:37:41 +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 Awjiy8eXXA0t for ; Wed, 26 Sep 2018 22:37:39 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) by whitealder.osuosl.org (Postfix) with ESMTPS id 1F69C86785 for ; Wed, 26 Sep 2018 22:37:39 +0000 (UTC) Received: by mail-wr1-f42.google.com with SMTP id m16so478517wrx.12 for ; Wed, 26 Sep 2018 15:37:39 -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=Vqzp87Ml44iX19S1YqzCyvuf1lYzSUSyOHPRiZrKQOE=; b=XXH4NsAztADMlOfDUvSMkTRyM0tDxarhHu6AO9J4IJ8Xo8SHHMygP7vWVyfhHDfeTX Z45m+jw8/lFXiiVp0oFOLPPupqgq2FeWj1MlrzTtfz46WJ80G8o8MiGzOkfh7kn5TS2f 10kZyJQiMnHxkuDWnKHvg/ez61X+9WQCwlQnn3FNb9potoEuzhs2crHlvLLPylqLSkZ5 1ykk1hlAv3BroQc6Pqhyv6w5pJqHSM/fqPHYOggSb4myIrHeFOVPeLU/Le0RKr7KcqE/ HAMH0xEkW9/2cZ0kYS2IuK46Kdp9sFtLq6MrZgveGOdzlAiV2uF1oQGi6wy/Wu3QL4a5 fUog== 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=Vqzp87Ml44iX19S1YqzCyvuf1lYzSUSyOHPRiZrKQOE=; b=FEcg+m7uQ9tHIggtrTy15zywCPS4/SeNGdz3yViLP0Lr6rrxpGM6C4nwbepXC3aLih +B717Hcva5qH3WpMRIAgkK+am7ij5BnqS2fK7xJt7/eNk7rDySXqjlktM6aaSCZPv46r 6UW+JL58NNiOG7DpRYVGxsEH7sDWm9Gv2Cz42eYzmCde2fGrvLdkZerXpmaglAk3gei5 oFu/oRnn2Ufv5MsbhxPK3HFPRpFV2SbmUC6mT8heWfRFc3T5n+rfuR6zMOgdp5kh0pYU jMEIhbZG6WrN/iY9KSsHMBymUGLXCiMXRzGCag5wES8m4EuuS7x5gjvntUn9wzVgA4Z2 tKFA== X-Gm-Message-State: ABuFfoh6xBoYWWHgmAx2IXV3+jh5rpWfZKnYU8J0lk6KCE396sQP/Z10 jv+8teL7SaSMy2eGD4Jn/yaFUsay X-Google-Smtp-Source: ACcGV60l5v4ddA86CnWZVOPtkHXu//HjqaR+COY3kUklksaAPgPaMohIR4Y6uosxcYzBmNNnRxQlTA== X-Received: by 2002:adf:ffc3:: with SMTP id x3-v6mr6713661wrs.137.1538001456765; Wed, 26 Sep 2018 15:37:36 -0700 (PDT) Received: from localhost.localdomain (ip-78-102-114-60.net.upcbroadband.cz. [78.102.114.60]) by smtp.gmail.com with ESMTPSA id x132-v6sm6438230wmg.3.2018.09.26.15.37.35 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 26 Sep 2018 15:37:35 -0700 (PDT) From: Erico Nunes To: buildroot@buildroot.org Date: Thu, 27 Sep 2018 00:37:15 +0200 Message-Id: <20180926223719.12604-2-nunes.erico@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180926223719.12604-1-nunes.erico@gmail.com> References: <20180926223719.12604-1-nunes.erico@gmail.com> Subject: [Buildroot] [PATCH v3 1/5] grub2: separate target and host builds 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: Thomas Petazzoni MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" grub2 requires the host grub2-mkimage tool to build some of its target images. The current way of building this tool in the grub2 package is to perform a simultaneous host-tools/target-bootloader build during the grub2 build step. This method makes the recipe complex to understand, and proved to be a complication during work to enable grub2 support for other architectures than x86. This patch tries to do a better separation between the build of grub2 host tools and target boot loader image, as a partial step to enable grub2 to build for other architectures. Signed-off-by: Erico Nunes --- boot/grub2/grub2.mk | 48 +++++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/boot/grub2/grub2.mk b/boot/grub2/grub2.mk index 35aea41287..1b366d0407 100644 --- a/boot/grub2/grub2.mk +++ b/boot/grub2/grub2.mk @@ -9,7 +9,10 @@ GRUB2_SITE = http://ftp.gnu.org/gnu/grub GRUB2_SOURCE = grub-$(GRUB2_VERSION).tar.xz GRUB2_LICENSE = GPL-3.0+ GRUB2_LICENSE_FILES = COPYING -GRUB2_DEPENDENCIES = host-bison host-flex +GRUB2_DEPENDENCIES = host-bison host-flex host-grub2 +HOST_GRUB2_DEPENDENCIES = host-bison host-flex +GRUB2_INSTALL_IMAGES = YES +GRUB2_INSTALL_TARGET = NO GRUB2_BUILTIN_MODULES = $(call qstrip,$(BR2_TARGET_GRUB2_BUILTIN_MODULES)) GRUB2_BUILTIN_CONFIG = $(call qstrip,$(BR2_TARGET_GRUB2_BUILTIN_CONFIG)) @@ -39,26 +42,24 @@ GRUB2_PLATFORM = efi endif # Grub2 is kind of special: it considers CC, LD and so on to be the -# tools to build the native tools (i.e to be executed on the build -# machine), and uses TARGET_CC, TARGET_CFLAGS, TARGET_CPPFLAGS, -# TARGET_LDFLAGS to build the bootloader itself. However, to add to -# the confusion, it also uses NM, OBJCOPY and STRIP to build the -# bootloader itself; none of these are used to build the native -# tools. +# tools to build the host programs and uses TARGET_CC, TARGET_CFLAGS, +# TARGET_CPPFLAGS, TARGET_LDFLAGS to build the bootloader itself. # # NOTE: TARGET_STRIP is overridden by !BR2_STRIP_strip, so always # use the cross compile variant to ensure grub2 builds +HOST_GRUB2_CONF_ENV = \ + CPP="$(HOSTCC) -E" + GRUB2_CONF_ENV = \ - $(HOST_CONFIGURE_OPTS) \ - CPP="$(HOSTCC) -E" \ + CPP="$(TARGET_CC) -E" \ TARGET_CC="$(TARGET_CC)" \ TARGET_CFLAGS="$(TARGET_CFLAGS)" \ TARGET_CPPFLAGS="$(TARGET_CPPFLAGS) -fno-stack-protector" \ TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \ - NM="$(TARGET_NM)" \ - OBJCOPY="$(TARGET_OBJCOPY)" \ - STRIP="$(TARGET_CROSS)strip" + TARGET_NM="$(TARGET_NM)" \ + TARGET_OBJCOPY="$(TARGET_OBJCOPY)" \ + TARGET_STRIP="$(TARGET_CROSS)strip" GRUB2_CONF_OPTS = \ --target=$(GRUB2_TARGET) \ @@ -72,12 +73,13 @@ GRUB2_CONF_OPTS = \ --enable-libzfs=no \ --disable-werror -# We don't want all the native tools and Grub2 modules to be installed -# in the target. So we in fact install everything into the host -# directory, and the image generation process (below) will use the -# grub-mkimage tool and Grub2 modules from the host directory. - -GRUB2_INSTALL_TARGET_OPTS = DESTDIR=$(HOST_DIR) install +HOST_GRUB2_CONF_OPTS = \ + --disable-grub-mkfont \ + --enable-efiemu=no \ + ac_cv_lib_lzma_lzma_code=no \ + --enable-device-mapper=no \ + --enable-libzfs=no \ + --disable-werror ifeq ($(BR2_TARGET_GRUB2_I386_PC),y) define GRUB2_IMAGE_INSTALL_ELTORITO @@ -86,10 +88,10 @@ define GRUB2_IMAGE_INSTALL_ELTORITO endef endif -define GRUB2_IMAGE_INSTALLATION +define GRUB2_INSTALL_IMAGES_CMDS mkdir -p $(dir $(GRUB2_IMAGE)) - $(HOST_DIR)/bin/grub-mkimage \ - -d $(HOST_DIR)/lib/grub/$(GRUB2_TUPLE) \ + $(HOST_DIR)/usr/bin/grub-mkimage \ + -d $(@D)/grub-core/ \ -O $(GRUB2_TUPLE) \ -o $(GRUB2_IMAGE) \ -p "$(GRUB2_PREFIX)" \ @@ -99,14 +101,14 @@ define GRUB2_IMAGE_INSTALLATION $(INSTALL) -D -m 0644 boot/grub2/grub.cfg $(GRUB2_CFG) $(GRUB2_IMAGE_INSTALL_ELTORITO) endef -GRUB2_POST_INSTALL_TARGET_HOOKS += GRUB2_IMAGE_INSTALLATION ifeq ($(GRUB2_PLATFORM),efi) define GRUB2_EFI_STARTUP_NSH echo $(notdir $(GRUB2_IMAGE)) > \ $(BINARIES_DIR)/efi-part/startup.nsh endef -GRUB2_POST_INSTALL_TARGET_HOOKS += GRUB2_EFI_STARTUP_NSH +GRUB2_POST_INSTALL_IMAGES_HOOKS += GRUB2_EFI_STARTUP_NSH endif $(eval $(autotools-package)) +$(eval $(host-autotools-package))