On Fri, 3 Dec 2021 at 20:46, Nicolas Pitre <nico@xxxxxxxxxxx> wrote: > > On Fri, 3 Dec 2021, Peter Zijlstra wrote: > > > On Fri, Dec 03, 2021 at 03:10:51PM +0100, Alexander Lobakin wrote: > > > From: Peter Zijlstra <peterz@xxxxxxxxxxxxx> > > > Date: Fri, 3 Dec 2021 10:44:10 +0100 > > > > > > > On Thu, Dec 02, 2021 at 11:32:05PM +0100, Alexander Lobakin wrote: > > > > > Use the newly introduces macros to create unique separate sections > > > > > for (almost) every "regular" ASM function (i.e. for those which > > > > > aren't explicitly put into a specific one). > > > > > There should be no leftovers as input .text will be size-asserted > > > > > in the LD script generated for FG-KASLR. > > > > > > > > *groan*... > > > > > > > > Please, can't we do something like: > > > > > > > > #define SYM_PUSH_SECTION(name) \ > > > > .if section == .text \ > > > > .push_section .text.##name \ > > > > .else \ > > > > .push_section .text \ > > > > .endif > > > > > > > > #define SYM_POP_SECTION() \ > > > > .pop_section > > > > > > > > and wrap that inside the existing SYM_FUNC_START*() SYM_FUNC_END() > > > > macros. > > > > > > Ah I see. I asked about this in my previous mail and you replied > > > already (: Cool stuff, I'll use it, it simplifies things a lot. > > > > Note, I've no idea if it works. GAS and me aren't really on speaking > > terms. It would be my luck for that to be totally impossible, hjl? > > Surely this would do it: > > http://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=451133cefa839104 > That seems rather useful, actually. It will also fix a problem with subsections, which are sometimes difficult to construct from a macro, as they cannot be created using pushsection/popsection unless you know the current section name, and the alternative syntax (.subsection / .previous) does not permit nesting. This makes their use from a macro risky, given that it may not be obvious to the macro's caller that it uses a subsection under the hood.