Message ID | 20241107145952.73403-1-roger.pau@citrix.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | xen/x86: prevent addition of .note.gnu.property if livepatch is enabled | expand |
On 07.11.2024 15:59, Roger Pau Monne wrote: > GNU assembly that supports such feature will unconditionally add a > .note.gnu.property section to object files. The content of that section can > change depending on the generated instructions. The current logic in > livepatch-build-tools doesn't know how to deal with such section changing > as a result of applying a patch and rebuilding. > > Since .note.gnu.property is not consumed by the Xen build, suppress its > addition when livepatch support is enabled. > > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> Reviewed-by: Jan Beulich <jbeulich@suse.com> Just one thing though: > --- a/xen/arch/x86/arch.mk > +++ b/xen/arch/x86/arch.mk > @@ -26,6 +26,12 @@ $(call as-option-add,CFLAGS,CC,"invpcid (%rax)$(comma)%rax",-DHAVE_AS_INVPCID) > $(call as-option-add,CFLAGS,CC,"movdiri %rax$(comma)(%rax)",-DHAVE_AS_MOVDIR) > $(call as-option-add,CFLAGS,CC,"enqcmd (%rax)$(comma)%rax",-DHAVE_AS_ENQCMD) > > +# Disable the addition of a .note.gnu.property section to object files when > +# livepatch support is enabled. The contents of that section can change > +# depending on the instructions used, and livepatch-build-tools doesn't know > +# how to deal with such changes. > +$(call cc-option-add,CFLAGS-$(CONFIG_LIVEPATCH),CC,-Wa$$(comma)-mx86-used-note=no) > + > # Check to see whether the assmbler supports the .nop directive. > $(call as-option-add,CFLAGS,CC,\ > ".L1: .L2: .nops (.L2 - .L1)$(comma)9",-DHAVE_AS_NOPS_DIRECTIVE) I don't really like this being squashed between two as-option-add invocations. Can this be moved down, e.g. before or after the XEN_IBT chunk? Happy to move while committing ... Jan
On Thu, Nov 07, 2024 at 04:14:20PM +0100, Jan Beulich wrote: > On 07.11.2024 15:59, Roger Pau Monne wrote: > > GNU assembly that supports such feature will unconditionally add a > > .note.gnu.property section to object files. The content of that section can > > change depending on the generated instructions. The current logic in > > livepatch-build-tools doesn't know how to deal with such section changing > > as a result of applying a patch and rebuilding. > > > > Since .note.gnu.property is not consumed by the Xen build, suppress its > > addition when livepatch support is enabled. > > > > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> > > Reviewed-by: Jan Beulich <jbeulich@suse.com> Thanks. > Just one thing though: > > > --- a/xen/arch/x86/arch.mk > > +++ b/xen/arch/x86/arch.mk > > @@ -26,6 +26,12 @@ $(call as-option-add,CFLAGS,CC,"invpcid (%rax)$(comma)%rax",-DHAVE_AS_INVPCID) > > $(call as-option-add,CFLAGS,CC,"movdiri %rax$(comma)(%rax)",-DHAVE_AS_MOVDIR) > > $(call as-option-add,CFLAGS,CC,"enqcmd (%rax)$(comma)%rax",-DHAVE_AS_ENQCMD) > > > > +# Disable the addition of a .note.gnu.property section to object files when > > +# livepatch support is enabled. The contents of that section can change > > +# depending on the instructions used, and livepatch-build-tools doesn't know > > +# how to deal with such changes. > > +$(call cc-option-add,CFLAGS-$(CONFIG_LIVEPATCH),CC,-Wa$$(comma)-mx86-used-note=no) > > + > > # Check to see whether the assmbler supports the .nop directive. > > $(call as-option-add,CFLAGS,CC,\ > > ".L1: .L2: .nops (.L2 - .L1)$(comma)9",-DHAVE_AS_NOPS_DIRECTIVE) > > I don't really like this being squashed between two as-option-add invocations. > Can this be moved down, e.g. before or after the XEN_IBT chunk? Happy to move > while committing ... Feel free to move it. Roger.
diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk index 1460ecf30b9a..1ded012d9f5b 100644 --- a/xen/arch/x86/arch.mk +++ b/xen/arch/x86/arch.mk @@ -26,6 +26,12 @@ $(call as-option-add,CFLAGS,CC,"invpcid (%rax)$(comma)%rax",-DHAVE_AS_INVPCID) $(call as-option-add,CFLAGS,CC,"movdiri %rax$(comma)(%rax)",-DHAVE_AS_MOVDIR) $(call as-option-add,CFLAGS,CC,"enqcmd (%rax)$(comma)%rax",-DHAVE_AS_ENQCMD) +# Disable the addition of a .note.gnu.property section to object files when +# livepatch support is enabled. The contents of that section can change +# depending on the instructions used, and livepatch-build-tools doesn't know +# how to deal with such changes. +$(call cc-option-add,CFLAGS-$(CONFIG_LIVEPATCH),CC,-Wa$$(comma)-mx86-used-note=no) + # Check to see whether the assmbler supports the .nop directive. $(call as-option-add,CFLAGS,CC,\ ".L1: .L2: .nops (.L2 - .L1)$(comma)9",-DHAVE_AS_NOPS_DIRECTIVE)
GNU assembly that supports such feature will unconditionally add a .note.gnu.property section to object files. The content of that section can change depending on the generated instructions. The current logic in livepatch-build-tools doesn't know how to deal with such section changing as a result of applying a patch and rebuilding. Since .note.gnu.property is not consumed by the Xen build, suppress its addition when livepatch support is enabled. Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> --- xen/arch/x86/arch.mk | 6 ++++++ 1 file changed, 6 insertions(+)