[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 3/6] xen/efi: Make efi-boot.h compile with -Wwrite-strings
- To: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
- From: Jan Beulich <jbeulich@xxxxxxxx>
- Date: Tue, 21 Nov 2023 09:40:15 +0100
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none
- 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=BfOT8zcnlQVCODiVrp6A4d73eIGTJ0tE4fy1SXn5yNY=; b=U7dsLO5Q8de/IClB20qBZGyaufv3G5OyNS4Eht4aEhTun5y6gVVUcR1GiplF0MvvD0ZYLypaH4t0PcC4mO+m+xxShphhod1zQHOod+MYw8az0n34HtA4Etqc6usz5HW0CiQyVprhsOXpWJvyHVi+VginFu1TVkwA8ePzs3WR5zR7whMdzmjrVIHgIEGnZFH8hoEUjZZPAiJCgnK8Y+VN8fvy3lbgheKqYYdduHziltYg125OnSzpr+SK9n3SNZtZTWSazp2SSjl6lVSa5kV/Lcv6cIomKni6kZV9tC2XuHIMNCuEF17imAq9lv/177igjvV6AFlEox3/bvIryFeJ9Q==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aXVfdqC+kG//MlMEllNyYzqOXXghxkRItGKqnGdWBe5PcGhMW8gxfJDzUAY03Mb9TfaRei8d79pK06eSWDxewoyJ8AJY1KZWgl96jgemR6qsGLc2KVxTIBZPmETxqWWBQkQ0jaRlh9DFdlapXsk0U76jh8LOugCHqU31yJZmGS/AddLad9yveBnnDvX0dBQLoK82dIY2f4delyodgtXGmlVOBSQGVjbDD59N0wT/Qft0MxFBkGtk3DQkaqxlOrIfKGTISuadVli+Ex5Z8dbktxCqjhd1Lbp14a1N7oaNKthtPGUl/r6Zi+jK192AKPjjFVlCMwohGU8LvVyjw79tGg==
- Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com;
- Autocrypt: addr=jbeulich@xxxxxxxx; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL
- Cc: Roger Pau Monné <roger.pau@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Roberto Bagnara <roberto.bagnara@xxxxxxxxxxx>, Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx>, Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>
- Delivery-date: Tue, 21 Nov 2023 08:40:30 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
On 20.11.2023 23:49, Andrew Cooper wrote:
> GCC complains:
>
> In file included from arch/arm/efi/boot.c:700:
> arch/arm/efi/efi-boot.h: In function 'efi_arch_handle_cmdline':
> arch/arm/efi/efi-boot.h:482:16: error: assignment discards 'const'
> qualifier from pointer target type [-Werror=discarded-qualifiers]
> 482 | name.s = "xen";
> | ^
>
> There's no easy option. .rodata is really read-only, so the fact Xen doesn't
> crash means these strings aren't written to.
And the consuming sites confirm this being the case. Hence ...
> Lie to the compiler using a union.
... to at least slightly limit the lying, how about ...
> --- a/xen/arch/arm/efi/efi-boot.h
> +++ b/xen/arch/arm/efi/efi-boot.h
> @@ -479,7 +479,7 @@ static void __init efi_arch_handle_cmdline(CHAR16
> *image_name,
> w2s(&name);
> }
> else
> - name.s = "xen";
> + name.cs = "xen"; /* TODO, find a better way of doing this. */
>
> prop_len = 0;
> prop_len += snprintf(buf + prop_len,
... you also switch to using name.cs down below here and ...
> --- a/xen/arch/x86/efi/efi-boot.h
> +++ b/xen/arch/x86/efi/efi-boot.h
> @@ -324,7 +324,8 @@ static void __init efi_arch_handle_cmdline(CHAR16
> *image_name,
> w2s(&name);
> }
> else
> - name.s = "xen";
> + name.cs = "xen"; /* TODO, find a better way of doing this. */
> +
> place_string(&mbi.cmdline, name.s);
... here?
An alternative would be to introduce 'char xen[4] = "xen";' in both
cases, and use them instead of plain string literals.
Jan
|