This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Ping. * layout.cc (Layout::default_section_order): Check for text section prefixes. (Layout::text_section_name_mapping): New static member. (Layout::text_section_name_mapping_count): New static member. (Layout::match_section_name): New static function. (Layout::output_section_name): Check for text section prefixes. * layout.h (Output_section_order::ORDER_TEXT_HOT): New enum value. (Output_section_order::ORDER_TEXT_STARTUP): New enum value. (Output_section_order::ORDER_TEXT_EXIT): New enum value. (Output_section_order::ORDER_TEXT_UNLIKELY): New enum value. (Layout::text_section_name_mapping): New static member. (Layout::text_section_name_mapping_count): New static member. (Layout::match_section_name): New static function. * options.h (keep_text_section_prefix): New -z option. * testsuite/Makefile.am (keep_text_section_prefix): New test. * testsuite/Makefile.in: Regenerate. * testsuite/keep_text_section_prefix.cc: New test source. * testsuite/keep_text_section_prefix.sh: New test script. On Mon, Feb 26, 2018 at 10:14 AM, Sriraman Tallam <tmsriram@google.com> wrote: > Ping. > > * layout.cc (Layout::default_section_order): Check for text section > prefixes. > (Layout::text_section_name_mapping): New static member. > (Layout::text_section_name_mapping_count): New static member. > (Layout::match_section_name): New static function. > (Layout::output_section_name): Check for text section prefixes. > * layout.h (Output_section_order::ORDER_TEXT_HOT): New enum value. > (Output_section_order::ORDER_TEXT_STARTUP): New enum value. > (Output_section_order::ORDER_TEXT_EXIT): New enum value. > (Output_section_order::ORDER_TEXT_UNLIKELY): New enum value. > (Layout::text_section_name_mapping): New static member. > (Layout::text_section_name_mapping_count): New static member. > (Layout::match_section_name): New static function. > * options.h (keep_text_section_prefix): New -z option. > * testsuite/Makefile.am (keep_text_section_prefix): New test. > * testsuite/Makefile.in: Regenerate. > * testsuite/keep_text_section_prefix.cc: New test source. > * testsuite/keep_text_section_prefix.sh: New test script. > > On Thu, Feb 22, 2018 at 1:07 PM, Sriraman Tallam <tmsriram@google.com> wrote: >> Ping. >> >> >> * layout.cc (Layout::default_section_order): Check for text section >> prefixes. >> (Layout::text_section_name_mapping): New static member. >> (Layout::text_section_name_mapping_count): New static member. >> (Layout::match_section_name): New static function. >> (Layout::output_section_name): Check for text section prefixes. >> * layout.h (Output_section_order::ORDER_TEXT_HOT): New enum value. >> (Output_section_order::ORDER_TEXT_STARTUP): New enum value. >> (Output_section_order::ORDER_TEXT_EXIT): New enum value. >> (Output_section_order::ORDER_TEXT_UNLIKELY): New enum value. >> (Layout::text_section_name_mapping): New static member. >> (Layout::text_section_name_mapping_count): New static member. >> (Layout::match_section_name): New static function. >> * options.h (keep_text_section_prefix): New -z option. >> * testsuite/Makefile.am (keep_text_section_prefix): New test. >> * testsuite/Makefile.in: Regenerate. >> * testsuite/keep_text_section_prefix.cc: New test source. >> * testsuite/keep_text_section_prefix.sh: New test script. >> >> On Tue, Feb 20, 2018 at 9:28 AM, Sriraman Tallam <tmsriram@google.com> wrote: >>> Ping. >>> >>> * layout.cc (Layout::default_section_order): Check for text section >>> prefixes. >>> (Layout::text_section_name_mapping): New static member. >>> (Layout::text_section_name_mapping_count): New static member. >>> (Layout::match_section_name): New static function. >>> (Layout::output_section_name): Check for text section prefixes. >>> * layout.h (Output_section_order::ORDER_TEXT_HOT): New enum value. >>> (Output_section_order::ORDER_TEXT_STARTUP): New enum value. >>> (Output_section_order::ORDER_TEXT_EXIT): New enum value. >>> (Output_section_order::ORDER_TEXT_UNLIKELY): New enum value. >>> (Layout::text_section_name_mapping): New static member. >>> (Layout::text_section_name_mapping_count): New static member. >>> (Layout::match_section_name): New static function. >>> * options.h (keep_text_section_prefix): New -z option. >>> * testsuite/Makefile.am (keep_text_section_prefix): New test. >>> * testsuite/Makefile.in: Regenerate. >>> * testsuite/keep_text_section_prefix.cc: New test source. >>> * testsuite/keep_text_section_prefix.sh: New test script. >>> >>> >>> >>> On Thu, Feb 15, 2018 at 5:20 PM, Sriraman Tallam <tmsriram@google.com> wrote: >>>> Hi, >>>> >>>> This patch creates separate output sections for .text.hot, >>>> .text.startup, .text.exit and .text.unlikely and is controlled by >>>> -z,keep-text-section-prefix. With this feature, the PT_LOAD segment >>>> would look like this: >>>> >>>> Section to Segment mapping: >>>> Segment Sections... >>>> 00 >>>> 01 .interp >>>> 02 .interp ... .rela.dyn .rela.plt .init .plt .text.hot .text >>>> .text.startup .text.exit .text.unlikely .fini .rodata .eh_frame >>>> .eh_frame_hdr ... >>>> .... >>>> >>>> This feature would be useful to: >>>> >>>> a) Map only a subset of the text sections to huge pages. >>>> b) m(un)lock a subset the text sections. >>>> c) Code layout verification. >>>> >>>> I added -z,text-unlikely-segment here: >>>> https://sourceware.org/ml/binutils/2017-10/msg00023.html for similar >>>> reasons. >>>> >>>> However, we found out that creating multiple executable ELF segments >>>> has other issues as some other tools like symbolizers make assumptions >>>> about ELF binaries having just one executable segment and this breaks >>>> them. We are looking at fixing these but an alternate approach gives >>>> us flexibility in deploying this. >>>> >>>> Thoughts? Patch attached. >>>> >>>> * layout.cc (Layout::default_section_order): Check for text section >>>> prefixes. >>>> (Layout::text_section_name_mapping): New static member. >>>> (Layout::text_section_name_mapping_count): New static member. >>>> (Layout::match_section_name): New static function. >>>> (Layout::output_section_name): Check for text section prefixes. >>>> * layout.h (Output_section_order::ORDER_TEXT_HOT): New enum value. >>>> (Output_section_order::ORDER_TEXT_STARTUP): New enum value. >>>> (Output_section_order::ORDER_TEXT_EXIT): New enum value. >>>> (Output_section_order::ORDER_TEXT_UNLIKELY): New enum value. >>>> (Layout::text_section_name_mapping): New static member. >>>> (Layout::text_section_name_mapping_count): New static member. >>>> (Layout::match_section_name): New static function. >>>> * options.h (keep_text_section_prefix): New -z option. >>>> * testsuite/Makefile.am (keep_text_section_prefix): New test. >>>> * testsuite/Makefile.in: Regenerate. >>>> * testsuite/keep_text_section_prefix.cc: New test source. >>>> * testsuite/keep_text_section_prefix.sh: New test script. >>>> >>>> Thanks >>>> Sri
Attachment:
keep_text_section_prefix_patch.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |