From: Andrew Cooper <andrew.cooper3@citrix.com> To: Xen-devel <xen-devel@lists.xenproject.org> Cc: "Wei Liu" <wl@xen.org>, "Jason Andryuk" <jandryuk@gmail.com>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Stefan Bader" <stefan.bader@canonical.com>, "Jan Beulich" <JBeulich@suse.com>, "Roger Pau Monné" <roger.pau@citrix.com> Subject: [PATCH] x86/build32: Discard all orphaned sections Date: Tue, 12 May 2020 20:11:08 +0100 [thread overview] Message-ID: <20200512191108.6461-1-andrew.cooper3@citrix.com> (raw) Linkers may put orphaned sections ahead of .text, which breaks the calling requirements. A concrete example is Ubuntu's GCC-9 default of enabling -fcf-protection which causes us to try and execute .note.gnu.properties during Xen's boot. Put .got.plt in its own section as it specifically needs preserving from the linkers point of view, and discard everything else. This will hopefully be more robust to other unexpected toolchain properties. Fixes boot from an Ubuntu build of Xen. Reported-by: Jason Andryuk <jandryuk@gmail.com> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> --- CC: Jan Beulich <JBeulich@suse.com> CC: Wei Liu <wl@xen.org> CC: Roger Pau Monné <roger.pau@citrix.com> CC: Jason Andryuk <jandryuk@gmail.com> CC: Stefan Bader <stefan.bader@canonical.com> --- xen/arch/x86/boot/build32.lds | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/boot/build32.lds b/xen/arch/x86/boot/build32.lds index da35aee910..97454b40ff 100644 --- a/xen/arch/x86/boot/build32.lds +++ b/xen/arch/x86/boot/build32.lds @@ -31,7 +31,7 @@ SECTIONS *(.bss.*) } - /DISCARD/ : { + .got.plt : { /* * PIC/PIE executable contains .got.plt section even if it is not linked * with dynamic libraries. In such case it is just placeholder for @@ -47,6 +47,14 @@ SECTIONS * * Please check build32.mk for more details. */ - /* *(.got.plt) */ + *(.got.plt) + } + + /DISCARD/ : { + /* + * Discard everything else, to prevent linkers from putting + * orphaned sections ahead of .text, which needs to be first. + */ + *(*) } } -- 2.11.0
next reply other threads:[~2020-05-12 19:11 UTC|newest] Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-05-12 19:11 Andrew Cooper [this message] 2020-05-13 2:27 ` Jason Andryuk 2020-05-13 9:13 ` Jan Beulich 2020-05-13 15:00 ` Andrew Cooper 2020-05-13 15:15 ` Jan Beulich 2020-05-13 19:14 ` Andrew Cooper
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200512191108.6461-1-andrew.cooper3@citrix.com \ --to=andrew.cooper3@citrix.com \ --cc=JBeulich@suse.com \ --cc=jandryuk@gmail.com \ --cc=roger.pau@citrix.com \ --cc=stefan.bader@canonical.com \ --cc=wl@xen.org \ --cc=xen-devel@lists.xenproject.org \ --subject='Re: [PATCH] x86/build32: Discard all orphaned sections' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.