From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9F005C04FFE for ; Thu, 9 May 2024 02:54:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E6BF86B0092; Wed, 8 May 2024 22:54:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DF5156B0093; Wed, 8 May 2024 22:54:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C46AF6B0095; Wed, 8 May 2024 22:54:34 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 9E23B6B0092 for ; Wed, 8 May 2024 22:54:34 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 5045AA1F3F for ; Thu, 9 May 2024 02:54:34 +0000 (UTC) X-FDA: 82097339268.18.E823C5A Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2082.outbound.protection.outlook.com [40.107.93.82]) by imf08.hostedemail.com (Postfix) with ESMTP id 30E79160007 for ; Thu, 9 May 2024 02:54:30 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=pe1v3MBy; dmarc=pass (policy=reject) header.from=nvidia.com; spf=pass (imf08.hostedemail.com: domain of jhubbard@nvidia.com designates 40.107.93.82 as permitted sender) smtp.mailfrom=jhubbard@nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1715223271; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=KMu85E1vFEhnjajfeuf65Ax23QX5IWrFZs/9KkQ99DY=; b=FwJszQYxH8JriLWmp6gYVZLcu+IlpWIxUKYGVS2a1clbwsnax7BGpTylAXxtK0Fn0dnNFf n7RFQXHmg2FXdnFeL3Fj7jFSxQUXXn59xr8XxBOg783EDOWrZHh8UmwVrAEoE40Y7vDMMX ru8TUKqKh0JIAGCq5EmlvhxSv7m7OsM= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1715223271; a=rsa-sha256; cv=pass; b=MDeqw485mBuLso9SZ4j2Dp8ldfeItzfcTi4ChJkRK2Ztt4Vo05UARzMUg8v7svTCe8slKb w8S1qoD6x/txCSWF0iK3pFNcAewMpZd+VHoKZS0g+saFAgr83IRfQXQuz7F84qkDJ93J37 BL46HyR2x3jGOKaAI4iJ23FW6vnRW1o= ARC-Authentication-Results: i=2; imf08.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=pe1v3MBy; dmarc=pass (policy=reject) header.from=nvidia.com; spf=pass (imf08.hostedemail.com: domain of jhubbard@nvidia.com designates 40.107.93.82 as permitted sender) smtp.mailfrom=jhubbard@nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RjYRQZO/OLbG6plIbeEUBAoNG1FL3BwnYsTYVUlv3TXMFweLJMWMUXvmT3cZW5NlebEdhdNsDR1VPAbxCyxEUyL2FPPxRoGiBQNYvy6/AUb+jcLeYilyxT34YxfVQQ5M7/6F1b14B/tUrXmjrooJeOuWRMhZTmz3fzF7X2gU/G2l1iqxpHnRU9Bzg4KUZDVGIzY77vVJTK7b/voYlqEcjDjQBWhOdI8aV0YWef+qLnolWXj+a6zxYJ5J1Ktrpr9AI7ef7pjmuezUZVn+gXNpHWZtqN/QZ8ws+kqx/9415MGmvdXELwEoq2r9UOL2MdVMhoEIViheGMmiJWtLj1apmg== 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=KMu85E1vFEhnjajfeuf65Ax23QX5IWrFZs/9KkQ99DY=; b=h0f4P0cAXRu8wP1IgBmINzdkb8w9t/BdLijib3NvP/mboqgmroWbQ/Ne2FI9YdL/alwKZFWY2g/5++WSrNU+08jUIaehwUNI8b/3vEDQ8/XIiJKBCr2cioA22GH2SAsh0Ilg7W6xRzA6ru2zpbR0wnDYsFW8xIC4MxXolzfPc3XomhPRTE1xVpB0LONzmbVZlyPKPb2RVdfBoutppm2Tyzcz/Z+x0zhhXXPjSk9JuSY7Le1+LKXdAQSgzsuUmc7+vVhZvt/jDBiWMYgn5SjWb87PmYV3gkN/cAUUXH8/DiP7XTM4Lcnl4xMshH3icW9dXzcz1bApmUDU7idkJpKv2w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=chromium.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KMu85E1vFEhnjajfeuf65Ax23QX5IWrFZs/9KkQ99DY=; b=pe1v3MByDN6YWKxcP6QxaFzR/5yBuAhATDLzU33BWvjQRB1Ac5CR+jfQwvjNk3UM48z6yDGrlQtBgvgpk4lFOUYTwa1WIKRym3CfUsDnvUO9M+x969KzadxwdLLlGFJptRxMm1Zy1KT9I5xaiTek/2cH1H7ef+sRjc2mFHr1IxGT6dvzVW7WOymHGrjwtY17CiLbFaI19WnT070m3K+r/cBUgSFigLG3OjM0YAFVmDFIQ/Xbx5pIZC+/0SYSxK5C2iFIpxDr+Sl6odk+nqpeUEksODniej5GSCib9AXrgD1kzOYlTuCQNssAgifaMKz28dorsbUn1UFE0AvIgPJvGQ== Received: from BL1PR13CA0269.namprd13.prod.outlook.com (2603:10b6:208:2ba::34) by SJ2PR12MB8184.namprd12.prod.outlook.com (2603:10b6:a03:4f2::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.46; Thu, 9 May 2024 02:54:27 +0000 Received: from BL02EPF00021F68.namprd02.prod.outlook.com (2603:10b6:208:2ba:cafe::4f) by BL1PR13CA0269.outlook.office365.com (2603:10b6:208:2ba::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.45 via Frontend Transport; Thu, 9 May 2024 02:54:27 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by BL02EPF00021F68.mail.protection.outlook.com (10.167.249.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.18 via Frontend Transport; Thu, 9 May 2024 02:54:27 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Wed, 8 May 2024 19:54:14 -0700 Received: from [10.110.48.28] (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Wed, 8 May 2024 19:54:13 -0700 Message-ID: <1f6a2905-395d-4f81-9ee0-57c541fb2486@nvidia.com> Date: Wed, 8 May 2024 19:54:13 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 1/3] selftests/exec: Build both static and non-static load_address tests To: Kees Cook , "H . J . Lu" CC: Chris Kennelly , Eric Biederman , Shuah Khan , Muhammad Usama Anjum , Fangrui Song , Andrew Morton , Yang Yingliang , , , Mike Rapoport , Rui Salvaterra , Victor Stinner , Jan Palus , Al Viro , Christian Brauner , Jan Kara , , , References: <20240508172848.work.131-kees@kernel.org> <20240508173149.677910-1-keescook@chromium.org> Content-Language: en-US From: John Hubbard In-Reply-To: <20240508173149.677910-1-keescook@chromium.org> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail201.nvidia.com (10.129.68.8) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF00021F68:EE_|SJ2PR12MB8184:EE_ X-MS-Office365-Filtering-Correlation-Id: 670477d3-a4bf-438b-e61c-08dc6fd3577e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230031|7416005|1800799015|36860700004|82310400017|376005; X-Microsoft-Antispam-Message-Info: =?utf-8?B?TVJSK1VIMlJPUVNsaWs5YVNZdEpHODQ1aVpOZGJJaEMybG9abDdiOHN3cHg3?= =?utf-8?B?MERUZTAzcG5UWDUwbC9iVnhwU1lmdHpHT0lTazJZaDN4SzQ5RGtlTytvWjBq?= =?utf-8?B?N1J1UHdaQWZzQU84Z0xleU1xWWpsMU5XaERaak1OTGFnTEgrSmtEM3I4WFJN?= =?utf-8?B?VUM3VWZyNDJldGZScTNMOTRvTXpnQ1YwMHI3VFVKVzdVZjc1RlB0SWpMQ1F1?= =?utf-8?B?VDVYazV5Q1NuNU9ieEE0SkdtaXFldFNlekNad3l4R0FLMGhUUW1GWkpKNVRE?= =?utf-8?B?RUJKMDRNaS9VS0JiNmd6TjU1S2h5ZE1NZEl2eHl3MVdmQWVwajBwWFNCbHlD?= =?utf-8?B?ZU1uL21yd3J6THZYWENGZFZ1NUpXNklnWlZiNGUxYXhEdTFWVHBuRWNBQmwx?= =?utf-8?B?ZjJDR1EyVFVHU2tJYXNXTldwTHFmNnFGWEFyRGcrUUllL2xKb0E4V0svUlNP?= =?utf-8?B?U2o2V1ZEcHE1Ym5pTkRtTXpOZlR4RlVGU1NiT3R0MTN3c0RxTWtPWTVoTlRS?= =?utf-8?B?VXVac3dCK09LYWxWWjFqY0ozcm80UzlwLzltcFY2TEc3TVdYTHpjM2tuTHla?= =?utf-8?B?Uk9VS29ZalJDMGlhL2wvT3NmVkN0dm5sY3pVYzcyeXcxQ01CRFY3bWo1V0Fx?= =?utf-8?B?UjB0YUhNR0RScjZsdUk4N1BiWDFiRTJETnZZTHl5TElYYnQ2cU5qRlAvbWND?= =?utf-8?B?UHBCNGFRdE41Z3d0QU9KbE1leHQ0RXBhcDYzTXMxUjdEa0ZmazRCUEw5TE42?= =?utf-8?B?WGtlS0xEQldDUG5rc0JiVnRsV3dPVXFBVDJkNWp2RVhnTlFNV24wVTJJWWgv?= =?utf-8?B?K1E5d2lxMkpiNXAwL1hYbHVFQnU4T1Z1Z01JM2dRcW5FN2J0SDJTdSszZG1m?= =?utf-8?B?R3kxMTZhVm1YWDFPSDJyOVJ6Z3ZPL2JwemJSUFNKNUlZaEJ4Z3VWTVB6WEZT?= =?utf-8?B?QXJZejh2dFBvM3dJcEpNcDR6QzlKWk5QZTlnYkp0aHUwb0N4dFZ5eHB3MlJJ?= =?utf-8?B?bnhFYVREbTIrV2h4eG1NWjJvSzE3TmZnRDJ4b092c0dvSUI1MGluM0tXelM3?= =?utf-8?B?dnNXRTlVM3pmMW8xNWhlcUJjdGZuL2t5Z3lmR1daQzVNS2JBaW9ZaWZmbkxY?= =?utf-8?B?cUtma1NJNE9GdklMc3JMV2xjaTNXbEVyM3J1VTkzOWRnYXJOaHNhS0VrR3FC?= =?utf-8?B?NnFZRDZmT3VDZ1FEODhFWllhTkppTGhja013SURGRmh0K2lSUU1nZmt6SW1z?= =?utf-8?B?MFZwT0I1R0lBTXFiSXlNZnk4a1h2bUpBV3NLNzFFWFo1SE02d2cyQVVjVWkx?= =?utf-8?B?UE8wMmFWcndSZGIyd1B3QlRqb20ydy9DczVlM3RYK3IzREZRNzA5QmQ1eFdH?= =?utf-8?B?VXVtaU9IVENuc2pHQUxldHVQNWtxUERSTjY1eGVyb0ludVlvMGFUaDgvYk9Y?= =?utf-8?B?RzZWbVE0czJ1VEd6UUhjMU14SGZzU2RnQi80NkZlaE9tcW92RUVnanErVUJU?= =?utf-8?B?bmRCVmwrNFNkekNwMFVWbWhmM3BJcC9sVDdzTnYrN0pPUzlRYnM4a2xCdjJL?= =?utf-8?B?bjB1YnNiZjc1dDhQYXhVWUdCMk1lNWRHVnJ4cXJqOGJWdUE4UC9RYytTaDUv?= =?utf-8?B?RmpPV3I1MUNRZTNTUjlWcGRxK3JjZmlFN200QnI3R29CWFhqQXU3WVJFN3BR?= =?utf-8?B?UzJya0xUdmFveThKOU9uSUZZbjFPN0szR1NoR1IvT24wWkZiNE9FSWU2T1Jx?= =?utf-8?B?UWUwYVlQRUlERnRIa1h5VHFqWCtFTGZTRDAzdDlLQlFpZjFZbUtaTGFCYmpn?= =?utf-8?B?d3FYZDE0UVRDaTRJYzRyZlhHdi91SWU4eC9VWHg4bndLY1RMaHhIek9kVGxO?= =?utf-8?Q?E5G37BLkweuM1?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230031)(7416005)(1800799015)(36860700004)(82310400017)(376005);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2024 02:54:27.4453 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 670477d3-a4bf-438b-e61c-08dc6fd3577e X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF00021F68.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8184 X-Rspamd-Queue-Id: 30E79160007 X-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: ajx1fo98bctppxfykkee14pfa1uqrzj8 X-HE-Tag: 1715223270-20893 X-HE-Meta: U2FsdGVkX19onca5wjbQV4dryj7uApG0VgAAF9K30FGsC4ExaVq+4l8tkwgIHJEz5QnId4cX2EPARevF0Bm0XgpBsq5rZ4fxwfFbFP4eCH7AsZrIWY0ulApsfdHXQyCwnHGNVsdCs7eb4Wd5uC82UpiYctssmwWnZ0RW2+mt5oV2RAxQfTnQ9994iVBmyPpvPSEVqkSrErrhexnks+6h+YWaEYIuepZH9FtI01sJNxkoh5V2nDeu3neTTPA3Tv7BNeau38RpP84Z5B5QKk1BBMXHaMvjzHLcYpn1Qu58Pr2XlwJYHkKilGGmCkWGX5BYN9YX9+/02SCAKhr46t0G0HTC9zw2WWenwGMRcbKhxBm0wnPfY/5ECA/58lOHHwLHe68l4ha3FhTywtIvYS/uV963ao7tzE+gi+ToLzc4FC1U00tUW/SlzuJW92LugFE7Oae+fRmqZGu7HfG0zCoIlAkkKBaxnvjYdKdCCE7OGXFzjdHh6TKfMLb1SLadvLUogL72xH2UZwTKlUfDLBeXT2kuQI66LVXmbnK2rBjq7cJioNUeaox3jrJ5UhrpQGcu66cQTmELAr8RTzdII1CfPAAI85qS9Dtv4lAU5YzuPet34X/DNydhXXTnltXUPKqhVTj9aalxZ1sTaa6qd03ADZjOoLRrYRO83GriWSKwf6kQEMLYj8LAXuvtn8V293Cqw65gNAMT/zHZ1FnTGT/JMh29PhiIJ5HFHTmhoxv/aFJ7hKy82GiV+7A2we4PREaPw8Zf7xMeAGXl2pvUzdp+SWbU9ZvJOI9NHU2F8s/fF+kB7yv48/0fmpAHazvYGW0FtmBxVe2WpZG8jcUQVypDzR8tv9gPqYXC2ymf0M3c8vnEySMDsXwwb2aRV7glD7fZoKQJ4mJL3hOF41ihoo9uwI80MtEwwGRBgJdD1x7uP5qBj0ZASF9DvL75B//rbGOJZ0oFfYXVGziZVqxx5JL zbNXFYVm 7doeWPjjU41Cbw/EbpfCs0iAMDIfE6N6xwwhaRDa25nvysHbkLXaYL3a8YeWyM19wB/XFAs5mrNRjb7TQblqBTfQsqRV0kP7EUKiwvmUjR844mZNw2EvlS28YGF7ubImh2JBjH7MNB9pf08NEnYJhLxNmpP9DsF+3rjkvTqbOUpxiuC9kx2rCZ7ffXFXTxi+t3jG4iTwzl9AqE5GkMiyUmQx6q0Ep6EAw8u7RIGh5mWW/NtlUWuogi0HFv1nFUCI1AWqHlltViH1AQEnMQjhSZB76HJELeivJnoPIIA6tPGauyjkBwZOiyDD8gbmWcaRn1LQkCsS+kfTJkVPR4QLWUw6G+r+ZHYYdfnjaWNnhhdIlvjPEEL7MkkNqYqsbH6fuAqcEZdX9vpbnMIqdOvQlgLX89UqT+LSDP46QROpwhLjj/6gCDrLVEkkFxqa/DwxkVPR+PfZ8b+Jrk5Rpv2liA6qIeEWmDPOwPeOAhJepBMg1DwVcjwkPqW0u4pyTo0cMIFuQkfdpTKelJvUuqeofaesOZqDV5rhkR+O4O0S0vUL5Hj8KQ2COtUkN4aA2RY0aosfUJhF09ZtVtmThmSfxXwVJsSW0w8CJKXlCeVUkR+UzEnqvk17bj7N4EW4RtIKOP0PycMqZJDxFWtRYp0uLmOZ/NlspTYnfvAnVBftl6rFSFJBm3wXl5rf1W0KclNDDMvaNBxIMi0lEf92uP7wwOY+foA9of5c4RTzAEwjQrw0NH0kG5Bx1DJoC1GwuPJ6BD2SwG/3e/2oc7FB+HBmG7A6LZFKFL2uaQsD39hP+83o8DT909FHjStm/Bs9bTs4CNGyr1qG4w2eSgMaD1i+DBbYO4ukMHTGrpdpT/qq6oynqmILbehdty3VEEdw21LMIAlZm X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On 5/8/24 10:31 AM, Kees Cook wrote: > After commit 4d1cd3b2c5c1 ("tools/testing/selftests/exec: fix link > error"), the load address alignment tests tried to build statically. > This was silently ignored in some cases. However, after attempting to > further fix the build by switching to "-static-pie", the test started > failing. This appears to be due to non-PT_INTERP ET_DYN execs ("static > PIE") not doing alignment correctly, which remains unfixed[1]. See commit > aeb7923733d1 ("revert "fs/binfmt_elf: use PT_LOAD p_align values for > static PIE"") for more details. > > Provide rules to build both static and non-static PIE binaries, improve > debug reporting, and perform several test steps instead of a single > all-or-nothing test. However, do not actually enable static-pie tests; > alignment specification is only supported for ET_DYN with PT_INTERP > ("regular PIE"). > > Link: https://bugzilla.kernel.org/show_bug.cgi?id=215275 [1] > Signed-off-by: Kees Cook > --- > Cc: Chris Kennelly > Cc: Eric Biederman > Cc: Shuah Khan > Cc: Muhammad Usama Anjum > Cc: John Hubbard > Cc: Fangrui Song > Cc: Andrew Morton > Cc: Yang Yingliang > Cc: linux-mm@kvack.org > Cc: linux-kselftest@vger.kernel.org > --- > tools/testing/selftests/exec/Makefile | 19 +++--- > tools/testing/selftests/exec/load_address.c | 67 +++++++++++++++++---- > 2 files changed, 66 insertions(+), 20 deletions(-) > > diff --git a/tools/testing/selftests/exec/Makefile b/tools/testing/selftests/exec/Makefile > index fb4472ddffd8..619cff81d796 100644 > --- a/tools/testing/selftests/exec/Makefile > +++ b/tools/testing/selftests/exec/Makefile > @@ -3,8 +3,13 @@ CFLAGS = -Wall > CFLAGS += -Wno-nonnull > CFLAGS += -D_GNU_SOURCE > > +ALIGNS := 0x1000 0x200000 0x1000000 > +ALIGN_PIES := $(patsubst %,load_address.%,$(ALIGNS)) > +ALIGN_STATIC_PIES := $(patsubst %,load_address.static.%,$(ALIGNS)) > +ALIGNMENT_TESTS := $(ALIGN_PIES) > + > TEST_PROGS := binfmt_script.py > -TEST_GEN_PROGS := execveat load_address_4096 load_address_2097152 load_address_16777216 non-regular > +TEST_GEN_PROGS := execveat non-regular $(ALIGNMENT_TESTS) > TEST_GEN_FILES := execveat.symlink execveat.denatured script subdir > # Makefile is a run-time dependency, since it's accessed by the execveat test > TEST_FILES := Makefile > @@ -28,9 +33,9 @@ $(OUTPUT)/execveat.symlink: $(OUTPUT)/execveat > $(OUTPUT)/execveat.denatured: $(OUTPUT)/execveat > cp $< $@ > chmod -x $@ > -$(OUTPUT)/load_address_4096: load_address.c > - $(CC) $(CFLAGS) $(LDFLAGS) -Wl,-z,max-page-size=0x1000 -pie -static $< -o $@ > -$(OUTPUT)/load_address_2097152: load_address.c > - $(CC) $(CFLAGS) $(LDFLAGS) -Wl,-z,max-page-size=0x200000 -pie -static $< -o $@ > -$(OUTPUT)/load_address_16777216: load_address.c > - $(CC) $(CFLAGS) $(LDFLAGS) -Wl,-z,max-page-size=0x1000000 -pie -static $< -o $@ > +$(OUTPUT)/load_address.0x%: load_address.c > + $(CC) $(CFLAGS) $(LDFLAGS) -Wl,-z,max-page-size=$(lastword $(subst ., ,$@)) \ > + -fPIE -pie $< -o $@ > +$(OUTPUT)/load_address.static.0x%: load_address.c > + $(CC) $(CFLAGS) $(LDFLAGS) -Wl,-z,max-page-size=$(lastword $(subst ., ,$@)) \ > + -fPIE -static-pie $< -o $@ Hi Kees, Didn't we learn recently, though, that -static-pie is gcc 8.1+, while the kernel's minimum gcc version is 5? thanks, -- John Hubbard NVIDIA > diff --git a/tools/testing/selftests/exec/load_address.c b/tools/testing/selftests/exec/load_address.c > index 17e3207d34ae..8257fddba8c8 100644 > --- a/tools/testing/selftests/exec/load_address.c > +++ b/tools/testing/selftests/exec/load_address.c > @@ -5,11 +5,13 @@ > #include > #include > #include > +#include > #include "../kselftest.h" > > struct Statistics { > unsigned long long load_address; > unsigned long long alignment; > + bool interp; > }; > > int ExtractStatistics(struct dl_phdr_info *info, size_t size, void *data) > @@ -26,11 +28,20 @@ int ExtractStatistics(struct dl_phdr_info *info, size_t size, void *data) > stats->alignment = 0; > > for (i = 0; i < info->dlpi_phnum; i++) { > + unsigned long long align; > + > + if (info->dlpi_phdr[i].p_type == PT_INTERP) { > + stats->interp = true; > + continue; > + } > + > if (info->dlpi_phdr[i].p_type != PT_LOAD) > continue; > > - if (info->dlpi_phdr[i].p_align > stats->alignment) > - stats->alignment = info->dlpi_phdr[i].p_align; > + align = info->dlpi_phdr[i].p_align; > + > + if (align > stats->alignment) > + stats->alignment = align; > } > > return 1; // Terminate dl_iterate_phdr. > @@ -38,27 +49,57 @@ int ExtractStatistics(struct dl_phdr_info *info, size_t size, void *data) > > int main(int argc, char **argv) > { > - struct Statistics extracted; > - unsigned long long misalign; > + struct Statistics extracted = { }; > + unsigned long long misalign, pow2; > + bool interp_needed; > + char buf[1024]; > + FILE *maps; > int ret; > > ksft_print_header(); > - ksft_set_plan(1); > + ksft_set_plan(4); > + > + /* Dump maps file for debugging reference. */ > + maps = fopen("/proc/self/maps", "r"); > + if (!maps) > + ksft_exit_fail_msg("FAILED: /proc/self/maps: %s\n", strerror(errno)); > + while (fgets(buf, sizeof(buf), maps)) { > + ksft_print_msg("%s", buf); > + } > + fclose(maps); > > + /* Walk the program headers. */ > ret = dl_iterate_phdr(ExtractStatistics, &extracted); > if (ret != 1) > ksft_exit_fail_msg("FAILED: dl_iterate_phdr\n"); > > - if (extracted.alignment == 0) > - ksft_exit_fail_msg("FAILED: No alignment found\n"); > - else if (extracted.alignment & (extracted.alignment - 1)) > - ksft_exit_fail_msg("FAILED: Alignment is not a power of 2\n"); > + /* Report our findings. */ > + ksft_print_msg("load_address=%#llx alignment=%#llx\n", > + extracted.load_address, extracted.alignment); > + > + /* If we're named with ".static." we expect no INTERP. */ > + interp_needed = strstr(argv[0], ".static.") == NULL; > + > + /* Were we built as expected? */ > + ksft_test_result(interp_needed == extracted.interp, > + "%s INTERP program header %s\n", > + interp_needed ? "Wanted" : "Unwanted", > + extracted.interp ? "seen" : "missing"); > + > + /* Did we find an alignment? */ > + ksft_test_result(extracted.alignment != 0, > + "Alignment%s found\n", extracted.alignment ? "" : " NOT"); > + > + /* Is the alignment sane? */ > + pow2 = extracted.alignment & (extracted.alignment - 1); > + ksft_test_result(pow2 == 0, > + "Alignment is%s a power of 2: %#llx\n", > + pow2 == 0 ? "" : " NOT", extracted.alignment); > > + /* Is the load address aligned? */ > misalign = extracted.load_address & (extracted.alignment - 1); > - if (misalign) > - ksft_exit_fail_msg("FAILED: alignment = %llu, load_address = %llu\n", > - extracted.alignment, extracted.load_address); > + ksft_test_result(misalign == 0, "Load Address is %saligned (%#llx)\n", > + misalign ? "MIS" : "", misalign); > > - ksft_test_result_pass("Completed\n"); > ksft_finished(); > }