|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH livepatch-build-tools] Treat constant sections as string sections
> > From: Frediano Ziglio
> > Sent: Thursday, September 18, 2025 10:51 AM
> > To: xen-devel@xxxxxxxxxxxxxxxxxxxx
> > Cc: Frediano Ziglio ; Ross Lagerwall ; Konrad Rzeszutek Wilk ; Andrew
> > Cooper ; Roger Pau Monne
> > Subject: [PATCH livepatch-build-tools] Treat constant sections as string
> > sections
> >
> > Newer compiler can put some constant strings inside constant
> > sections (.rodata.cstXX) instead of string sections (.rodata.str1.XX).
> > This causes the produced live patch to not apply when such
> > strings are produced.
> > So treat the constant sections as string ones.
>
>
> Are you sure it was a string and not something else? As far as I can
> tell GCC chooses the section in categorize_decl_for_section() which
> doesn't appear to ever put constant strings in .rodata.cst.
>
In the specific case it was a "h" string (used for continuation).
>
> In any case if we have a reference to a constant in .rodata.cst then the
> section _does_ need to be included in its entirety, though it makes me
> wonder if is_rodata_str_section is the best place for this check.
>
>
> >
> > Signed-off-by: Frediano Ziglio
> > ---
> > create-diff-object.c | 6 ++++++
> > 1 file changed, 6 insertions(+)
> >
> > diff --git a/create-diff-object.c b/create-diff-object.c
> > index 7e6138b..7acaf88 100644
> > --- a/create-diff-object.c
> > +++ b/create-diff-object.c
> > @@ -1446,11 +1446,16 @@ static bool is_rodata_str_section(const char *name)
>
>
> Can you update the comment at the top of this function?
>
I'll do it.
>
> > {
> > #define GCC_5_SECTION_NAME ".rodata.str1."
> > #define GCC_6_SECTION_NAME ".str1."
> > +#define GCC_CSTR ".rodata.cst"
>
>
> What does CSTR stand for? May call it GCC_CONSTANT_SECTION_NAME instead?
>
It makes sense, I'll change it.
>
> Ross
Frediano
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |