From patchwork Wed Jun 5 09:51:38 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Marciniszyn, Mike" X-Patchwork-Id: 2668251 Return-Path: X-Original-To: patchwork-linux-kbuild@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork2.kernel.org (Postfix) with ESMTP id D6F3ADF264 for ; Wed, 5 Jun 2013 09:51:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753831Ab3FEJvl (ORCPT ); Wed, 5 Jun 2013 05:51:41 -0400 Received: from mga03.intel.com ([143.182.124.21]:13806 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753735Ab3FEJvk (ORCPT ); Wed, 5 Jun 2013 05:51:40 -0400 Received: from azsmga002.ch.intel.com ([10.2.17.35]) by azsmga101.ch.intel.com with ESMTP; 05 Jun 2013 02:51:39 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.87,804,1363158000"; d="scan'208";a="250899606" Received: from sedona.ch.intel.com ([143.182.228.65]) by AZSMGA002.ch.intel.com with ESMTP; 05 Jun 2013 02:51:39 -0700 Received: from phlsvsles11.ph.intel.com (phlsvsles11.ph.intel.com [10.228.195.43]) by sedona.ch.intel.com (8.13.6/8.14.3/Standard MailSET/Hub) with ESMTP id r559pduh016996; Wed, 5 Jun 2013 02:51:39 -0700 Received: from phlsvslse11.ph.intel.com (localhost [127.0.0.1]) by phlsvsles11.ph.intel.com with ESMTP id r559pcL3019802; Wed, 5 Jun 2013 05:51:38 -0400 Subject: [RFC PATCH v4] kbuild: fix error when building from src rpm To: mmarek@suse.cz From: Mike Marciniszyn Cc: linux-kbuild@vger.kernel.org Date: Wed, 05 Jun 2013 05:51:38 -0400 Message-ID: <20130605095138.19780.89920.stgit@phlsvslse11.ph.intel.com> User-Agent: StGit/0.16 MIME-Version: 1.0 Sender: linux-kbuild-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kbuild@vger.kernel.org The following issue can be reproduced with Linus' tree on and x86_64 serve. >+ cp /home/user/rpmbuild-test/BUILDROOT/kernel-3.9.2.x86_64/boot/vmlinuz-3.9.2 >cp: missing destination file operand after >/home/user/rpmbuild-test/BUILDROOT/kernel-3.9.2-1.x86_64/boot/vmlinuz-3.9.2' >Try `cp --help' for more information. >error: Bad exit status from /var/tmp/rpm-tmp.R4o0iI (%install) Here are the commands to reproduce: make defconfig make rpm-pkg Use the resulting src rpm to build as follows: mkdir ~/rpmbuild-test cd ~/rpmbuild-test rpmbuild --rebuild --define "_topdir `pwd`" -vv ~/rpmbuild/SRPMS/kernel-3.10.0_rc1+-1.src.rpm The issue is because the %install script uses $KBUILD_IMAGE and it hasn't been set since it is only available in the kbuild system and not in the %install script. This patch add arch specific defines to replace $KBUILD_IMAGE. Signed-off-by: Mike Marciniszyn --- scripts/package/mkspec | 51 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 34 insertions(+), 17 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/scripts/package/mkspec b/scripts/package/mkspec index fbbfd08..e65d198 100755 --- a/scripts/package/mkspec +++ b/scripts/package/mkspec @@ -59,6 +59,38 @@ echo "header files define structures and constants that are needed for" echo "building most standard programs and are also needed for rebuilding the" echo "glibc package." echo "" +echo "%define boot boot" +echo "%ifarch %{all_x86}" +echo "%define kbuild_image arch/x86/boot/bzImage" +echo "%endif" +echo "%ifarch x86_64" +echo "%define kbuild_image arch/x86/boot/bzImage" +echo "%endif" +echo "%ifarch ppc64" +echo "%define kbuild_image vmlinux" +echo "%endif" +echo "%ifarch s390" +echo "%define kbuild_image arch/s390/boot/image" +echo "%endif" +echo "%ifarch s390x" +echo "%define kbuild_image arch/s390/boot/image" +echo "%endif" +echo "%ifarch sparc64" +echo "%define kbuild_image arch/sparc/boot/image" +echo "%endif" +echo "%ifarch ppc" +echo "%define kbuild_image vmlinux" +echo "%endif" +echo "%ifarch ia64" +echo "%define boot boot/efi" +echo "%define kbuild_image vmlinux.gz" +echo "%endif" +echo "%ifarch alpha alphaev56" +echo "%define kbuild_image vmlinux" +echo "%endif" +echo "%ifarch %{arm}" +echo "%define kbuild_image vmlinux" +echo "%endif" if ! $PREBUILT; then echo "%prep" @@ -74,26 +106,11 @@ echo "" fi echo "%install" -echo "%ifarch ia64" -echo 'mkdir -p $RPM_BUILD_ROOT/boot/efi $RPM_BUILD_ROOT/lib/modules' +echo 'mkdir -p $RPM_BUILD_ROOT/%{boot} $RPM_BUILD_ROOT/lib/modules' echo 'mkdir -p $RPM_BUILD_ROOT/lib/firmware' -echo "%else" -echo 'mkdir -p $RPM_BUILD_ROOT/boot $RPM_BUILD_ROOT/lib/modules' -echo 'mkdir -p $RPM_BUILD_ROOT/lib/firmware' -echo "%endif" echo 'INSTALL_MOD_PATH=$RPM_BUILD_ROOT make %{?_smp_mflags} KBUILD_SRC= modules_install' -echo "%ifarch ia64" -echo 'cp $KBUILD_IMAGE $RPM_BUILD_ROOT'"/boot/efi/vmlinuz-$KERNELRELEASE" -echo 'ln -s '"efi/vmlinuz-$KERNELRELEASE" '$RPM_BUILD_ROOT'"/boot/" -echo "%else" -echo "%ifarch ppc64" -echo "cp vmlinux arch/powerpc/boot" -echo "cp arch/powerpc/boot/"'$KBUILD_IMAGE $RPM_BUILD_ROOT'"/boot/vmlinuz-$KERNELRELEASE" -echo "%else" -echo 'cp $KBUILD_IMAGE $RPM_BUILD_ROOT'"/boot/vmlinuz-$KERNELRELEASE" -echo "%endif" -echo "%endif" +echo 'cp %{kbuild_image} $RPM_BUILD_ROOT'"/%{boot}/vmlinuz-$KERNELRELEASE" echo 'make %{?_smp_mflags} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr KBUILD_SRC= headers_install' echo 'cp System.map $RPM_BUILD_ROOT'"/boot/System.map-$KERNELRELEASE"