Re: [PATCH 3/6] Change the symbols order when --ffuntion-sections is enabled

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jul 29, 2024 at 11:48:54AM -0700, Rong Xu wrote:

> > defined(CONFIG_LTO_CLANG)
> > > +#define TEXT_TEXT                                                    \
> > > +             *(.text.asan.* .text.tsan.*)                            \
> > > +             *(.text.unknown .text.unknown.*)                        \
> > > +             *(.text.unlikely .text.unlikely.*)                      \
> > > +             ALIGN_FUNCTION();                                       \
> >
> > Why leave the above text sections unaligned?
> >
> 
> They are considered cold text. They are not aligned before the change. But
> I have no objections to making it aligned.

At least x86 has hard assumptions about function alignment always being
respected -- see the most horrible games we play with
CONFIG_CALL_THUNKS.

Or is this only text parts and not actual functions in these sections?
In which case we can probably get away with not respecting the function
call alignment, although we should probably still respect the branch
alignment -- but I forgot if we made use of that :/


> >
> > > +             *(.text.hot .text.hot.*)                                \
> > > +             *(TEXT_MAIN .text.fixup)                                \
> > > +             NOINSTR_TEXT                                            \
> > > +             *(.ref.text)                                            \
> > > +     MEM_KEEP(init.text*)
> > > +#else
> > >  #define TEXT_TEXT                                                    \
> > >               ALIGN_FUNCTION();                                       \
> > >               *(.text.hot .text.hot.*)                                \
> > > @@ -594,7 +606,8 @@
> > >               NOINSTR_TEXT                                            \
> > >               *(.ref.text)                                            \
> > >               *(.text.asan.* .text.tsan.*)                            \
> > > -     MEM_KEEP(init.text*)                                            \
> > > +     MEM_KEEP(init.text*)
> > > +#endif
> > >
> > >
> > >  /* sched.text is aling to function alignment to secure we have same
> > > --
> > > 2.46.0.rc1.232.g9752f9e123-goog
> > >
> >




[Index of Archives]     [Linux Kernel]     [Kernel Newbies]     [x86 Platform Driver]     [Netdev]     [Linux Wireless]     [Netfilter]     [Bugtraq]     [Linux Filesystems]     [Yosemite Discussion]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux