On Tue, Apr 16, 2019 at 11:33:39AM +0200, Florian Weimer wrote: > * Segher Boessenkool: > > > On Mon, Apr 15, 2019 at 01:54:11PM +0200, Florian Weimer wrote: > >> * Richard Biener: > >> > >> > Of course adding sth like a .robss section would be nice. > >> > >> I think this is strictly a link editor issue because a read-only PT_LOAD > >> directive with a memory size larger than the file size already produces > >> read-only zero pages, without requiring a file allocation. > > > > But .rodata normally is not the last thing in its segment (the .eh* > > things are after it, and those are usually not all zero). > > If you don't mind the proliferation of load segments (we've add many of > them in recent years), placement does not matter.
That is something I really dislike, each load segment has a significant cost and from what I remember, at least one of the 4 PT_LOADs in current setup is completely useless: LOAD 0x000000 0x0000000000000000 0x0000000000000000 0x02bf60 0x02bf60 R 0x1000 LOAD 0x02c000 0x000000000002c000 0x000000000002c000 0x0a74a5 0x0a74a5 R E 0x1000 LOAD 0x0d4000 0x00000000000d4000 0x00000000000d4000 0x033fd0 0x033fd0 R 0x1000 LOAD 0x108d50 0x0000000000109d50 0x0000000000109d50 0x00b814 0x0153d8 RW 0x1000 there is no reason not to reorder at least on most targets the sections such that there is just one R, one R E and one RW segment. Jakub