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 phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E429EECAAD2 for ; Mon, 29 Aug 2022 07:15:40 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 4AC718458A; Mon, 29 Aug 2022 09:15:38 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=reject dis=none) header.from=prevas.dk Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=prevas.dk header.i=@prevas.dk header.b="i4GJCKze"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 10A3D845F8; Mon, 29 Aug 2022 09:15:37 +0200 (CEST) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2128.outbound.protection.outlook.com [40.107.22.128]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id B53498456E for ; Mon, 29 Aug 2022 09:15:33 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=reject dis=none) header.from=prevas.dk Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=rasmus.villemoes@prevas.dk ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Mo/hdnk7kjIjDCU+RGWstSUotlCarCzs1YNZREckHizYfeviblHxGGPO0ncxfC8Lz2UOK/lWeq5IHgCNdyT08JNMd3oOvtcauYxRG0us/WU/w09qymXjzl57/kVz/ZCYPmzfzXzAlm2hLZ+vkuRvXvxxcGduMgndinPauqRBHUgFDUeGajXF+6LHgBRDOTIPQSpQSg5GjG9N1egFQASOk6mH9cRk3OzXj6Oc+ypHAUSIqIItkAtdLyL7qwnOUBpQ+cXYcGmz45HoJ5EqbSaecckwueN4Jxwcs2wxCy593q4F7Nm/x58SH0rP82ijvxMgZueOwfGbT7/UtnQFP/Vljw== 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=YZD74KBqcBefHG2tYwDoglSqAfhgzF7Ug5HNSqKm9gs=; b=RsTO1IBsiPQeUlDqnoxLjuOQ8KGAL7GuO0zL3IOKuT+XOC/QD+eNslycTDZ8RRr5G63Qfydg+a6MP/Ke64BE6nY+GVl8b3xmv2jW39Uc8l9EQOF1JomZYdSAXvXfBSkyV3j1QrCSBXzv46dn0Moa/xu2sYKRRqpBc+UKYyxIgIkYHHLyCYj2eXdiESpVhdE27ML2I8AW3gH9rSQ6UAy8+kGvnvbQcJiHntfKzH15t1R68TWiMpeoCxzDP81LXytyFGtwjUnQf7MnhWIOYOVmAncpDNV29dm2cbnZqQzFFsEMAgxjhv5ODI0UAkvncP5U+sA8do6+kpjBjk5BDk2QUQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=prevas.dk; dmarc=pass action=none header.from=prevas.dk; dkim=pass header.d=prevas.dk; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=prevas.dk; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YZD74KBqcBefHG2tYwDoglSqAfhgzF7Ug5HNSqKm9gs=; b=i4GJCKzeJ21QJdnormm6DOGaGz8n2gFSepk0f2ziR81jvxF9MVU29p65H18gvQZ/55SDFNeZhr4j4GuAMerHCHS8odcNadWM3GQwlYkYuOpAb/DazTEtkXS+tWJ/n/JLdUBiF4BAH5VJUFUVyZH4onx+f6RCDI3gH7y6Sctw6k0= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=prevas.dk; Received: from DU0PR10MB5266.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:34a::22) by PR3PR10MB3754.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:4b::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5566.15; Mon, 29 Aug 2022 07:15:32 +0000 Received: from DU0PR10MB5266.EURPRD10.PROD.OUTLOOK.COM ([fe80::84cd:fa2:ffc0:456e]) by DU0PR10MB5266.EURPRD10.PROD.OUTLOOK.COM ([fe80::84cd:fa2:ffc0:456e%8]) with mapi id 15.20.5566.021; Mon, 29 Aug 2022 07:15:32 +0000 Message-ID: <4ed9f811-5244-54ef-b58e-83dba51510e4@prevas.dk> Date: Mon, 29 Aug 2022 09:15:29 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: [PATCH] Makefile: Use relative paths for debugging symbols. Content-Language: en-US To: Vagrant Cascadian , Tom Rini Cc: u-boot@lists.denx.de, Heinrich Schuchardt , Simon Glass References: <20220818173133.12552-1-vagrant@debian.org> <20220826205900.GA3931749@bill-the-cat> <98ebd28a-58c3-1875-b320-1f9c86f04e14@prevas.dk> <87h71wjlhc.fsf@contorta> <87edx0jb2h.fsf@contorta> From: Rasmus Villemoes In-Reply-To: <87edx0jb2h.fsf@contorta> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: AS4P195CA0011.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:5e2::15) To DU0PR10MB5266.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:34a::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ca26783b-98b1-435d-eaf9-08da898e4253 X-MS-TrafficTypeDiagnostic: PR3PR10MB3754:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tLJ3dfet4LRmndBVgAg1oCXKF0LulB7fZahNcyV5iBPTLvstZbN3c1WHoMx9XNrgcjT9yU6xvMA6G1Z4sst8gvNvoA4tQMYuIagppQzBWs+8f3VE8rCET01sTXw7/NaXXRDC5NRUXh1vKFNem5aZ6AX4BA/ILFpQVPRq/Cu4ujd+lhIbOD+h172uLZw6OlInyp7hguxrUjmlDk594PaOnwiY1tB6HRxPOkT2YDEULysnB8LcNg/EZCpsXw3rWmk0mwfHqYI/yTbfU5hhhjv6qoP7mDbPcPAPF70dJYa1U0B0z2NIyz9jsFPOFpx5Oesu0toezhY5MF/kBpBf7GQoF8cQ7IT6hA6iKkbVwzlJJ9YFKfKspNwBuv7dARXJ1WVTKqqfuAGzVFemXllyoDwUB+ZH/O2sQdvgJQ06/kX0d0qMiTdYxepX0hwRaYw89uAtX+2bkV3H7dpB9wipf+eMJebxIK3UGnGSpySAJHoE5YvFQe8rPti77DfI744GWuCtYrc3Wo02zXkm+u43ON0nsT6Yiaf2u1WEXLhD2Ma1mw7MeJ/clpPdWyNXPIh03DCVnkE9T2L6GNbcGXO6dOQ8YrBcFx0rK1kCm4czQLHAtyonyNWRwPSHbvudYFrCN9sgHY039JnS3+h0sv8KNqUbdliJ4f4fxdk55WskrDPP00QYxXHH408QzDqzgSINIblArk/ffcyDKuF0Ia+XAMJ/J7dvsXjnr0j+hmXzuLviC+ij9fST1n1CJMpqfocb2C9vuPsg570jg6e9mcV66HY3ivHL/yNlH9iJK5mcrGycnGz7k2g49nickCLCZuHkR3KtH6VOPX899DOlMMK2RN5LrJRcsLbwF3Ki8dVOhQSVsKs= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR10MB5266.EURPRD10.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230016)(376002)(396003)(136003)(346002)(366004)(39840400004)(54906003)(110136005)(966005)(8676002)(86362001)(4326008)(6486002)(31686004)(66946007)(66556008)(66476007)(31696002)(316002)(478600001)(5660300002)(36756003)(8976002)(41300700001)(8936002)(38350700002)(44832011)(6666004)(2616005)(38100700002)(6506007)(2906002)(52116002)(83380400001)(6512007)(26005)(186003)(45980500001)(43740500002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UXdrZDE3NDE5ZUtHUGNYQTVVZ2Q2VjhqaXpxY01IWHBlODl4ODFjazBTWWVD?= =?utf-8?B?dzQrV3E4eW1IM1RyL0VTdk5wT1l0VGFic2xEOWVjYmNBTm9KNzRmcDlZNmVk?= =?utf-8?B?N2cralhqdU9ienp1eWNrZDBmNUtKS2E0M2dMWWlNbTlZSWJORlRXUm16VzVa?= =?utf-8?B?RjVzT2RaNnVKSTRDSUR3U2hacWxJSWlnbmZLYWFGK09iQ2lHUm1XZWxkejNJ?= =?utf-8?B?dU5BeC9MWGtEQ0JqbjZOWGlXcnVnV0xLVUZNeVp4Z3MvOXAyUVZSN3hnUmVY?= =?utf-8?B?TDRrdWpFaitiR3E4KzhDOTdZYXdXdjdPSlVodmYxQnRVTVhsRFR0MEk1NkxP?= =?utf-8?B?b0VKRUJ2SjZ6R01VZzVoZkVuYTBGd1Z4UzdHbU9BeEVzQytpY3c0d1JLRXJ3?= =?utf-8?B?bXdUaWlDT2dKTGFpRnpKQWgzdWl3ZExTcVJBa1g1bkRlME1EUFNBOWRBQk5w?= =?utf-8?B?T2xkNkg5S3VpYVphU2l2dDBKWDZBcWw3M1dYOXZCWmtkeWpXYTFMbXlHNGhp?= =?utf-8?B?SjNDaFBmYUtDYVk3ZlVQdFdQUFlHM0l6aE8xRlZiZWpwSkRPcHhGRldFRFB4?= =?utf-8?B?SUdoRnFhREVJMzB4aTRlUk1SaVB4ejUzeUpjSmZ3Qlo0eWN0K0twTzhXM0dv?= =?utf-8?B?bmg4cDZmd2dBeVl3WExPbVIxVGRDaEMrZzIrOFFJbDlBQ2l2TmtOMWpXdEZK?= =?utf-8?B?QVVGSTRjeEpKZERCdktFTDNUWndUOTA2SVhWOG9JNFhEOERtQnpaSFJBQ0ZJ?= =?utf-8?B?STFrMDA2OXV1U20rbnpVUEJWYnhkMk1xVzNUVmNiNnhhaXZvUzBpU2o5ZVRQ?= =?utf-8?B?OEFhWnRweW1mZy9RMVl5N3oxZDMwektoK2x3N0pHamU5R3E5WTBwQi9CSDhj?= =?utf-8?B?WDduREU4UUlPaWtyaEU0c2NhTE9NVHpNbGRreXF0U3RlNldkbUQ2WHVEclZ1?= =?utf-8?B?c3dKaS9yU2lNNmxRa3NRSTZoWXE2UHVOQWxybEdaajdoa09UT0Rickc5Mkc3?= =?utf-8?B?VnNMaHBkY2doQVBTYW9DWmVZcEcwSytEOUl6ZE9NV1hYTjQvM3krWFF2UWJq?= =?utf-8?B?KzN4U0tXcmZIWjNGNSsyQllrSHJRV1F6bHh1RWdGTmJ5RmpjN0dYak9pSnpH?= =?utf-8?B?a2RTdXpXWmtPbzdiRHZEQUtFc1M2anovQkl0ay8rNlR6ZUI5VHYrQWhQM1l2?= =?utf-8?B?QWxCci95aENrZ3JBNk44aUVDR3R3RzRxNE9rN1BiMUxDdzF3TDZqdjJKVVdP?= =?utf-8?B?Wk1EcDFIUDh6UDRYOXVVd3luc3VMakMyNlBtU0xUQ1ZzS1lEcU5rMWMzbDN6?= =?utf-8?B?RHp0ZmYrN0pxbnVaQjMvYWZOb3ozY0U1b1duSFRpeVUrNUJkTXBXa3gxZjZI?= =?utf-8?B?RjFBaWcwVlVSbmx0Qm1YN1ZHRGlRSE9oZ1VuOENobURZSGlmaldvVDhEZlJz?= =?utf-8?B?Rk9VaXRLSnVkTzA5Ui9aaVRlejZUMTlKS3VyNjE5RXM1aEduWHZINkQ1MjVO?= =?utf-8?B?UnpnYk1YTmQ0MUMwaFVNalM3ak5reTZnbTYxcUZKb0t4dEdLN3ZObElDMTdt?= =?utf-8?B?Y2lDZ05RK25qVUJOUmZKMzRBOTFxeE96aWpORHdQVThGY0FNSTBNbGdNeE1W?= =?utf-8?B?TDY1SkdsNDFDbGhEVTRRVWRGYkk3eXNZWkhPRE9QUGVaNHY3NnFYcUxFRzdZ?= =?utf-8?B?bzI3bTVDUW9TKytMT1RwdEJ4M0xUOW5NMHdaSjVhMmc1allNYkVDL3FGZXV6?= =?utf-8?B?ZXl6VXBTblkvNnhpcERTQ1p2Sm9tRENrTWZodnhLdWlIcElsN1lxdW1GYXJB?= =?utf-8?B?TDBoVUNsa015aGlzRSsrTlAybWlXQUhHTVg3aDlKUEJHVVFvQ2Zaem4zSFFP?= =?utf-8?B?SlA1OFJ4TmdHY0c2aG5WbFpHSmY5ZE1jSGdOZVpST0QwbFB5L3IzN1crYTFl?= =?utf-8?B?VUFhb1lRU0NWazliQXE5d0xrNXc3bGQxKzdHeDlRVllIVnZsdmtQRHVEclFu?= =?utf-8?B?eG5VS1dOeDFnSjdNVnZ4a2VvSHI4SWJzSjFIQjVFTlBLZ0d4a0ZDYjc2dzRY?= =?utf-8?B?RGU4WDhwRnppU2lTKzhmWTNqWVZHMEFZWjNFWUhhcTA3VGZzSEdzSk9Zc2w3?= =?utf-8?B?TisycXRUK1MwWTVWTG1qL1hqQ2tVSVhkUU1ua0g1UDQxQmRWWDJ3MkNDKzQ5?= =?utf-8?B?Tmc9PQ==?= X-OriginatorOrg: prevas.dk X-MS-Exchange-CrossTenant-Network-Message-Id: ca26783b-98b1-435d-eaf9-08da898e4253 X-MS-Exchange-CrossTenant-AuthSource: DU0PR10MB5266.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Aug 2022 07:15:31.8596 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: d350cf71-778d-4780-88f5-071a4cb1ed61 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: LgS2iuzZxaATyqC/ZqAev7pjVHkYZAUC+HxJiwg9FrfwnQvc77+ja2RzdSmO5VcJ1sIxEMjlcqFihxol4MG4BNnQfjnGipCE0xpwnVfIHmk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR10MB3754 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean On 28/08/2022 23.46, Vagrant Cascadian wrote: > On 2022-08-28, Vagrant Cascadian wrote: >> On 2022-08-28, Rasmus Villemoes wrote: >>> On 26/08/2022 22.59, Tom Rini wrote: >>>> On Thu, Aug 18, 2022 at 10:31:34AM -0700, Vagrant Cascadian wrote: >>>>> From: Vagrant Cascadian >>>>> >>>>> The KBUILD_CFLAGS and KBUILD_AFLAGS variables are adjusted to use >>>>> -ffile-prefix-map and --debug-prefix-map, respectively, to use >>>>> relative paths for occurrences of __FILE__ and debug paths. >>>>> >>>>> This enables reproducible builds regardless of the absolute path to >>>>> the build directory: >>>>> >>>>> https://reproducible-builds.org/docs/build-path/ >>>>> >>>>> Signed-off-by: Vagrant Cascadian >>>>> Acked-by: Rasmus Villemoes >>>> >>>> This needs some sort of clang check and then perhaps different flag >>>> used? How does the linux kernel handle this? >>> >>> Well, interestingly it seems that the kernel doesn't do anything like >>> this for debug info, they only apply the -fmacro-prefix-map. Which one >>> should probably raise with them at some point. >>> >>> It seems we're not actually calling gas directly, but always invokes >>> $(CC) whatever that may be to compile assembler files. So I think the >>> right fix is to simply pass the same -ffile-prefix-map in both >>> KBUILD_CFLAGS as in KBUILD_AFLAGS - and if there's some variable that >>> ends up being included in both automatically, then just adding it there >>> should do the trick. >> >> I tried just adding -ffile-prefix-map and that helped, but was not >> sufficient to solve the reproducibility issues. It also needs the >> --debug-prefix-map to make it the assembly code build reproducibly. >> >> Though I guess I didn't try adding -ffile-prefix-map to KBUILD_AFLAGS, >> now that I think about it... will test that too, thanks! > > Nope, that built, but not reproducibly... That's odd. Ahh, so gcc does have logic to forward/translate a -fdebug-prefix-map to --debug-prefix-map when invoking the assembler: #define ASM_MAP " %{fdebug-prefix-map=*:--debug-prefix-map %*}" And for reasons that are still beyond me, gcc seems to accept --bar-baz as an alias for -fbar-baz. E.g. if I invoke gcc -v --debug-prefix-map=/tmp=xyz-tmp-ABC --data-sections -g -o /tmp/start.o -c /tmp/start.S gcc tells me that COLLECT_GCC_OPTIONS='-v' '-fdebug-prefix-map=/tmp=xyz-tmp-ABC' '-fdata-sections' '-g' '-o' '/tmp/start.o' '-c' '-mtune=generic' '-march=x86-64' and of course the data-sections was just a silly thing to highlight the alias machinery, but the point is that gcc saw this as being called with -fdebug-prefix-map=. And sure enough, the very next line which shows the assembler invocation says as --gdwarf2 --debug-prefix-map /tmp=xyz-tmp-ABC -v --64 -o /tmp/start.o /tmp/ccu8aTZH.s If I invoke gcc with the -fdebug-prefix-map form, exactly the same happens, i.e. gcc says it was invoked with the -fdebug form, and calls as with the --debug form. But here's the kicker: The union option -ffile-prefix-map is not recognized by gcc's spec file machinery (the ASM_MAP macro above), so while it does affect the file paths that gcc emits to .s files when compiling .c files before handing them to gas, it has no effect when we're using gcc directly to compile .s or .S files. I'm inclined to say that is a bug in gcc. I'll open a bug and see what they say. > I was able to guard it with "as-option": > > +KBUILD_AFLAGS += $(call as-option,--debug-prefix-map=$(srctree)/=) > > And it builds reproducibly for me. > > That should be sufficient to fix build failures with clang... or is > there a more appropriate guard to use? I am not familiar with clang and > it's relevent tools to know if there is a relevent comprable option to > --debug-prefix-map. I think for clang one should just use -ffile-prefix-map unconditionally; https://reproducible-builds.org/docs/build-path/ says that should work. And when I try with 'clang -v -no-integrated-as -ffile-prefix-map=/tmp=xyz-tmp-ABC ...', it does end up invoking '/usr/bin/as --64 --debug-prefix-map /tmp=xyz-tmp-ABC'. Rasmus