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 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] |