[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] x86/build32: Discard all orphaned sections
On 13.05.2020 17:00, Andrew Cooper wrote: > On 13/05/2020 10:13, Jan Beulich wrote: >> [CAUTION - EXTERNAL EMAIL] DO NOT reply, click links, or open attachments >> unless you have verified the sender and know the content is safe. >> >> On 12.05.2020 21:11, Andrew Cooper wrote: >>> @@ -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. >>> + */ >>> + *(*) >>> } >>> } >> To be honest I'm not sure if this isn't going too far. Much >> depends on what would happen if a new real section appeared >> that needs retaining. > > Anything which is important enough will result in a linker error. > >> Granted the linker may then once again >> put it at the beginning of the image, and we'll be screwed >> again, just like we'll be screwed if a section gets discarded >> by mistake. > > This way is more likely to result in a build failure than an inability > to boot the resulting build of Xen. > >> But it would be really nice if we had a way to >> flag the need to play with the linker script. Hence perhaps >> on new enough tool chains we indeed may want to make use of >> --orphan-handling= ? And then discard just .note and .note.* >> here? > > The only valid option would be =error, but experimenting with that yields > > ld: error: unplaced orphan section `.comment' from `cmdline.o' > ld: error: unplaced orphan section `.note.GNU-stack' from `cmdline.o' > ld: error: unplaced orphan section `.note.gnu.property' from `cmdline.o' > ld: error: unplaced orphan section `.rel.got' from `cmdline.o' > ld: error: unplaced orphan section `.got' from `cmdline.o' > ld: error: unplaced orphan section `.got.plt' from `cmdline.o' > ld: error: unplaced orphan section `.iplt' from `cmdline.o' > ld: error: unplaced orphan section `.rel.iplt' from `cmdline.o' > ld: error: unplaced orphan section `.igot.plt' from `cmdline.o' > > which I think is going to get us massively bogged down in toolchain > specifics. I'm not entirely convinced this would be a good move. That's ugly indeed; especially the .rel.* sections are worrying to appear there. Hence patch as is Acked-by: Jan Beulich <jbeulich@xxxxxxxx> Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |