[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH livepatch-build-tools] Treat constant sections as string sections


  • To: Frediano Ziglio <frediano.ziglio@xxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Ross Lagerwall <ross.lagerwall@xxxxxxxxxx>
  • Date: Mon, 6 Oct 2025 16:49:23 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=opz2DbRieaX88FQ8Gine2ZvtwrOd5y6GoTMO+PrJMjQ=; b=d2w9K6Op1cYei0179e5azrnZ9u1KIY+1EeKT/LG2lJMr2++Ywqgun+8dPWLRUPxl+f/QMHebB+oIc/zwP2LsFpZNbJVp3/u2uoTfuoQRbgaHyvvk5+yf6DMg9bMEOGFEo5CAOeBR2USTgPd2VIDn4Ja0xfGq2CJ71Iq/PUnUsVqfGPirWgDjnaLX+woUPQsUKPKCn3oFg5Nz4odb6WUhmUzJWA4/P4SNdQLSel1Qx+hh++akAzyf/MwwQuPALmJdHwNolyI8AzFRwHOb5fy1qEtA9MXGhIbfI1zVqerDuH2epNLBtpobxbMfXmbQZ8zyzv1c4abtyEEYusgn+3u70A==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=r1ZD7spzRtbuGa13+Is93HuXnlHLWzWpexXz8QhOFP4JEk0Ukgdc8xgaAt8WXIinBXCXIav/nkHds+MfT2XRYeBnVPgFloy1zu0oCRIr2Jprhm7NnEjL0LoBKZFE8U9Tubq7oVndH5T00G5lOm7I9VQEcWwidyKgyZLVZoSflQHBQ/cbhahRj6d0Fq2Fbc1sufuhbteoS94dMY1do+FMc391Wk3ATlAMRQctYidi7zCrHQrC63X/guH7XbpUhf9iBOpT2tg3Snrh1nIJW2pVl858vLqStQOFpMd9h18Vdh2gdYjzvB+dBh3eSyGehogtZYxVK2L397AK0fp3US8Nnw==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>, Andrew Cooper <andrew.cooper@xxxxxxxxxx>, Roger Pau Monne <roger.pau@xxxxxxxxxx>
  • Delivery-date: Mon, 06 Oct 2025 16:49:55 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Msip_labels:
  • Thread-index: AQHcKIHp2PGJPzbswE2t8zYH/4MtebS1bcFS
  • Thread-topic: [PATCH livepatch-build-tools] Treat constant sections as string sections

<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, 
Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: 
rgb(0, 0, 0);">&gt; From:&nbsp;Frediano Ziglio&nbsp;</div><div 
class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, 
Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: 
rgb(0, 0, 0);">&gt; Sent:&nbsp;Thursday, September 18, 2025 10:51 AM</div><div 
class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, 
Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: 
rgb(0, 0, 0);">&gt; To:&nbsp;xen-devel@xxxxxxxxxxxxxxxxxxxx&nbsp;</div><div 
class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, 
Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: 
rgb(0, 0, 0);">&gt; Cc:&nbsp;Frediano Ziglio ; Ross Lagerwall ; Konrad 
Rzeszutek Wilk ; Andrew Cooper ; Roger Pau Monne&nbsp;</div><div 
class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, 
Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: 
rgb(0, 0, 0);">&gt; Subject:&nbsp;[PATCH livepatch-build-tools] Treat constant 
sections as string sections</div><div class="elementToProof" 
style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, 
Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">&gt; 
&nbsp;</div><div class="elementToProof" style="font-family: Aptos, 
Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; 
font-size: 12pt; color: rgb(0, 0, 0);">&gt; Newer compiler can put some 
constant strings inside constant</div><div class="elementToProof" 
style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, 
Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">&gt; sections 
(.rodata.cstXX) instead of string sections (.rodata.str1.XX).</div><div 
class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, 
Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: 
rgb(0, 0, 0);">&gt; This causes the produced live patch to not apply when 
such</div><div class="elementToProof" style="font-family: Aptos, 
Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; 
font-size: 12pt; color: rgb(0, 0, 0);">&gt; strings are produced.</div><div 
class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, 
Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: 
rgb(0, 0, 0);">&gt; So treat the constant sections as string ones.</div><div 
class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, 
Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: 
rgb(0, 0, 0);"><br></div><div class="elementToProof" style="font-family: Aptos, 
Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; 
font-size: 12pt; color: rgb(0, 0, 0);">Are you sure it was a string and not 
something else? As far as I can</div><div class="elementToProof" 
style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, 
Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">tell GCC chooses 
the section in categorize_decl_for_section() which</div><div 
class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, 
Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: 
rgb(0, 0, 0);">doesn't appear to ever put constant strings in 
.rodata.cst.</div><div class="elementToProof" style="font-family: Aptos, 
Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; 
font-size: 12pt; color: rgb(0, 0, 0);"><br></div><div class="elementToProof" 
style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, 
Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">In any case if we 
have a reference to a constant in .rodata.cst then the</div><div 
class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, 
Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: 
rgb(0, 0, 0);">section _does_ need to be included in its entirety, though it 
makes me</div><div class="elementToProof" style="font-family: Aptos, 
Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; 
font-size: 12pt; color: rgb(0, 0, 0);">wonder if is_rodata_str_section is the 
best place for this check.</div><div class="elementToProof" style="font-family: 
Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; 
font-size: 12pt; color: rgb(0, 0, 0);"><br></div><div class="elementToProof" 
style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, 
Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 
0);">&gt;&nbsp;</div><div class="elementToProof" style="font-family: Aptos, 
Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; 
font-size: 12pt; color: rgb(0, 0, 0);">&gt; Signed-off-by: Frediano 
Ziglio&nbsp;</div><div class="elementToProof" style="font-family: Aptos, 
Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; 
font-size: 12pt; color: rgb(0, 0, 0);">&gt; ---</div><div 
class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, 
Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: 
rgb(0, 0, 0);">&gt; &nbsp;create-diff-object.c | 6 ++++++</div><div 
class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, 
Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: 
rgb(0, 0, 0);">&gt; &nbsp;1 file changed, 6 insertions(+)</div><div 
class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, 
Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: 
rgb(0, 0, 0);">&gt;&nbsp;</div><div class="elementToProof" style="font-family: 
Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; 
font-size: 12pt; color: rgb(0, 0, 0);">&gt; diff --git a/create-diff-object.c 
b/create-diff-object.c</div><div class="elementToProof" style="font-family: 
Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; 
font-size: 12pt; color: rgb(0, 0, 0);">&gt; index 7e6138b..7acaf88 
100644</div><div class="elementToProof" style="font-family: Aptos, 
Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; 
font-size: 12pt; color: rgb(0, 0, 0);">&gt; --- 
a/create-diff-object.c</div><div class="elementToProof" style="font-family: 
Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; 
font-size: 12pt; color: rgb(0, 0, 0);">&gt; +++ 
b/create-diff-object.c</div><div class="elementToProof" style="font-family: 
Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; 
font-size: 12pt; color: rgb(0, 0, 0);">&gt; @@ -1446,11 +1446,16 @@ static bool 
is_rodata_str_section(const char *name)</div><div class="elementToProof" 
style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, 
Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"><br></div><div 
class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, 
Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: 
rgb(0, 0, 0);">Can you update the comment at the top of this 
function?</div><div class="elementToProof" style="font-family: Aptos, 
Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; 
font-size: 12pt; color: rgb(0, 0, 0);"><br></div><div class="elementToProof" 
style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, 
Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">&gt; 
&nbsp;{</div><div class="elementToProof" style="font-family: Aptos, 
Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; 
font-size: 12pt; color: rgb(0, 0, 0);">&gt; &nbsp;#define GCC_5_SECTION_NAME 
".rodata.str1."</div><div class="elementToProof" style="font-family: Aptos, 
Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; 
font-size: 12pt; color: rgb(0, 0, 0);">&gt; &nbsp;#define GCC_6_SECTION_NAME 
".str1."</div><div class="elementToProof" style="font-family: Aptos, 
Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; 
font-size: 12pt; color: rgb(0, 0, 0);">&gt; +#define GCC_CSTR 
".rodata.cst"</div><div class="elementToProof" style="font-family: Aptos, 
Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; 
font-size: 12pt; color: rgb(0, 0, 0);"><br></div><div class="elementToProof" 
style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, 
Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">What does CSTR 
stand for? May call it GCC_CONSTANT_SECTION_NAME instead?</div><div 
class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, 
Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: 
rgb(0, 0, 0);"><br></div><div class="elementToProof" style="font-family: Aptos, 
Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; 
font-size: 12pt; color: rgb(0, 0, 0);">Ross</div>


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.