|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] x86/build32: Discard all orphaned sections
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.
~Andrew
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |