From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7163980406052618240 X-Received: by 2002:a05:651c:108:b0:2bc:b61d:44c9 with SMTP id a8-20020a05651c010800b002bcb61d44c9mr2887583ljb.53.1692625514731; Mon, 21 Aug 2023 06:45:14 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:651c:1249:b0:2b9:34b6:b47b with SMTP id h9-20020a05651c124900b002b934b6b47bls724296ljh.0.-pod-prod-01-eu; Mon, 21 Aug 2023 06:45:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGljZH2+AUrNMSzQpFjrB9x6Oq9kYzLHnBGvlNhKRSmbC1EfYopdfbLp6+8ai+hDerC72ep X-Received: by 2002:a2e:860b:0:b0:2b9:e24d:21f6 with SMTP id a11-20020a2e860b000000b002b9e24d21f6mr5604275lji.20.1692625512620; Mon, 21 Aug 2023 06:45:12 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1692625512; cv=pass; d=google.com; s=arc-20160816; b=WZp6aYjlgQM1ImEqSjM4HtpgsxZojnIbWd2lKHM/dsdlWiqIDy0dSUenEkiaUpiVxs FxjBXyvZa1Fcj29AXsblahV6Bl124UqW/A4Sn/HqGF28/p5BvuzFYXrICgd0b/utZh9N UyX6nT9wmf8AxhcQV7gsyPeJcgi7kEv0v0bgxzuHODON+RuOjIE2HpZprjpZ2LBKGSXA tbO9tdhBvIcpsPgH89keSh5PrMrDxRSQWTIcyeGqkvOvkw0ALztLW+BWgayRRPO3r0CC fGGhf/h6c/iIOxRSRIGGkYgUirb8xGznak0K6UDkypi9Va0aZFeo81v9nAkbN4sV9mQC uEog== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:content-transfer-encoding:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=IbaBQm4frJflaMwOr8YLLflcpyfbscPfEE3gtsM80bM=; fh=bvaPvxzWBeiMFp8pnv0OrU82FxIg/Wl8JdH1qH7iSZ8=; b=U8vx9UUcxB0PIBLPrpUqjhPGypyOJW2HY8VfZaSD1EXyS4N5ucfWLHrl6Jt/F9Va15 8Duka5lMz5d2h+q3pxhw9anU7/C7mwbDVsn7btDhRJ3eKwVFdoRFW4WPWsVbfWXB+iG2 SyXvLxD8jeFF1h/SJ20ufC7lq7byLDiAv5ZOK8vzWTJEsaaoRfsgSi87drZ5N+LEQuRz A3v8SiPBVkVK4fxktOat37x4CILifvEem5xRDmAYRKZTXGsbHLDzAce5UzxD44RMrV/1 Hk/FsRxXUJZL67aAd0CqxPxZZcYDKpwu7/EfFBCut5JYjRlBOGqHfT8EZ9awhybiAOsB gbGw== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=ARkg6gWi; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of stefan-koch@siemens.com designates 2a01:111:f400:7d00::60e as permitted sender) smtp.mailfrom=stefan-koch@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Return-Path: Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2060e.outbound.protection.outlook.com. [2a01:111:f400:7d00::60e]) by gmr-mx.google.com with ESMTPS id z4-20020a2e8844000000b002ba0a533736si582548ljj.3.2023.08.21.06.45.12 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 21 Aug 2023 06:45:12 -0700 (PDT) Received-SPF: pass (google.com: domain of stefan-koch@siemens.com designates 2a01:111:f400:7d00::60e as permitted sender) client-ip=2a01:111:f400:7d00::60e; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=ARkg6gWi; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of stefan-koch@siemens.com designates 2a01:111:f400:7d00::60e as permitted sender) smtp.mailfrom=stefan-koch@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VgAfip6zBXnfIy80U91vQodOigcLD31fkeRMiVlqukh8Bwzz0rQWmniXSnZha96TmdWxbht4AqvFHDCP91HTL6DPLGbZNLT5R9kJu/atwt5ajkHlMgriM4twYLd5O57wjxlIO7+wUxRVqIPG+t2mDJ5R2GmQhPNYi0o5bd27iYNRBf2qXh9Vs286+xDhVsD+22pBwllmda3BMwsrof1E68uY5GULChnITmT1F63Sa7HPA8Yg13o34uxhuWtqqYQdLtujaF8/bwV4ArjKr0E16MslD0ksA5KfyY0ckScXxJxuCuGRZEkEw3++SJS/+ILLOjCphu9Ex60lJYK648WHZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=IbaBQm4frJflaMwOr8YLLflcpyfbscPfEE3gtsM80bM=; b=NTHLn7g/8UOVg2PcCLPYV5qNCJ4V+v3ON/Yzq3gcR9dNGS2Ko+g0rYcTmSLGdtsrijduBm9FCvHSS5GHugJycb1YJSPOHwctbiEEpYQiJDnSHP5JX4yPxEQVK6A3eeDPbati/T7i+3CN+cywQ6dtEcjDAumafrOyXw7pPwrl3up48CgFUzAsdNvh7+KXITFjPqypez5YROmBJydhFoRkooNV63PgUmbRP/Swwzmx6bwqXi3o18+Jvbavi2iSLUn0Rsded6i2WBsgLEf4dbzg81gNx+jfZBFvWLT1D+D2z8rrJVN7S4fky4lqH60WKSdEMCaQqHg7E26Rec0hU2gW4w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siemens.com; dmarc=pass action=none header.from=siemens.com; dkim=pass header.d=siemens.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siemens.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IbaBQm4frJflaMwOr8YLLflcpyfbscPfEE3gtsM80bM=; b=ARkg6gWinyzVpCpUPj8iHHkePufWo/QkVMCnrTftiunQU5eM8FWSyaJdurie6I2loRArS97tU9yJmCqbEq2g+JiA+9UJGavPfvqlzL9Q/+bv3VYUlZbYEh2fklN2QDTnlVhYltLl4uzggxGP1gfVhWFSSnoa/FLbS+0s67eCpB+lRXz0g1AGTwbLDk2NrsEwF1+NXhU7nPAtrO7EIrLf+0YdZTRlB1P9SclYroLa29a1LdpNc5pdXgYLxUuBfuVEDpEFUyQFsO11vazzt7gijjrggNja4G3IfAkZGKfWQAba7C6UcYYJacmk8HBc2n7nWcBXjICkGjsnEybshq6kIg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=siemens.com; Received: from AM9PR10MB4959.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:41e::11) by DB4PR10MB7493.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:3cf::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.24; Mon, 21 Aug 2023 13:45:10 +0000 Received: from AM9PR10MB4959.EURPRD10.PROD.OUTLOOK.COM ([fe80::c9da:178c:455b:211e]) by AM9PR10MB4959.EURPRD10.PROD.OUTLOOK.COM ([fe80::c9da:178c:455b:211e%4]) with mapi id 15.20.6699.022; Mon, 21 Aug 2023 13:45:10 +0000 From: Stefan Koch To: isar-users@googlegroups.com Cc: stefan-koch@siemens.com, jan.kiszka@siemens.com, christian.storm@siemens.com, michael.adler@siemens.com, simon.sudler@siemens.com, cedric.hombourger@siemens.com, adriaan.schmidt@siemens.com, felix.moessbauer@siemens.com, ubely@ilbers.de Subject: [PATCH v4 1/3] linux-custom: Split up binaries from kernel headers to kbuild package Date: Mon, 21 Aug 2023 15:44:59 +0200 Message-Id: <20230821134501.2681654-2-stefan-koch@siemens.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230821134501.2681654-1-stefan-koch@siemens.com> References: <20230821134501.2681654-1-stefan-koch@siemens.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: FR2P281CA0003.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a::13) To AM9PR10MB4959.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:41e::11) Return-Path: stefan-koch@siemens.com MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR10MB4959:EE_|DB4PR10MB7493:EE_ X-MS-Office365-Filtering-Correlation-Id: 52a99910-dc85-45c0-baba-08dba24cd67f X-LD-Processed: 38ae3bcd-9579-4fd4-adda-b42e1495d55a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ghf16icOxplmurw6IsM9guJ/X7oI91SkojW2oY8GbdHlLiST9FUhisNRLSX099rxFSoNTtc/b84j2P7zEKwdRb8bffd+QkguYJGXSoo/HZ5evZyCL6takxJXgaJIShcJs8H76++yRT1468BgKoCz83hBkXJCYfrK99eHdgekxuCVy0AP/n1Vv080asLBzrIQoFVryNKlly8w2TRDi85ztiXJzuCvAssxw7cypDN5uQR1eoSQ02LINqsfT1Kp4JYKQuvSTtyVXnIrXsJepLU8IJvoJtd/BXNRpRGiPTkXLUZy1IBiuXgX6eBKVDajKqzmtqM/4sw8izyXTl2JaSyFHzEXx7XbWMQ6gQzZO+NzvHDULhvpT8+/+bQlSBs66b9PP73LEv1VrNyH0X8HrpotRdFS5wNZjKti1KDTivoE4DNSHmmoZrWFp2MDwZhSZi6hPgV/M3LcMZ3CWHm0KQjaxWka3+73UTk3wxtKOGJ8UytXiH4InDFJI52dGpfEgVNKTn7sjo6zI75wD7Fm01X5GJUxPSeFdXyBs2r68BEKs7OlhC0Ny8ftMJNyziU7Lxip X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR10MB4959.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230031)(346002)(366004)(39860400002)(376002)(136003)(396003)(451199024)(186009)(1800799009)(2906002)(38100700002)(6506007)(6486002)(83380400001)(5660300002)(26005)(86362001)(8676002)(2616005)(8936002)(4326008)(316002)(66946007)(6512007)(6916009)(66556008)(66476007)(82960400001)(478600001)(6666004)(36756003)(41300700001)(1076003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?k6yh99NLwNx9qoVJSoc+Ae6IsltwLJTaPuK4b0z7h8rMIbqhGPzD0JbCjgjp?= =?us-ascii?Q?1E/pcgqFwVDUDLHNL5vlikH6WOigqdQE/ef6xijcNEo3+q14FFHq+dsBUmP4?= =?us-ascii?Q?s/5EkAFGCAW3acsqVWhdY17mYpbf4mplkGkuFWMU0fxBfb5xF+5mHqzaK/PU?= =?us-ascii?Q?SmFcQRWIkpL+y6yGifOX/t7fyOs5hZnvUzdG9sVouV41I6g108f2Mp85wk8n?= =?us-ascii?Q?6KJjWZcY9Koza1emBt9nIRM05PnFBrbRHzT5IBkK2ZzoKiVRMhpriu02G6dM?= =?us-ascii?Q?og6UQmAMFDS1W3hTT1iWco4nMAr77e0yPu71NQ2+3oQ28giu3zl+gtkv0mWC?= =?us-ascii?Q?3GBzr4e0+wCedhQhxQ2IlXe/fhQd7gDXEVc3hQlVPlSpOj3TidFe3BpTYweW?= =?us-ascii?Q?RHDTUjwu1NGQPnLulGWr0w6/6F06/0j6NiOzLVcO9M7MQ4oZ2TXXXh+UwEAp?= =?us-ascii?Q?ksAf5Z6JQ3TreXCpCdzQQ4K9WOKAapxnFyYvKdJFTBiOe8QyOxos8TDadW4i?= =?us-ascii?Q?Fogprf19yG0I2yYGocOZgmyYriI1bzHoQ5WsVtMXwgS2skiwv+ZxFHIX1J1l?= =?us-ascii?Q?G8D/zDtQXrx1bRRZ+UHoPzARzJFPiqzUQrBGHlDu2/TWoanTH1FO9dJX6QWg?= =?us-ascii?Q?dr51tb36g3ZgWuzUz/0LqqzobiXZ4s5tUxkPIoIDUmqZoSVEI9BQDGJifdUX?= =?us-ascii?Q?j1nQt46ykfGzChz/3UzEjxzqefOpQl9pDbFqnhX3K1gx4pCjuGncQh3MdUBR?= =?us-ascii?Q?gi+DZFvGdCq12eoj/Kmm04mk7yV0ZVNdJAkP1sOmSrfa/k1o0d/3Y6mpeHhh?= =?us-ascii?Q?xsBvVCGyyZdfpifEwkHNDrfIWtzDeogiYXOhe7u12dTG215iEGto9V6Lw6al?= =?us-ascii?Q?s2Vz+LHqmaNprnPtqkGGtKFBT826cKKrYgXa2t9MRzNJvvjDdKGZ9OPgCkr4?= =?us-ascii?Q?Yj5Gq//luD5e091c4S476fJSgDqqxM0qQch2bEz0Wxj1yd3eSjPL1mYZaUJe?= =?us-ascii?Q?sEiosNO0DEXddEbNce/K8JyFTt/GF91YuZ0QDA/ICkWmk6FFez6c9mKoHU8I?= =?us-ascii?Q?N5z5PJkkrmUbGqJMs5/FJyiF3VjxOkGueUjNABzWbgJuH+6r6lrbrI+aebtg?= =?us-ascii?Q?egAzMjM37uoLE+OfA08Oqk1Eq6UA7nvA+5ar/ZLO5HvUiyhEiZhcp3KuvUxd?= =?us-ascii?Q?TVN9SKZSv7JMVK8RpRjdLguyeBBIhDD6IczJaCSnxiGAZA9FcwRZZK8sCIKK?= =?us-ascii?Q?SifVtkYAX0Jc2faRBEYYMU2LloXM9YUhR8TPYOZbj+nYr9EFu94TP5W++2iV?= =?us-ascii?Q?bGRMc3D/49zI+Zk/dxfSYx7ird5mz/TrysHa21Dy+jUfyxLBECCd1gptDyuD?= =?us-ascii?Q?qMfpUZUAumkp5tY1UODZUfSOgX9eMCYTrN+14s0PsIz3zXxc8y+4I01yClsV?= =?us-ascii?Q?Ez0JYlOUmkMTf/+2ezUxUS4WFpLyVqLUE6kQKjE1ZCd3MMc3ApUU1VNZ+Jf0?= =?us-ascii?Q?y2CWbrJr3frvBlWRKrZIHLJceAAPm7VlkmUus5OJpE9QbHRJsNK+Kp/mWuRk?= =?us-ascii?Q?OUVXdBttNIinfLOiMwPdDXmkq6cYq1YLuTYrEJ2zdc/MaPBYTz7x0YFoVfpF?= =?us-ascii?Q?rg=3D=3D?= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: 52a99910-dc85-45c0-baba-08dba24cd67f X-MS-Exchange-CrossTenant-AuthSource: AM9PR10MB4959.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2023 13:45:10.3885 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: RuiWDnjLcjlajWCr4TrIMGZm5l5mTRCF3q6PTRp/N/zR1zd9WbJXwQBYaRlL2p+3Lh6ClXlgnmfXDXsBy8WiOg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR10MB7493 X-TUID: 1Wx3GZB7W0iL This patch does introduce specific kernel kbuild packages that ship the "scripts" and "tools" binaries. The kernel headers fulfill this using symlinks to point to the "scripts" and "tools" of the kernel kbuild package. This is already known from debian kernel packages structure: - Generate a kernel headers package without binaries - Create kernel kbuild packages that ship the "scripts" and "tools" binaries - Using symlinks to point to the "scripts" and "tools" binaries Signed-off-by: Stefan Koch --- .../linux/files/debian/control.tmpl | 9 +++- .../linux/files/debian/isar/common.tmpl | 2 + .../linux/files/debian/isar/install.tmpl | 51 +++++++++++++++---- meta/recipes-kernel/linux/linux-custom.inc | 4 ++ 4 files changed, 54 insertions(+), 12 deletions(-) diff --git a/meta/recipes-kernel/linux/files/debian/control.tmpl b/meta/recipes-kernel/linux/files/debian/control.tmpl index dd0b6245..b19ca2c9 100644 --- a/meta/recipes-kernel/linux/files/debian/control.tmpl +++ b/meta/recipes-kernel/linux/files/debian/control.tmpl @@ -26,7 +26,7 @@ Section: devel Provides: linux-kernel-headers Architecture: any Description: Linux support headers for userspace development - This package provides userspaces headers from the Linux kernel. These headers + This package provides userspaces headers from the Linux kernel. These headers are used by the installed headers for GNU glibc and other system libraries. Package: linux-image-${KERNEL_NAME_PROVIDED}-dbg @@ -35,3 +35,10 @@ Architecture: any Description: Linux kernel debugging symbols for @KR@ This package will come in handy if you need to debug the kernel. It provides all the necessary debug symbols for the kernel and its modules. + +Package: linux-kbuild-${KERNEL_NAME_PROVIDED} +Architecture: any +Depends: ${perl:Depends}, ${shlib:Depends} +Description: ${KERNEL_NAME_PROVIDED} Linux kbuild scripts and tools for @KR@ + This package provides kernel kbuild scripts and tools for @KR@ + This is useful for people who need to build external modules diff --git a/meta/recipes-kernel/linux/files/debian/isar/common.tmpl b/meta/recipes-kernel/linux/files/debian/isar/common.tmpl index 52ebebb0..f4c0519f 100644 --- a/meta/recipes-kernel/linux/files/debian/isar/common.tmpl +++ b/meta/recipes-kernel/linux/files/debian/isar/common.tmpl @@ -9,6 +9,7 @@ ARCH=${KERNEL_ARCH} KERNEL_PKG_IMAGE=linux-image-${KERNEL_NAME_PROVIDED} KERNEL_PKG_KERN_HEADERS=linux-headers-${KERNEL_NAME_PROVIDED} KERNEL_PKG_LIBC_HEADERS=linux-libc-dev +KERNEL_PKG_KERN_KBUILD=linux-kbuild-${KERNEL_NAME_PROVIDED} # Constants KCONF=.config @@ -19,6 +20,7 @@ deb_img_dir=${deb_top_dir}/${KERNEL_PKG_IMAGE} deb_dbg_dir=${deb_img_dir}-dbg deb_kern_hdr_dir=${deb_top_dir}/${KERNEL_PKG_KERN_HEADERS} deb_libc_hdr_dir=${deb_top_dir}/${KERNEL_PKG_LIBC_HEADERS} +deb_kern_kbuild_dir=${deb_top_dir}/${KERNEL_PKG_KERN_KBUILD} # Array of packages to be generated declare -A kern_pkgs diff --git a/meta/recipes-kernel/linux/files/debian/isar/install.tmpl b/meta/recipes-kernel/linux/files/debian/isar/install.tmpl index 8a604e45..236b67c4 100644 --- a/meta/recipes-kernel/linux/files/debian/isar/install.tmpl +++ b/meta/recipes-kernel/linux/files/debian/isar/install.tmpl @@ -33,6 +33,7 @@ do_install() { # Trace what we do here set -x + # Run the install steps install_image if [ "${ARCH}" != "um" ]; then install_config @@ -43,6 +44,10 @@ do_install() { install_kmods install_headers + # Cleanup and install kernel scripts and tools + rm -rf ${deb_kern_kbuild_dir} + install_kbuild ${deb_kern_kbuild_dir} + # Stop tracing set +x } @@ -168,21 +173,15 @@ kernel_headers() { mkdir -p ${destdir} mkdir -p ${deb_kern_hdr_dir}/lib/modules/${krel} - (cd ${S}; find . -name 'Makefile*' -o -name 'Kconfig*' -o -name '*.pl') >>${src_hdr_files} - (cd ${S}; find arch/*/include include scripts -type f -o -type l) >>${src_hdr_files} + (cd ${S}; find . -not -path './scripts/*' -a -not -path './tools/*' -a \( -name 'Makefile*' -o -name 'Kconfig*' -o -name '*.pl' \)) >>${src_hdr_files} + (cd ${S}; find arch/*/include include -type f -o -type l) >>${src_hdr_files} (cd ${S}; find arch/${ARCH} -name module.lds -o -name Kbuild.platforms -o -name Platform) >>${src_hdr_files} (cd ${S}; find $(find arch/${ARCH} -name include -o -name scripts -type d) -type f) >>${src_hdr_files} if [ -n "${CONFIG_MODULES}" ]; then echo Module.symvers >> ${obj_hdr_files} fi - (cd ${O}; find arch/${ARCH}/include include scripts -type f) >>${obj_hdr_files} - if [ -n "${CONFIG_STACK_VALIDATION}" -o -n "${CONFIG_HAVE_OBJTOOL}" ]; then - (cd ${O}; find tools/objtool -type f -executable) >>${obj_hdr_files} - fi - if [ -n "${CONFIG_GCC_PLUGINS}" ]; then - (cd ${O}; find scripts/gcc-plugins -name *.so -o -name gcc-common.h) >>${obj_hdr_files} - fi + (cd ${O}; find arch/${ARCH}/include include -type f) >>${obj_hdr_files} # deploy files that were matched above tar -C ${S} -cf - -T - <${src_hdr_files} | tar -C ${destdir} -xf - @@ -191,8 +190,11 @@ kernel_headers() { # add the kernel config cp ${O}/${KCONF} ${destdir}/.config - # handle kernel development tools - kernel_tools + # add symlink to scripts and tools directories + ln -sf ../../lib/linux-kbuild-${krel}/scripts ${destdir}/scripts + if [ -n "${CONFIG_STACK_VALIDATION}" -o -n "${CONFIG_HAVE_OBJTOOL}" ]; then + ln -sf ../../lib/linux-kbuild-${krel}/tools ${destdir}/tools + fi # create symlinks ln -sf /${kernel_headers_dir} ${deb_kern_hdr_dir}/lib/modules/${krel}/build @@ -206,4 +208,31 @@ install_headers() { kernel_headers } +install_kbuild() { + kernel_kbuild_dir=usr/lib/linux-kbuild-${krel} + destdir=${1}/${kernel_kbuild_dir} + src_kbuild_files=$(mktemp) + obj_kbuild_files=$(mktemp) + + mkdir -p ${destdir} + + (cd ${S}; find . -path './scripts/*' -a -path './tools/*' -a \( -name 'Makefile*' -o -name 'Kconfig*' -o -name '*.pl' \)) >>${src_kbuild_files} + (cd ${S}; find scripts -type f -o -type l) >>${src_kbuild_files} + + (cd ${O}; find scripts -type f) >>${obj_kbuild_files} + if [ -n "${CONFIG_STACK_VALIDATION}" -o -n "${CONFIG_HAVE_OBJTOOL}" ]; then + (cd ${O}; find tools/objtool -type f -executable) >>${obj_kbuild_files} + fi + if [ -n "${CONFIG_GCC_PLUGINS}" ]; then + (cd ${O}; find scripts/gcc-plugins -name *.so -o -name gcc-common.h) >>${obj_kbuild_files} + fi + + # deploy files that were matched above + tar -C ${S} -cf - -T - <${src_kbuild_files} | tar -C ${destdir} -xf - + tar -C ${O} -cf - -T - <${obj_kbuild_files} | tar -C ${destdir} -xf - + + # handle kernel development tools + kernel_tools +} + main install ${*} diff --git a/meta/recipes-kernel/linux/linux-custom.inc b/meta/recipes-kernel/linux/linux-custom.inc index 8b367a2f..94ed84a2 100644 --- a/meta/recipes-kernel/linux/linux-custom.inc +++ b/meta/recipes-kernel/linux/linux-custom.inc @@ -100,6 +100,10 @@ python() { kernel_name = d.getVar("KERNEL_NAME_PROVIDED") d.setVar('PROVIDES', 'linux-image-' + kernel_name + ' ' + \ 'linux-headers-' + kernel_name) + headers_depends = "linux-kbuild-" + kernel_name + + # Set dependency for kernel headers + d.appendVar("KERNEL_HEADERS_DEBIAN_DEPENDS", headers_depends) } def get_kernel_arch(d): -- 2.39.2